code: def directory_copy(self, source, destination, flags):
          
          if not isinstance(source, basestring):
              raise TypeError("source can only be an instance of type basestring")
          if not isinstance(destination, basestring):
              raise TypeError("destination can only be an instance of type basestring")
          if not isinstance(flags, list):
              raise TypeError("flags can only be an instance of type list")
          for a in flags[:10]:
              if not isinstance(a, DirectoryCopyFlag):
                  raise TypeError(
                          "array can only contain objects of type DirectoryCopyFlag")
          progress = self._call("directoryCopy",
                       in_p=[source, destination, flags])
          progress = IProgress(progress)
          return progress
docs: Recursively copies a directory from one guest location to another.
  
          in source of type str
              The path to the directory to copy (in the guest).  Guest path style.
  
          in destination of type str
              The path to the target directory (in the guest).  Unless the
              :py:attr:`DirectoryCopyFlag.copy_into_existing`  flag is given, the
              directory shall not already exist.  Guest path style.
  
          in flags of type :class:`DirectoryCopyFlag`
              Zero or more :py:class:`DirectoryCopyFlag`  values.
  
          return progress of type :class:`IProgress`
              Progress object to track the operation to completion.
  
          raises :class:`OleErrorNotimpl`
              Not yet implemented.