'Given an object (usually the retval from a method), make it a good object to return.
Basically checks if it is a COM object, and wraps it up.
Also handles the fact that a retval may be a tuple of retvals'

def _get_good_object_(self, ob, userName=None, ReturnCLSID=None):

    if (ob is None):
        return None
    elif isinstance(ob, tuple):
        return tuple(map((lambda o, s=self, oun=userName, rc=ReturnCLSID: s._get_good_single_object_(o, oun, rc)), ob))
    else:
        return self._get_good_single_object_(ob)
