public function MessageGetThreadVersions($start, $end = false, $thread_items = false, $folder_ids = false)
 {
     // $start : search start datetime   UNIX timestamp
     // $end   : search end   datetime   UNIX timestamp    (optional)
     // $thread_items : CbgrnItemVersionType or this array (optional)
     // $folder_ids   : IDType (== string) or this array (optional)
     $this->CheckAndSetHeader(__FUNCTION__);
     $reg_args["start"] = gmdate(W3C_DATETIME_FORMAT, $start);
     if ($end !== false) {
         $reg_args["end"] = gmdate(W3C_DATETIME_FORMAT, $end);
     }
     if ($thread_items !== false) {
         $reg_args["thread_item"] = $this->getRegularArgs($thread_items, __FUNCTION__, "CbgrnItemVersionType");
     }
     if ($folder_ids !== false) {
         $reg_args["folder_id"] = $this->getRegularArgs($folder_ids, __FUNCTION__);
     }
     $this->encodeString($reg_args);
     $results = parent::MessageGetThreadVersions($reg_args);
     $this->methodClose();
     return $this->decodeString($results->thread_item);
 }