How does it work?

MagNumDB is a database that contains about 360,000 items. These items are constants, names, values all extracted from more than 9,000 header files (.h, .hxx, .hpp, .idl, etc.) provided by standard Windows and Visual Studio SDKs and WDKs.

Some values have been extracted from the very special uuid.lib file that contains the value of thousands of guids and property keys, not present anywhere else in header files. This can explain some duplicates (because names in uuid.lib are not always exactly the same as names in .h parsed files...).

It also contains around 36,0000 undocumented guids that we found ... meeeeep ...

 "C2P5"

To build this database, we have tried many existing parsers, things like CLANG or other fine tools, but they just don't suit our needs. They can't handle thousands of files that don't compile together, they can't handle some specific (or just very old) Microsoft constructs or annotations, they don't remember the stack of #define directives that led to a definition, they only give you a final AST, not a partial one, etc.

So, in the end, we have written a C/C++ parser named C2P5 (for C/CPP/PreProcessor/Parser), tailored specifically for computing constants. C2P5 is capable of preprocessing, parsing and partially evaluating all header files as if they were included in a one big virtual project (that of course, does not compile) on a 32G RAM machine. It currently supports the following preprocessor and C/C++ constructs:

  • #define preprocessor that define constants
  • #define preprocessor that define expression to compute constants
  • C and C++ constants, strings and enum definitions, and some level of pointerness
  • Special GUID constructs like DECLSPEC_UUID, DEFINE_GUIDSTRUCT, MIDL_INTERFACE, you name it
  • PROPERTYKEY constructs
  • Some IDL constructs
  • Etc.

The parser remembers dynamic preprocessor definitions (#if, #ifdef, etc.) that are conditions for constants definitions and expression computation. All parsed items are saved in the database, as well as the associated conditions. There may be more than one item corresponding to a given name, if there are differences in their associated conditions stack.

C2P5 supports the following types of constants, regardless of the way they are defined in source files:

  • integer, signed or unsigned, from 8-bit to 128-bit
  • floating point number, single (32-bit) or double (64-bit)
  • globally unique identifier, or guid, uuid, CLSID, IID, etc.
  • string, in narrow, wide, or utf-8/16/32 formats
  • character, in narrow, wide, or utf-8/16/32 formats
  • pointer, a constant cast as a pointer
  • property key, or PROPERTYKEY, or PKEY, a combination of a guid (fmtid) and a 32-bit integer (id).

 Powered by

C2P5 and this MagNumDB web site are written in C# and use a Lucene database as a full-text search engine. C2P5 uses a custom ANTLR4cs C grammar for expression parsing, not for preprocessor parsing.

 

 Frequently Asked Questions

  • Q: Can I run custom queries?
    A: Yes. You can use Lucene's query syntax. Note the Database is case insensitive. Check out the list of columns with their corresponding database column names:

    • Index: the item's index.
    • Name: the item's name, or title. For enum values, it's prefixed with the enum's name.
      Corresponding database field: title.
    • Type: the item's type, expressed in a specific, universal system.
      Corresponding database's field: valuetype, but use the value of the Storage type column for queries on items type.
    • Value: the item's value. For string values, it's displayed as is w/o quotes nor escaping.
      Corresponding database field: value. There is also a typedvalue field that can contain database's Int32, Int64, Float, Double or String typed values.
    • Hex Value: the item's hexadecimal value, only valid for integer types.
      There is no corresponding database field.
    • Signed Value: the item's signed value, only valid for integer and double types. Useful when you found a unsigned number and want to get the corresponding signed value (uint -> int for example).
      There is no corresponding database field.
    • Source lines(s): the source lines from which the item was extracted. Comments and characters such as TAB, CR are preserved.
      Corresponding database field: source.
    • File path: the file path from which the item was extracted, terminated by the line index.
      Corresponding database field: filepath. There are also directory and filename fields. filename is useful to query for values in a given file.
    • Score: Database's score value. Items are returned sorted by score.
    • Guid formats: a utility columns that proposes all possible guid formats. Only valid for guid types.
      There is no corresponding database field
    • Char type: the character encoding (narrow, wide, etc.). Only valid for char and string values.
      Corresponding database field: chartype.
    • Storage type: the exact storage type in the database. Only used for specific queries.
      Corresponding database field: valuetype.
    • Conditions: the list of preprocessor conditions for a given item. If a condition is surrounded with a REVERSE function, it means the reverse condition of what's surrounded was the condition.
      Corresponding database field: conditions. There may be multiple conditions fields for one item.

    Some important points to note:

    • If you search for a negative number (like error codes expressed using signed integers), you can surround the search with double quotes, for example searching for "-2147009290" is equivalent to searching for 0x80073CF6, 80073CF6 (or even 3CF6 in this specific case). If you don't surround negative numbers with double quotes, the system will search for signed and unsigned corresponding values.
    • The full-text search uses items' name, value, hex value, guid formats, source lines, etc. so refine your search if you get back too many items.
    • You can search for guid binary values using just a part of their full definition. For example, if you search for '79eac9c5', it will get you 3 guid entries
    • Leading wild card search (*whatever) is allowed, but it may slow down the search significantly.

    Here are some example or custom queries:

    title:wm_user returns the WM_USER Windows message item, not all items that reference the WM_USER token.

    title:wm_u* returns all items (Windows messages probably) whose name starts with WM_U*.

    value:1024 AND title:wm_* returns all items (Windows messages probably) whose name starts with WM_U* and value is 1024. Note AND must be UPPERCASE for database to understand it as an AND operator.

    value:"00000002-0000-0000-C000-000000000046" returns the IMalloc IID guid value.

  • Q: I always get back 400 items at most. Why?
    A: The MagNumDb site currently limits the number of returned items to this value by design. This should be enough for most real search scenarios (like enums with a big list of values).

  • Q: Some values are empty. Why?
    A: The expression evaluator cannot always compute the final value, because it sometimes require contextual information (custom defines, compiler architecture, etc.) that the parser doesn't have at parsing time. You can enable the Source line(s) column to check what's the corresponding source and try to work it out by yourself. The origin file path and line number is also included.

  • Q: Can I get all values for a given enum?
    A: Sure. For example, __VSHPROPID is the name of an enum, and a query like this: parent:__VSHPROPID will get all the enum's values (66 entries).

  • Q: I sometimes get back items whose name starts with "__magnumdb__enum_". Why?
    A: C allows unnamed enums. The MagNumDb parser just gives them a name, using the defining file name and a counter.

  • Q: I sometimes get back the same item/name twice or more with different values. For example:  TARGET_IS_NT60_OR_LATER. Why?
    A: This can be the case with defines. Their value may be different if they were surrounded by # directives (#if, #else, etc.) in the original source code. You can enable the Condition(s) column to check what are the corresponding conditions for a given item.
    Note: if a condition is surrounded with a funny REVERSE function token, it means the reverse condition of what's surrounded.

  • Q: I can't connect from an IP address but from another one, it works. Why?
    A: The server is constantly monitored for excessive usage. It's possible your IP address has been banned because massive sets of queries where observed. If you think this is an error, send us an email.

 Database Details

  • Last update date: Monday May 30, 2022
  • Items count: 368054
  • Parsed files count: 9521
  • Windows SDK version: 10.0.22621.0
  • NetFx SDK version: 4.8
  • MSVC Tools version: 14.32.31326
  • KMDF version: 1.33
  • UMDF version: 2.33

 Rest API

There is a JSON version API (you will have to figure out the schema, it's pretty obvious) that you can call here (the search query is the 'q' parameter):

   https://www.magnumdb.com/api.aspx?q=0xC000000D&key=you-api-key-goes-here

Note this API also has a 400 items maximum limit and the server is monitored for excessive usage (the key can be removed without notice). If you want to get a key, send us an email.

 

 Privacy & Terms

This privacy policy is for the www.magnumdb.com website and governs the privacy of online users who choose to use it. It sets out the different areas where user privacy is concerned and outlines the obligations and requirements of the users, the website and website owners.

 Cookies

www.magnumdb.com uses cookies for the sole reason of monitoring and improving our services, using Google Analytics. You can however decide to opt out of having your anonymized browsing activity within this site recorded by monitoring cookies, if you follow the instructions from Google here: Google Analytics Opt-out Browser Add-on

 User Information Storage

www.magnumdb.com stores no User Information nor Personal Data, at all.

 Data Security and Retention

This site application is hosted in Microsoft Azure in the "Central US" data center. See Microsoft’s Azure Trust Center for more information.

We make reasonable efforts to ensure a level of security appropriate to the risk associated with the processing of data.

Unfortunately, no data transmission or storage system can be guaranteed to be 100% secure. If you have reason to believe that your interaction with us is no longer secure, please contact us immediately.

We do not retain any Personal Data. Where we retain data, we do so in accordance with any limitation periods and records retention obligations that are imposed by applicable law.

   Disclaimer

All product names, logos, and brands are property of their respective owners. All company, product and service names used in this website are for identification purposes only.

All values, names, source code fragments displayed here have been extracted from files that are property of their respective owners.

THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND OTHER THAN AS SPECIFICALLY SET FORTH IN THE LICENSE AGREEMENT, INCLUDING WITHOUT LIMITATION WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

 

 Contact

We welcome feedback.
Seen anything missing? A bug? A wrong value? Do you have any suggestion for improvements? Do you have an idea for a cool new feature?

Please contact us here

 About MagNumDB

MagNumDB © 2017-2022 Simon Mourier V1.5.0. All rights reserved.

Profile for Simon Mourier at Stack Overflow, Q&A for professional and enthusiast programmers


All product names, logos, and brands are property of their respective owners. All company, product and service names used in this website are for identification purposes only.

All values, names, source code fragments displayed here have been extracted from files that are property of their respective owners.

THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND OTHER THAN AS SPECIFICALLY SET FORTH IN THE LICENSE AGREEMENT, INCLUDING WITHOUT LIMITATION WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Index Score Name Type Value Hex value Signed value Guid formats Char type Storage type Source line(s) File path Condition(s)
Index Score Name Type Value Hex value Signed value Guid formats Char type Storage type Source line(s) File path Condition(s)
1 4.45061 Behavior Int32 266 0x0000010A 266 System.Int32
static const int Behavior = 266;
%ProgramFiles%\Microsoft Visual Studio\2022\Professional\VSSDK\VisualStudioIntegration\Common\Inc\KnownImageIds.h(347,0)
2 3.270517 TEXTMODE Enum
typedef enum tagTextMode
{
	TM_PLAINTEXT			= 1,
	TM_RICHTEXT 			= 2,	// Default behavior 
	TM_SINGLELEVELUNDO		= 4,
	TM_MULTILEVELUNDO		= 8,	// Default behavior 
	TM_SINGLECODEPAGE		= 16,
	TM_MULTICODEPAGE		= 32	// Default behavior 
} TEXTMODE;
%ProgramFiles(x86)%\Windows Kits\10\Include\10.0.22621.0\um\Richedit.h(144,0)
  • If WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
3 3.147057 CRYPTUI_ENABLE_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT Int32 2048 0x00000800 2048 System.Int32
#define CRYPTUI_ENABLE_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT CRYPTUI_ENABLE_REVOCATION_CHECKING // Changed the default behavior
%ProgramFiles(x86)%\Windows Kits\10\Include\10.0.22621.0\um\cryptuiapi.h(635,0)
  • If WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
4 3.147057 TEXTMODE::TM_RICHTEXT Int32 2 0x00000002 2 System.Int32
TM_RICHTEXT 			= 2,	// Default behavior
%ProgramFiles(x86)%\Windows Kits\10\Include\10.0.22621.0\um\Richedit.h(147,0)
  • If WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
5 3.147057 TEXTMODE::TM_MULTILEVELUNDO Int32 8 0x00000008 8 System.Int32
TM_MULTILEVELUNDO		= 8,	// Default behavior
%ProgramFiles(x86)%\Windows Kits\10\Include\10.0.22621.0\um\Richedit.h(149,0)
  • If WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
6 3.147057 TEXTMODE::TM_MULTICODEPAGE Int32 32 0x00000020 32 System.Int32
TM_MULTICODEPAGE		= 32	// Default behavior
%ProgramFiles(x86)%\Windows Kits\10\Include\10.0.22621.0\um\Richedit.h(151,0)
  • If WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
7 3.147057 INSTALLTYPE::INSTALLTYPE_DEFAULT Int32 0 0x00000000 0 System.Int32
INSTALLTYPE_DEFAULT            =    0,   // set to indicate default behavior
%ProgramFiles(x86)%\Windows Kits\10\Include\10.0.22621.0\um\Msi.h(448,0)
  • If WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
8 2.670366 NTDSSETTINGS_OPT_FORCE_KCC_WHISTLER_BEHAVIOR Int32 64 0x00000040 64 System.Int32
#define NTDSSETTINGS_OPT_FORCE_KCC_WHISTLER_BEHAVIOR   ( 1 << 6 ) /* force KCC to operate in Whistler behavior mode */
#define NTDSSETTINGS_OPT_FORCE_KCC_WHISTLER_BEHAVIOR   ( 1 << 6 ) /* force KCC to operate in Whistler behavior mode */
%ProgramFiles(x86)%\Windows Kits\10\Include\10.0.22621.0\um\NtDsAPI.h(726,0)
  • If WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_PKG_WINMGMT)
9 2.517645 JET_bitConfigStoreReadControlDefault Int32 0 0x00000000 0 System.Int32
#define JET_bitConfigStoreReadControlDefault                     0x0        //  Use default ESE behavior.
%ProgramFiles(x86)%\Windows Kits\10\Include\10.0.22621.0\um\esent.h(217,0)
  • If !defined(_JET_INCLUDED)
10 2.517645 SHI1005_FLAGS_RESTRICT_EXCLUSIVE_OPENS Int32 256 0x00000100 256 System.Int32
#define SHI1005_FLAGS_RESTRICT_EXCLUSIVE_OPENS                  0x000100          // Used to disallow read-deny read behavior
%ProgramFiles(x86)%\Windows Kits\10\Include\10.0.22621.0\um\lmshare.h(366,0)
  • If WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
11 2.517645 _TASKDIALOG_FLAGS::TDF_SIZE_TO_CONTENT Int32 16777216 0x01000000 16777216 System.Int32
TDF_SIZE_TO_CONTENT                 = 0x01000000  // used by ShellMessageBox to emulate MessageBox sizing behavior
%ProgramFiles(x86)%\Windows Kits\10\Include\10.0.22621.0\um\commctrl.h(7649,0)
  • If WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
  • Ifndef NOUSER
  • Ifndef NOTASKDIALOG
  • If (NTDDI_VERSION >= NTDDI_VISTA)
12 2.517645 COPYFLG_FORCE_FILE_IN_USE Int32 8 0x00000008 8 System.Int32
#define COPYFLG_FORCE_FILE_IN_USE       0x00000008  // force file-in-use behavior
%ProgramFiles(x86)%\Windows Kits\10\Include\10.0.22621.0\um\setupapi.h(473,0)
  • If WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
13 2.517645 SP_COPY_FORCE_IN_USE Int32 512 0x00000200 512 System.Int32
#define SP_COPY_FORCE_IN_USE        0x0000200   // Force target-in-use behavior
%ProgramFiles(x86)%\Windows Kits\10\Include\10.0.22621.0\um\setupapi.h(3219,0)
  • If WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
14 2.517645 AIF_FORCE_FILE_IN_USE Int32 8 0x00000008 8 System.Int32
#define AIF_FORCE_FILE_IN_USE   0x00000008              // force file-in-use behavior
%ProgramFiles(x86)%\Windows Kits\10\Include\10.0.22621.0\um\advpub.h(418,0)
  • If WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
15 2.517645 ARCONTENT_PHASE_UNKNOWN Int32 0 0x00000000 0 System.Int32
#define ARCONTENT_PHASE_UNKNOWN          0x00000000   // We can be in any phase.  This is XP behavior.
%ProgramFiles(x86)%\Windows Kits\10\Include\10.0.22621.0\um\shobjidl_core.h(13186,0)
  • If WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
  • If (NTDDI_VERSION >= NTDDI_VISTA)
16 2.517645 PROGDLG_NORMAL Int32 0 0x00000000 0 System.Int32
#define PROGDLG_NORMAL          0x00000000      // default normal progress dlg behavior
%ProgramFiles(x86)%\Windows Kits\10\Include\10.0.22621.0\um\shlobj_core.h(1413,0)
  • If WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
17 2.517645 CSF_EXPLORER Int32 8 0x00000008 8 System.Int32
#define CSF_EXPLORER                    0x00000008L // IN: use new OFN_EXPLORER custom template behavior
%ProgramFiles(x86)%\Windows Kits\10\Include\10.0.22621.0\um\OleDlg.h(1142,0)
  • If WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
  • Ifndef RC_INVOKED
18 2.517645 LOCALE_SSORTLOCALE Int32 123 0x0000007B 123 System.Int32
#define LOCALE_SSORTLOCALE            0x0000007b   // Name of locale to use for sorting/collation/casing behavior.
%ProgramFiles(x86)%\Windows Kits\10\Include\10.0.22621.0\um\winnls.h(720,0)
  • Ifndef NONLS
  • If WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES)
  • If (WINVER >= _WIN32_WINNT_WIN7)
19 2.517645 MUI_CONSOLE_FILTER Int32 256 0x00000100 256 System.Int32
#define MUI_CONSOLE_FILTER                  0x100    // SetThreadPreferredUILanguages takes on console specific behavior
%ProgramFiles(x86)%\Windows Kits\10\Include\10.0.22621.0\um\winnls.h(1012,0)
  • Ifndef NONLS
  • If WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES)
  • If (WINVER >= 0x0600)
20 2.517645 MUI_COMPLEX_SCRIPT_FILTER Int32 512 0x00000200 512 System.Int32
#define MUI_COMPLEX_SCRIPT_FILTER           0x200    // SetThreadPreferredUILanguages takes on complex script specific behavior
%ProgramFiles(x86)%\Windows Kits\10\Include\10.0.22621.0\um\winnls.h(1013,0)
  • Ifndef NONLS
  • If WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES)
  • If (WINVER >= 0x0600)
21 2.517645 IDN_ALLOW_UNASSIGNED Int32 1 0x00000001 1 System.Int32
#define IDN_ALLOW_UNASSIGNED        0x01  // Allow unassigned "query" behavior per RFC 3454
%ProgramFiles(x86)%\Windows Kits\10\Include\10.0.22621.0\um\winnls.h(1373,0)
  • Ifndef NONLS
  • If WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
  • If (WINVER >= 0x0600)
22 2.517645 IDN_EMAIL_ADDRESS Int32 4 0x00000004 4 System.Int32
#define IDN_EMAIL_ADDRESS           0x04  // Enable EAI algorithmic fallback for email local parts behavior
%ProgramFiles(x86)%\Windows Kits\10\Include\10.0.22621.0\um\winnls.h(1375,0)
  • Ifndef NONLS
  • If WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
  • If (WINVER >= 0x0600)
23 2.517645 FOF_ALLOWUNDO Int32 64 0x00000040 64 System.Int32
#define FOF_ALLOWUNDO              0x0040  // enable undo including Recycle behavior for IFileOperation::Delete()
%ProgramFiles(x86)%\Windows Kits\10\Include\10.0.22621.0\um\shellapi.h(257,0)
  • If WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
  • If (WINVER >= 0x0400)
24 2.517645 SEE_MASK_FLAG_DDEWAIT Int32 256 0x00000100 256 System.Int32
#define SEE_MASK_FLAG_DDEWAIT      SEE_MASK_NOASYNC // Use SEE_MASK_NOASYNC instead of SEE_MASK_FLAG_DDEWAIT as it more accuratly describes the behavior
%ProgramFiles(x86)%\Windows Kits\10\Include\10.0.22621.0\um\shellapi.h(397,0)
  • If WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
  • If (WINVER >= 0x0400)
25 2.20294 BSOS_OPTIONS::BSOS_DEFAULT Int32 0 0x00000000 0 System.Int32
BSOS_DEFAULT = 0,             // when creating a byte seeker over a stream, base randomaccessstream behavior on the STGM mode from IStream::Stat.
%ProgramFiles(x86)%\Windows Kits\10\Include\10.0.22621.0\winrt\shcore.h(18,0)
  • If (NTDDI_VERSION >= NTDDI_WIN8)
  • If WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
26 2.20294 ECppCoreCheckWarningCodes::WARNING_LEFTSHIFT_NEGATIVE_SIGNED_NUMBER Int32 26453 0x00006755 26453 System.Int32
WARNING_LEFTSHIFT_NEGATIVE_SIGNED_NUMBER = 26453,                   // Arithmetic overflow: Left shift of a negative signed number is undefined behavior (io.4).
%ProgramFiles%\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\VS\include\CppCoreCheck\warnings.h(55,0)
27 2.20294 ECppCoreCheckWarningCodes::WARNING_USE_CONSTEXPR_FOR_FUNCTION Int32 26497 0x00006781 26497 System.Int32
WARNING_USE_CONSTEXPR_FOR_FUNCTION = 26497,                         // You can attempt to make '%1$s' constexpr unless it contains any undefined behavior (f.4).
%ProgramFiles%\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\VS\include\CppCoreCheck\warnings.h(94,0)
28 1.888234 JET_bitCreateHintAppendSequential Int32 2 0x00000002 2 System.Int32
#define JET_bitCreateHintAppendSequential           0x00000002  //  This bit will enable Append split behavior to grow according to the growth dynamics of the table (set by cbMinExtent, ulGrowth, cbMaxExtent).
%ProgramFiles(x86)%\Windows Kits\10\Include\10.0.22621.0\um\esent.h(2511,0)
  • If !defined(_JET_INCLUDED)
  • If ( JET_VERSION >= 0x0601 )
29 1.888234 JET_bitCreateHintHotpointSequential Int32 4 0x00000004 4 System.Int32
#define JET_bitCreateHintHotpointSequential         0x00000004  //  This bit will enable Hotpoint split behavior to grow according to the growth dynamics of the table (set by cbMinExtent, ulGrowth, cbMaxExtent).
%ProgramFiles(x86)%\Windows Kits\10\Include\10.0.22621.0\um\esent.h(2512,0)
  • If !defined(_JET_INCLUDED)
  • If ( JET_VERSION >= 0x0601 )
30 1.888234 TileOptions::CopyOnDeployment Int32 4 0x00000004 4 System.Int32
[deprecated("TileOptions.CopyOnDeployment may be altered or unavailable for releases after Windows Phone 8.1. Instead, use SecondaryTile.RoamingEnabled to control roaming behavior.", deprecate, Windows.Foundation.UniversalApiContract, 1.0)]
                CopyOnDeployment   = 0x4
%ProgramFiles(x86)%\Windows Kits\10\Include\10.0.22621.0\winrt\windows.ui.startscreen.idl(247,0)
31 1.888234 INSTALLTYPE Enum
typedef enum tagINSTALLTYPE
{
	INSTALLTYPE_DEFAULT            =    0,   // set to indicate default behavior
	INSTALLTYPE_NETWORK_IMAGE      =    1,   // set to indicate network install
	INSTALLTYPE_SINGLE_INSTANCE    =    2,   // set to indicate a particular instance 
}INSTALLTYPE;
%ProgramFiles(x86)%\Windows Kits\10\Include\10.0.22621.0\um\Msi.h(446,0)
  • If WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
32 1.888234 BSOS_OPTIONS Enum
typedef enum
{
    BSOS_DEFAULT = 0,             // when creating a byte seeker over a stream, base randomaccessstream behavior on the STGM mode from IStream::Stat.
    BSOS_PREFERDESTINATIONSTREAM  // in addition, utilize IDestinationStreamFactory::GetDestinationStream.
} BSOS_OPTIONS;
%ProgramFiles(x86)%\Windows Kits\10\Include\10.0.22621.0\winrt\shcore.h(16,0)
  • If (NTDDI_VERSION >= NTDDI_WIN8)
  • If WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
33 1.888234 ECppCoreCheckWarningCodes::WARNING_SHIFT_COUNT_NEGATIVE_OR_TOO_BIG Int32 26452 0x00006754 26452 System.Int32
WARNING_SHIFT_COUNT_NEGATIVE_OR_TOO_BIG = 26452,                    // Arithmetic overflow: Left shift count is negative or greater than or equal to the operand size which is undefined behavior (io.3).
%ProgramFiles%\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\VS\include\CppCoreCheck\warnings.h(54,0)
34 1.573528 ECppCoreCheckWarningCodes::WARNING_AVOID_CAST_FLOAT_TO_UNSIGNED_INTEGER Int32 26467 0x00006763 26467 System.Int32
WARNING_AVOID_CAST_FLOAT_TO_UNSIGNED_INTEGER = 26467,               // Converting from floating point to unsigned integral types results in non-portable code if the double/float has a negative value. Use gsl::narrow_cast or gsl::narrow instead to guard against undefined behavior and potential data loss (es.46).
%ProgramFiles%\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\VS\include\CppCoreCheck\warnings.h(69,0)
35 1.335183 JET_bitSetContiguousLV Int32 262144 0x00040000 262144 System.Int32
#define JET_bitSetContiguousLV              0x00040000 /* Allocates the long-value across contiguous pages (at potentialy space saving costs) for better IO behavior. Valid only with JET_bitSetSeparateLV. Invalid (or not implemented) with certain long-value operations such as replace, and certain column options such as compression. Use across many varying LVs sizes may cause space fragmentation / allocation issues. */
#define JET_bitSetContiguousLV              0x00040000 /* Allocates the long-value across contiguous pages (at potentialy space saving costs) for better IO behavior. Valid only with JET_bitSetSeparateLV. Invalid (or not implemented) with certain long-value operations such as replace, and certain column options such as compression. Use across many varying LVs sizes may cause space fragmentation / allocation issues. */
%ProgramFiles(x86)%\Windows Kits\10\Include\10.0.22621.0\um\esent.h(2500,0)
  • If !defined(_JET_INCLUDED)
  • If ( JET_VERSION >= 0x0601 )
  • If ( JET_VERSION >= 0x0A01 )
36 1.258823 _TASKDIALOG_FLAGS Enum
enum _TASKDIALOG_FLAGS
{
    TDF_ENABLE_HYPERLINKS               = 0x0001,
    TDF_USE_HICON_MAIN                  = 0x0002,
    TDF_USE_HICON_FOOTER                = 0x0004,
    TDF_ALLOW_DIALOG_CANCELLATION       = 0x0008,
    TDF_USE_COMMAND_LINKS               = 0x0010,
    TDF_USE_COMMAND_LINKS_NO_ICON       = 0x0020,
    TDF_EXPAND_FOOTER_AREA              = 0x0040,
    TDF_EXPANDED_BY_DEFAULT             = 0x0080,
    TDF_VERIFICATION_FLAG_CHECKED       = 0x0100,
    TDF_SHOW_PROGRESS_BAR               = 0x0200,
    TDF_SHOW_MARQUEE_PROGRESS_BAR       = 0x0400,
    TDF_CALLBACK_TIMER                  = 0x0800,
    TDF_POSITION_RELATIVE_TO_WINDOW     = 0x1000,
    TDF_RTL_LAYOUT                      = 0x2000,
    TDF_NO_DEFAULT_RADIO_BUTTON         = 0x4000,
    TDF_CAN_BE_MINIMIZED                = 0x8000,
    TDF_NO_SET_FOREGROUND               = 0x00010000, // Don't call SetForegroundWindow() when activating the dialog
    TDF_SIZE_TO_CONTENT                 = 0x01000000  // used by ShellMessageBox to emulate MessageBox sizing behavior
};
%ProgramFiles(x86)%\Windows Kits\10\Include\10.0.22621.0\um\commctrl.h(7628,0)
  • If WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
  • Ifndef NOUSER
  • Ifndef NOTASKDIALOG
  • If (NTDDI_VERSION >= NTDDI_VISTA)
  • If (NTDDI_VERSION >= NTDDI_WIN8)
37 1.10147 TileOptions Enum
enum TileOptions
            {
                [deprecated("TileOptions.None may be altered or unavailable for release after Windows Phone 8.1.", deprecate, Windows.Foundation.UniversalApiContract, 1.0)]
                None               = 0x0,
                [deprecated("TileOptions.ShowNameOnLogo may be altered or unavailable for releases after Windows Phone 8.1. Instead, use SecondaryTile.VisualElements.ShowNameOnSquare150x150Logo.", deprecate, Windows.Foundation.UniversalApiContract, 1.0)]
                ShowNameOnLogo     = 0x1,
                [deprecated("TileOptions.ShowNameWideOnLogo may be altered or unavailable for releases after Windows Phone 8.1. Instead, use SecondaryTile.VisualElements.ShowNameOnWide310x150Logo.", deprecate, Windows.Foundation.UniversalApiContract, 1.0)]
                ShowNameOnWideLogo = 0x2,
                [deprecated("TileOptions.CopyOnDeployment may be altered or unavailable for releases after Windows Phone 8.1. Instead, use SecondaryTile.RoamingEnabled to control roaming behavior.", deprecate, Windows.Foundation.UniversalApiContract, 1.0)]
                CopyOnDeployment   = 0x4
            };
%ProgramFiles(x86)%\Windows Kits\10\Include\10.0.22621.0\winrt\windows.ui.startscreen.idl(239,0)
38 0.944117 URegexpFlag Enum
typedef enum URegexpFlag{

    /**  Enable case insensitive matching.  @stable ICU 2.4 */
    /**  Enable case insensitive matching.  @stable ICU 2.4 */
    UREGEX_CASE_INSENSITIVE = 2,

    /**  Allow white space and comments within patterns  @stable ICU 2.4 */
    /**  Allow white space and comments within patterns  @stable ICU 2.4 */
    UREGEX_COMMENTS         = 4,

    /**  If set, '.' matches line terminators,  otherwise '.' matching stops at line end.
      *  @stable ICU 2.4 */
    UREGEX_DOTALL           = 32,
    
    /**  If set, treat the entire pattern as a literal string.  
      */
    UREGEX_LITERAL = 16,

    /**   Control behavior of "$" and "^"
      *   @stable ICU 2.4 */
    UREGEX_MULTILINE        = 8,
    
    /**   Unix-only line endings.
      */
    UREGEX_UNIX_LINES = 1,

    /**  Unicode word boundaries.
      */
    UREGEX_UWORD            = 256,

     /**  Error on Unrecognized backslash escapes.
       */
     UREGEX_ERROR_ON_UNKNOWN_ESCAPES = 512

}  URegexpFlag;
%ProgramFiles(x86)%\Windows Kits\10\Include\10.0.22621.0\um\icu.h(39939,0)
  • If (NTDDI_VERSION >= NTDDI_WIN10_RS3)
  • If !UCONFIG_NO_REGULAR_EXPRESSIONS
  • If (NTDDI_VERSION >= NTDDI_WIN10_RS2)
39 0.4720585 ECppCoreCheckWarningCodes Enum
enum ECppCoreCheckWarningCodes
{
    WARNING_NO_RAW_POINTER_ASSIGNMENT = 26400,                          // Do not assign the result of an allocation or a function call with an owner<T> return value to a raw pointer, use owner<T> instead (i.11).
    WARNING_DONT_DELETE_NON_OWNER = 26401,                              // Do not delete a raw pointer that is not an owner<T> (i.11).
    WARNING_DONT_HEAP_ALLOCATE_MOVABLE_RESULT = 26402,                  // Return a scoped object instead of a heap-allocated if it has a move constructor (r.3).
    WARNING_RESET_OR_DELETE_OWNER = 26403,                              // Reset or explicitly delete an owner<T> pointer '%1$s' (r.3).
    WARNING_DONT_DELETE_INVALID = 26404,                                // Do not delete an owner<T> which may be in invalid state (r.3).
    WARNING_DONT_ASSIGN_TO_VALID = 26405,                               // Do not assign to an owner<T> which may be in valid state (r.3).
    WARNING_DONT_ASSIGN_RAW_TO_OWNER = 26406,                           // Do not assign a raw pointer to an owner<T> (r.3).
    WARNING_DONT_HEAP_ALLOCATE_UNNECESSARILY = 26407,                   // Prefer scoped objects, don't heap-allocate unnecessarily (r.5).
    WARNING_NO_MALLOC_FREE = 26408,                                     // Avoid malloc() and free(), prefer the nothrow version of new with delete (r.10).
    WARNING_NO_NEW_DELETE = 26409,                                      // Avoid calling new and delete explicitly, use std::make_unique<T> instead (r.11).
    WARNING_NO_REF_TO_CONST_UNIQUE_PTR = 26410,                         // The parameter '%1$s' is a reference to const unique pointer, use const T* or const T& instead (r.32).
    WARNING_NO_REF_TO_UNIQUE_PTR = 26411,                               // The parameter '%1$s' is a reference to unique pointer and it is never reassigned or reset, use T* or T& instead (r.33).
    WARNING_RESET_LOCAL_SMART_PTR = 26414,                              // Move, copy, reassign or reset a local smart pointer '%1$s' (r.5).
    WARNING_SMART_PTR_NOT_NEEDED = 26415,                               // Smart pointer parameter '%1$s' is used only to access contained pointer. Use T* or T& instead (r.30).
    WARNING_NO_RVALUE_REF_SHARED_PTR = 26416,                           // Shared pointer parameter '%1$s' is passed by rvalue reference. Pass by value instead (r.34).
    WARNING_NO_LVALUE_REF_SHARED_PTR = 26417,                           // Shared pointer parameter '%1$s' is passed by reference and not reset or reassigned. Use T* or T& instead (r.35).
    WARNING_NO_VALUE_OR_CONST_REF_SHARED_PTR = 26418,                   // Shared pointer parameter '%1$s' is not copied or moved. Use T* or T& instead (r.36).
    WARNING_NO_GLOBAL_INIT_CALLS = 26426,                               // Global initializer calls a non-constexpr function '%1$s' (i.22).
    WARNING_NO_GLOBAL_INIT_EXTERNS = 26427,                             // Global initializer accesses extern object '%1$s' (i.22).
    WARNING_USE_NOTNULL = 26429,                                        // Symbol '%1$s' is never tested for nullness, it can be marked as not_null (f.23).
    WARNING_TEST_ON_ALL_PATHS = 26430,                                  // Symbol '%1$s' is not tested for nullness on all paths (f.23).
    WARNING_DONT_TEST_NOTNULL = 26431,                                  // The type of expression '%1$s' is already gsl::not_null. Do not test it for nullness (f.23).
    WARNING_DEFINE_OR_DELETE_SPECIAL_OPS = 26432,                       // If you define or delete any default operation in the type '%1$s', define or delete them all (c.21).
    WARNING_OVERRIDE_EXPLICITLY = 26433,                                // Function '%1$s' should be marked with 'override' (c.128).
    WARNING_DONT_HIDE_METHODS = 26434,                                  // Function '%1$s' hides a non-virtual function '%2$s'.
    WARNING_SINGLE_VIRTUAL_SPECIFICATION = 26435,                       // Function '%1$s' should specify exactly one of 'virtual', 'override', or 'final' (c.128).
    WARNING_NEED_VIRTUAL_DTOR = 26436,                                  // The type '%1$s' with a virtual function needs either public virtual or protected non-virtual destructor (c.35).
    WARNING_DONT_SLICE = 26437,                                         // Do not slice (es.63).
    WARNING_NO_GOTO = 26438,                                            // Avoid 'goto' (es.76).
    WARNING_SPECIAL_NOEXCEPT = 26439,                                   // This kind of function should not throw. Declare it 'noexcept' (f.6).
    WARNING_DECLARE_NOEXCEPT = 26440,                                   // Function '%1$s' can be declared 'noexcept' (f.6).
    WARNING_NO_UNNAMED_GUARDS = 26441,                                  // Guard objects must be named (cp.44).
    WARNING_NO_EXPLICIT_DTOR_OVERRIDE = 26443,                          // Overriding destructor should not use explicit 'override' or 'virtual' specifiers (c.128).
    WARNING_NO_UNNAMED_RAII_OBJECTS = 26444,                            // Don't try to declare a local variable with no name (es.84).
    WARNING_NO_SPAN_REF = 26445,                                        // Do not assign gsl::span or std::string_view to a reference. They are cheap to construct and are not owners of the underlying data. (gsl.view).
    WARNING_USE_GSL_AT = 26446,                                         // Prefer to use gsl::at() instead of unchecked subscript operator (bounds.4).
    WARNING_DONT_THROW_IN_NOEXCEPT = 26447,                             // The function is declared 'noexcept' but calls function '%1$s()' which may throw exceptions (f.6).
    WARNING_USE_GSL_FINALLY = 26448,                                    // Consider using gsl::finally if final action is intended (gsl.util).
    WARNING_NO_SPAN_FROM_TEMPORARY = 26449,                             // gsl::span or std::string_view created from a temporary will be invalid when the temporary is invalidated (gsl.view).
    WARNING_RESULT_OF_ARITHMETIC_OPERATION_PROVABLY_LOSSY = 26450,      // Arithmetic overflow: '%1$s' operation causes overflow at compile time. Use a wider type to store the operands (io.1).
    WARNING_RESULT_OF_ARITHMETIC_OPERATION_CAST_TO_LARGER_SIZE = 26451, // Arithmetic overflow: Using operator '%1$s' on a %2$d byte value and then casting the result to a %3$d byte value. Cast the value to the wider type before calling operator '%1$s' to avoid overflow (io.2).
    WARNING_SHIFT_COUNT_NEGATIVE_OR_TOO_BIG = 26452,                    // Arithmetic overflow: Left shift count is negative or greater than or equal to the operand size which is undefined behavior (io.3).
    WARNING_LEFTSHIFT_NEGATIVE_SIGNED_NUMBER = 26453,                   // Arithmetic overflow: Left shift of a negative signed number is undefined behavior (io.4).
    WARNING_RESULT_OF_ARITHMETIC_OPERATION_NEGATIVE_UNSIGNED = 26454,   // Arithmetic overflow: '%1$s' operation produces a negative unsigned result at compile time (io.5).
    WARNING_DEFAULT_CTOR_NOEXCEPT = 26455,                              // Default constructor should not throw. Declare it 'noexcept' (f.6).
    WARNING_DONT_HIDE_OPERATORS = 26456,                                // Operator '%1$s' hides a non-virtual operator '%2$s' (c.128).
    WARNING_USE_STD_IGNORE_INSTEAD_OF_VOID_CAST = 26457,                // (void) should not be used to ignore return values, use 'std::ignore =' instead (es.48).
    WARNING_PATH_SENSITIVE_USE_GSL_AT = 26458,                          // Prefer to use gsl::at() instead of unchecked subscript operator (bounds.4).
    WARNING_NO_RAW_POINTER_IN_STL_RANGE_CHECKED = 26459,                // You called an STL function '%s' with a raw pointer parameter at position '%d' that may be unsafe - this relies on the caller to check that the passed values are correct. Consider wrapping your range in a gsl::span and pass as a span iterator (stl.1).
    WARNING_USE_CONST_REFERENCE_ARGUMENTS = 26460,                      // The reference argument '%s' for function '%s' can be marked as const (con.3).
    WARNING_USE_CONST_POINTER_ARGUMENTS = 26461,                        // The pointer argument '%s' for function '%s' can be marked as a pointer to const (con.3).
    WARNING_USE_CONST_POINTER_FOR_VARIABLE = 26462,                     // The value pointed to by '%1$s' is assigned only once, mark it as a pointer to const (con.4).
    WARNING_USE_CONST_FOR_ELEMENTS = 26463,                             // The elements of array '%1$s' are assigned only once, mark elements const (con.4).
    WARNING_USE_CONST_POINTER_FOR_ELEMENTS = 26464,                     // The values pointed to by elements of array '%1$s' are assigned only once, mark elements as pointer to const (con.4).
    WARNING_NO_CONST_CAST_UNNECESSARY = 26465,                          // Don't use const_cast to cast away const or volatile. const_cast is not required; constness or volatility is not being removed by this conversion (type.3).
    WARNING_NO_STATIC_DOWNCAST_POLYMORPHIC = 26466,                     // Don't use static_cast downcasts. A cast from a polymorphic type should use dynamic_cast (type.2).
    WARNING_AVOID_CAST_FLOAT_TO_UNSIGNED_INTEGER = 26467,               // Converting from floating point to unsigned integral types results in non-portable code if the double/float has a negative value. Use gsl::narrow_cast or gsl::narrow instead to guard against undefined behavior and potential data loss (es.46).
    WARNING_NO_REINTERPRET_CAST_FROM_VOID_PTR = 26471,                  // Don't use reinterpret_cast. A cast from void* can use static_cast (type.1).
    WARNING_NO_CASTS_FOR_ARITHMETIC_CONVERSION = 26472,                 // Don't use a static_cast for arithmetic conversions. Use brace initialization, gsl::narrow_cast or gsl::narrow (type.1).
    WARNING_NO_IDENTITY_CAST = 26473,                                   // Don't cast between pointer types where the source type and the target type are the same (type.1).
    WARNING_NO_IMPLICIT_CAST = 26474,                                   // Don't cast between pointer types when the conversion could be implicit (type.1).
    WARNING_NO_FUNCTION_STYLE_CASTS = 26475,                            // Do not use function style casts (es.49). Prefer 'Type{value}' over 'Type(value)'..
    WARNING_USE_VARIANT = 26476,                                        // Expression/symbol '%s' uses a naked union '%s' with multiple type pointers: Use variant instead (type.7).
    WARNING_USE_NULLPTR_NOT_CONSTANT = 26477,                           // Use 'nullptr' rather than 0 or NULL (es.47).
    WARNING_NO_MOVE_OP_ON_CONST = 26478,                                // Don't use std::move on constant variables. (es.56).
    WARNING_NO_MOVE_RET_ON_LOCALS = 26479,                              // Don't use std::move to return a local variable. (f.48).
    WARNING_NO_POINTER_ARITHMETIC = 26481,                              // Don't use pointer arithmetic. Use span instead (bounds.1).
    WARNING_NO_DYNAMIC_ARRAY_INDEXING = 26482,                          // Only index into arrays using constant expressions (bounds.2).
    WARNING_STATIC_INDEX_OUT_OF_RANGE = 26483,                          // Value %1$lld is outside the bounds (0, %2$lld) of variable '%3$s'. Only index into arrays using constant expressions that are within bounds of the array (bounds.2).
    WARNING_NO_ARRAY_TO_POINTER_DECAY = 26485,                          // Expression '%1$s': No array to pointer decay (bounds.3).
    WARNING_LIFETIMES_FUNCTION_PRECONDITION_VIOLATION = 26486,          // Don't pass a pointer that may be invalid to a function. Parameter %1$d '%2$s' in call to '%3$s' may be invalid (lifetime.3).
    WARNING_LIFETIMES_FUNCTION_POSTCONDITION_VIOLATION = 26487,         // Don't return a pointer '%1$s' that may be invalid (lifetime.4).
    WARNING_LIFETIMES_DEREF_NULL_POINTER = 26488,                       // Do not dereference a potentially null pointer: '%1$s'. '%2$s' was null at line %3$u (lifetime.1).
    WARNING_LIFETIMES_DEREF_INVALID_POINTER = 26489,                    // Don't dereference a pointer that may be invalid: '%1$s'. '%2$s' may have been invalidated at line %3$u (lifetime.1).
    WARNING_NO_REINTERPRET_CAST = 26490,                                // Don't use reinterpret_cast (type.1).
    WARNING_NO_STATIC_DOWNCAST = 26491,                                 // Don't use static_cast downcasts (type.2).
    WARNING_NO_CONST_CAST = 26492,                                      // Don't use const_cast to cast away const or volatile (type.3).
    WARNING_NO_CSTYLE_CAST = 26493,                                     // Don't use C-style casts (type.4).
    WARNING_VAR_USE_BEFORE_INIT = 26494,                                // Variable '%1$s' is uninitialized. Always initialize an object (type.5).
    WARNING_MEMBER_UNINIT = 26495,                                      // Variable '%1$s' is uninitialized. Always initialize a member variable (type.6).
    WARNING_USE_CONST_FOR_VARIABLE = 26496,                             // The variable '%1$s' does not change after construction, mark it as const (con.4).
    WARNING_USE_CONSTEXPR_FOR_FUNCTION = 26497,                         // You can attempt to make '%1$s' constexpr unless it contains any undefined behavior (f.4).
    WARNING_USE_CONSTEXPR_FOR_FUNCTIONCALL = 26498,                     // The function '%1$s' is constexpr, mark variable '%2$s' constexpr if compile-time evaluation is desired (con.5).
    WARNING_USE_OF_A_MOVED_FROM_OBJECT = 26800,                         // Use of a moved from object: ''%1$s'' (lifetime.1).
    WARNING_COROUTINES_USE_AFTER_FREE_CAPTURE = 26810,                  // Lifetime of captured variable ''%1$s'' might end by the time the coroutine is resumed (lifetime.1).
    WARNING_COROUTINES_USE_AFTER_FREE_PARAM = 26811,                    // Lifetime of the memory referenced by parameter ''%1$s'' might end by the time the coroutine is resumed (lifetime.1).
    WARNING_USE_BITWISE_AND_TO_CHEK_ENUM_FLAGS = 26813,                 // Use 'bitwise and' to check if a flag is set.
    WARNING_USE_CONSTEXPR_RATHER_THAN_CONST = 26814,                    // The const variable '%1$s' can be computed at compile-time. Consider using constexpr (con.5).
    WARNING_LIFETIME_LOCAL_USE_AFTER_FREE_TEMP = 26815,                 // The pointer is dangling because it points at a temporary instance which was destroyed.
    WARNING_LIFETIME_LOCAL_USE_AFTER_FREE_STACK = 26816,                // The pointer points to memory allocated on the stack.
    WARNING_RANGE_FOR_UNNECESSARY_COPY = 26817,                         // Potentially expensive copy of variable '%1$s' in range-for loop. Consider making it a const reference (es.71).
    WARNING_NON_ENUM_SWITCH_MISSING_DEFAULT = 26818,                    // Switch statement does not cover all cases. Consider adding a 'default' label (es.79).
    WARNING_UNANNOTATED_SWITCH_FALLTHROUGH = 26819,                     // Unannotated fallthrough between switch labels (es.78).
    WARNING_CHANGE_AUTO_TO_REFERENCE = 26820,                           // This is a potentially expensive copy operation. Consider using a reference unless a copy is required (p.9).
    WARNING_USE_GSL_SPAN_OVER_STD_SPAN = 26821,                         // For '%1$s', consider using gsl::span instead of std::span to guarantee runtime bounds safety (gsl.view).
    WARNING_NULLPTR_DEREFERENCE = 26822,                                // Dereferencing a null pointer '%1$s' (lifetime.1).
    WARNING_NULLPTR_DEREFERENCE_MAYBE = 26823,                          // Dereferencing a possibly null pointer '%1$s' (lifetime.1).
    WARNING_NULLPTR_POSTCONDITION_VIOLATION = 26824,                    // Postcondition for null pointer '%1$s' requires it to be non-null (lifetime.1).
    WARNING_NULLPTR_POSTCONDITION_VIOLATION_MAYBE = 26825,              // Postcondition for possibly null pointer '%1$s' requires it to be non-null (lifetime.1).
    WARNING_DONT_USE_VA_ARGS = 26826,                                   // Don't use C-style variable arguments (f.55).
    WARNING_ALMOST_BITWISE_ENUM = 26827,                                // Did you forget to initialize an enum or wanted to use another type?.
    WARNING_MIXING_OVERLAPPING_ENUMS = 26828,                           // Different enum types have overlapping values. Did you want to use another enum constant here?.
};
%ProgramFiles%\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\VS\include\CppCoreCheck\warnings.h(11,0)