code: def Process(self, parser_mediator, root_item=None, **kwargs):
      
      # This will raise if unhandled keyword arguments are passed.
      super(AutomaticDestinationsOLECFPlugin, self).Process(
          parser_mediator, **kwargs)
  
      if not root_item:
        raise ValueError('Root item not set.')
  
      for item in root_item.sub_items:
        if item.name == 'DestList':
          self.ParseDestList(parser_mediator, item)
  
        elif self._RE_LNK_ITEM_NAME.match(item.name):
          display_name = parser_mediator.GetDisplayName()
          if display_name:
            display_name = '{0:s} # {1:s}'.format(display_name, item.name)
          else:
            display_name = '# {0:s}'.format(item.name)
  
          parser_mediator.AppendToParserChain(self._WINLNK_PARSER)
          try:
            item.seek(0, os.SEEK_SET)
            self._WINLNK_PARSER.ParseFileLNKFile(
                parser_mediator, item, display_name)
          finally:
            parser_mediator.PopFromParserChain()
docs: Parses an OLECF file.
  
      Args:
        parser_mediator (ParserMediator): mediates interactions between parsers
            and other components, such as storage and dfvfs.
        root_item (Optional[pyolecf.item]): root item of the OLECF file.
  
      Raises:
        ValueError: If the root_item is not set.