title: What are the macros in resource.h used for?
body: <p>When a resource file is created in visual studio, the IDE automatically generates a header file called resource.h with this text:</p>
  
  <pre><code>//{{NO_DEPENDENCIES}}
  // Microsoft Visual C++ generated include file.
  // Used by BackupRestore.rc
  
  // Next default values for new objects
  // 
  #ifdef APSTUDIO_INVOKED
  #ifndef APSTUDIO_READONLY_SYMBOLS
  #define _APS_NEXT_RESOURCE_VALUE        101
  #define _APS_NEXT_COMMAND_VALUE         40001
  #define _APS_NEXT_CONTROL_VALUE         1001
  #define _APS_NEXT_SYMED_VALUE           101
  #endif
  #endif
  </code></pre>
  
  <p>As you can see it comments and says that they are "default values for new objects". What exactly does this mean? Are they referenced anywhere else by default and if not where would they be used? I am trying to create a project with the minimum amount of code and files and have tested removing the resource.h file and the solution seems to build fine without it so I am wondering whether or not it is essential or if removing it will cause future issues.</p>
  
  <p>In summary:
  What is the resource.h file and its contents used for?
  Are the defined macros used elsewhere by default?
  When might a programmer reference them/use them in code, if at all?
  Are they essential and will removing them create future issues?</p>
  
  <p>Thanks in advance- please be aware I am very novice in C++ and macros.</p>