code: def load_macros(self, version):
      vsbase = r"Software\Microsoft\VisualStudio\%0.1f" % version
      self.set_macro(
          "VCInstallDir", vsbase + r"\Setup\VC", "productdir"
      )
      self.set_macro(
          "VSInstallDir", vsbase + r"\Setup\VS", "productdir"
      )
      net = r"Software\Microsoft\.NETFramework"
      self.set_macro("FrameworkDir", net, "installroot")
      try:
          if version > 7.0:
              self.set_macro(
                  "FrameworkSDKDir", net, "sdkinstallrootv1.1"
              )
          else:
              self.set_macro("FrameworkSDKDir", net, "sdkinstallroot")
      except KeyError as exc:  #
          raise DistutilsPlatformError(
              """Python was built with Visual Studio 2003;
  extensions must be built with a compiler than can generate compatible binaries.
  Visual Studio 2003 was not found on this system. If you have Cygwin installed,
  you can try compiling with MingW32, by passing "-c mingw32" to setup.py."""
          )
  
      p = r"Software\Microsoft\NET Framework Setup\Product"
      for base in HKEYS:
          try:
              h = RegOpenKeyEx(base, p)
          except RegError:
              continue
          key = RegEnumKey(h, 0)
          d = read_values(base, r"%s\%s" % (p, key))
          self.macros["$(FrameworkVersion)"] = d["version"]
  
imports: import sys, os
  from distutils.errors import DistutilsExecError, DistutilsPlatformError, CompileError, LibError, LinkError
  from distutils.ccompiler import CCompiler, gen_lib_options
  from distutils import log
label_desc: Use image node_id 3 for calling the MacroExpander obj's underlying member method code with example usage: obj.load_macros(version) without return types