/home/ivoiecob/email.hirewise-va.com/vendor/qualityunit/tnef-decoder/src/TNEFDecoder/TNEFFile.php
<?php namespace TNEFDecoder;

/**
  * SquirrelMail TNEF Decoder Plugin
  *
  * Copyright (c) 2010- Paul Lesniewski <paul@squirrelmail.org>
  * Copyright (c) 2003  Bernd Wiegmann <bernd@wib-software.de>
  * Copyright (c) 2002  Graham Norburys <gnorbury@bondcar.com>
  *
  * Licensed under the GNU GPL. For full terms see the file COPYING.
  *
  * @package plugins
  * @subpackage tnef_decoder
  *
  */

class TNEFFile extends TNEFFileBase
{

   var $metafile;

   function __construct($debug)
   {
      parent::__construct($debug);
   }

   function getMetafile()
   {
      return $this->metafile;
   }

   function receiveTnefAttribute($attribute, $value, $length)
   {
      switch ($attribute)
      {

         // filename
         //
         case TNEF_AFILENAME:
            // strip path
            //
            if (($pos = strrpos($value, '/')) !== FALSE)
               $this->name = substr($value, $pos + 1);
            else
               $this->name = $value;

            // Strip trailing null bytes if present
            $this->name = trim($this->name);
            break;
         // code page
         //
         case TNEF_AOEMCODEPAGE:
            $this->code_page = tnef_geti16(new TNEFBuffer($value));
            break;

         // the attachment itself
         //
         case TNEF_ATTACHDATA:
            $this->content = $value;
            break;

         // a metafile
         //
         case TNEF_ATTACHMETAFILE:
            $this->metafile = $value;
            break;

         case TNEF_AATTACHCREATEDATE:
            $this->created = new TNEFDate();
            $this->created->setTnefBuffer(new TNEFBuffer($value));

         case TNEF_AATTACHMODDATE:
            $this->modified = new TNEFDate();
            $this->modified->setTnefBuffer(new TNEFBuffer($value));
            break;
      }
   }

   function receiveMapiAttribute($attr_type, $attr_name, $value, $length, $is_unicode=FALSE)
   {
      switch ($attr_name)
      {

         // used in preference to AFILENAME value
         //
         case TNEF_MAPI_ATTACH_LONG_FILENAME:
            // strip path
            //
            if (($pos = strrpos($value, '/')) !== FALSE)
               $this->name = substr($value, $pos + 1);
            else
               $this->name = $value;

            if ($is_unicode) $this->name_is_unicode = TRUE;
            break;

         // Is this ever set, and what is format?
         //
         case TNEF_MAPI_ATTACH_MIME_TAG:
            $type0 = $type1 = '';
            $mime_type = explode('/', $value, 2);
            if (!empty($mime_type[0]))
               $type0 = $mime_type[0];
            if (!empty($mime_type[1]))
               $type1 = $mime_type[1];
            $this->type = "$type0/$type1";
            if ($is_unicode) {
                $this->type = substr(mb_convert_encoding($this->type, "UTF-8" , "UTF-16LE"), 0, -1);
            }
            break;

         case TNEF_MAPI_ATTACH_EXTENSION:
            $type = extension_to_mime($value);
            if ($type)
	       $this->type = $type;
            break;
      }
   }

}