'If the attribute to be set is valid for the proxied
COM object, set that objects\'s parameter value; if not,
raise an exception.'

def __setattr__(self, attribute, value):

    try:
        if (attribute in self.properties):
            self._cached_properties(attribute).set(value)
            if self.ole_object.Path_.Path:
                self.ole_object.Put_()
        else:
            raise AttributeError(attribute)
    except pywintypes.com_error:
        handle_com_error()
