'Retrieves the contents of a document.
This function takes a UnitInfo and two optional arguments, the first
being the start address and the second is the length. These define
the amount of data to be read from the archive.'

def RetrieveObject(self, ui, start=(-1), length=(-1)):

    if (self.file and ui):
        if (length == (-1)):
            len = ui.length
        else:
            len = length
        if (start == (-1)):
            st = 0L
        else:
            st = long(start)
        return chmlib.chm_retrieve_object(self.file, ui, st, len)
    else:
        return (0, '')
