⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 systype.h

📁 xls文件格式分析基础库
💻 H
字号:
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Copyright (C) Yeico S. A. de C. V. * xlsLib -- A multiplatform, C++ library for dynamic generation of Excel (TM)  * files. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *   * $Source: /cvsroot/xlslib/xlslib/src/common/systype.h,v $ * $Revision: 1.2 $ * $Author: darioglz $ * $Date: 2004/09/01 00:47:04 $ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * File description: * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */#ifndef SYSTYPE_H#define SYSTYPE_H#if defined(_MSC_VER) && defined(WIN32)#pragma warning(disable: 4786) // Long debug information related to STL#pragma warning(disable: 4290) // C++ Exception Specification ignored#endif//#   define PHPEXT_TSRMLS_C  tsrm_ls//#   define PHPEXT_TSRMLS_D  void ***tsrm_ls// Global includes#include <stdio.h>#include <cstring>#include <string>#include <iostream>#include <list>#include <set>#include <algorithm>#include "overnew.h"#define INLINE inline//#define NULL ((void*)(0))#define NO_ERRORS        0#define FILE_ERROR      -1#define GENERAL_ERROR           -100#define PTYPE_DIRECTORY   ((unsigned8_t)(0x01))#define PTYPE_FILE        ((unsigned8_t)(0x02))#define PTYPE_ROOT        ((unsigned8_t)(0x05))#define PCOLOR_BLACK      ((unsigned8_t)(0x01))#define PCOLOR_RED     ((unsigned8_t)(0x00))#define PLINK_EMPTY       ((signed32_t)(-1))#define PBLOCK_END        ((signed32_t)(-2))#if USE_ALLOCATOR==ALLOCATOR_STL#define XLSLIB_DFLT_ALLOCATOR#elif USE_ALLOCATOR==ALLOCATOR_BTI#include "bti_thread_alloc.h"#define XLSLIB_DFLT_ALLOCATOR ,bti::thr_alloc#else#   error ERROR: Invalid allocator option#endiftypedef unsigned char      unsigned8_t;typedef unsigned short int unsigned16_t;typedef unsigned int       unsigned32_t;#if defined(_MSC_VER) && defined(WIN32)typedef __int64 unsigned64_t;#elsetypedef long long unsigned int unsigned64_t;#endiftypedef char               signed8_t;typedef short int          signed16_t;typedef int                signed32_t;typedef std::list<std::string* XLSLIB_DFLT_ALLOCATOR> StringList_t;typedef StringList_t::const_iterator StringListItor_t;// Macros#if defined(_MSC_VER) && defined(WIN32)# define MASK_BYTE0 0x00000000000000ff# define MASK_BYTE1 0x000000000000ff00# define MASK_BYTE2 0x0000000000ff0000# define MASK_BYTE3 0x00000000ff000000# define MASK_BYTE4 0x000000ff00000000# define MASK_BYTE5 0x0000ff0000000000# define MASK_BYTE6 0x00ff000000000000# define MASK_BYTE7 0xff00000000000000#else# define MASK_BYTE0 0x00000000000000ffLL# define MASK_BYTE1 0x000000000000ff00LL# define MASK_BYTE2 0x0000000000ff0000LL# define MASK_BYTE3 0x00000000ff000000LL# define MASK_BYTE4 0x000000ff00000000LL# define MASK_BYTE5 0x0000ff0000000000LL# define MASK_BYTE6 0x00ff000000000000LL# define MASK_BYTE7 0xff00000000000000LL#endif#define BYTE_0(num) (unsigned8_t) (num & MASK_BYTE0)#define BYTE_1(num) (unsigned8_t)((num & MASK_BYTE1)>>0x08)#define BYTE_2(num) (unsigned8_t)((num & MASK_BYTE2)>>0x10)#define BYTE_3(num) (unsigned8_t)((num & MASK_BYTE3)>>0x18)#define BYTE_4(num) (unsigned8_t)((num & MASK_BYTE4)>>0x20)#define BYTE_5(num) (unsigned8_t)((num & MASK_BYTE5)>>0x28)#define BYTE_6(num) (unsigned8_t)((num & MASK_BYTE6)>>0x30)#define BYTE_7(num) (unsigned8_t)((num & MASK_BYTE7)>>0x38)#define HEADPOS_ID               ((unsigned16_t)(0x00))#define HEADPOS_UK1              ((unsigned16_t)(0x08))#define HEADPOS_UK2              ((unsigned16_t)(0x0c))#define HEADPOS_UK2b             ((unsigned16_t)(0x10)) /* According to the Excel sample... but undocummented */#define HEADPOS_UK3              ((unsigned16_t)(0x14))#define HEADPOS_UK4              ((unsigned16_t)(0x18))#define HEADPOS_UK5              ((unsigned16_t)(0x1a))#define HEADPOS_UK6              ((unsigned16_t)(0x1c))#define HEADPOS_LOG2_BIGBLOCK         ((unsigned16_t)(0x1e))#define HEADPOS_LOG2_SMALLBLOCK       ((unsigned16_t)(0x20))#define HEADPOS_UK7              ((unsigned16_t)(0x24))#define HEADPOS_UK8              ((unsigned16_t)(0x28))#define HEADPOS_BAT_COUNT   ((unsigned16_t)(0x2c))#define HEADPOS_PROPERTIES_SB  ((unsigned16_t)(0x30))#define HEADPOS_UK9              ((unsigned16_t)(0x34))#define HEADPOS_UK10             ((unsigned16_t)(0x38))#define HEADPOS_SBAT_COUNT   ((unsigned16_t)(0x40))#define HEADPOS_SBAT_START   ((unsigned16_t)(0x3c)) #define HEADPOS_XBAT_START   ((unsigned16_t)(0x44))#define HEADPOS_XBAT_COUNT   ((unsigned16_t)(0x48))#define HEADPOS_BAT_ARRAY         ((unsigned16_t)(0x4c))#define HEADVAL_DFLT_NOTUSED     ((unsigned8_t) (0xff)  ) #define HEADVAL_DFLT_UK1         ((signed32_t) (0x00)  )#define HEADVAL_DFLT_UK2         ((signed32_t) (0x00)  )#define HEADVAL_DFLT_UK2b        ((signed32_t) (0x00)  )/* According to the Excel sample... but undocummented */#define HEADVAL_DFLT_UK3         ((signed32_t) (0x00)  )#define HEADVAL_DFLT_UK4         ((signed16_t) (0x3e)  )/*POIFS documentations says 0x3b... let's stick with the Excel sample ...*/#define HEADVAL_DFLT_UK5         ((signed16_t) (0x03)  )#define HEADVAL_DFLT_UK6         ((signed16_t) (-2)    )#define HEADVAL_DFLT_UK7         ((signed32_t) (0x00)  )#define HEADVAL_DFLT_UK8         ((signed32_t) (0x00)  )#define HEADVAL_DFLT_UK9         ((signed32_t) (0x00)  )#define HEADVAL_DFLT_UK10        ((signed32_t) (0x1000))#define HEADVAL_DFLT_LOG2_BIGBLOCK        ((signed16_t)(9)) #define HEADVAL_DFLT_LOG2_SMALLBLOCK      ((signed32_t)(6)) #define HEADVAL_DFLT_BATCOUNT     ((signed32_t)(0)   ) #define HEADVAL_DFLT_PROPERTIES_SB     ((signed32_t)(-2)  )#define HEADVAL_DFLT_SBAT_START      ((signed32_t)(-2)  )#define HEADVAL_DFLT_SBAT_COUNT      ((signed32_t)(0)  ) //POIFS says it should be 1 ... let's stick to M$#define HEADVAL_DFLT_XBAT_START        ((signed32_t)(-2)  )#define HEADVAL_DFLT_XBAT_COUNT    ((signed32_t)(0)   )#define HEADVAL_DFLT_BAT_ARRAY    /* Cannot have a default value */ #define HEAD_SIZE                BIG_BLOCK_SIZE#define HEAD_ID_SZ               (0x08)#define HEAD_UNUSED_BYTE  ((unsigned32_t) (0xff))#define BAT_END_CHAIN  ((signed32_t)(-2)   )#define BAT_SELF_PLACE ((signed32_t)(-3)   )#define BAT_NOT_USED_BYTE ((unsigned8_t)(0xff)   )#define PROPERTY_DFLT_NOTUSED     ((unsigned8_t)(0x00))#define PROPERTY_MAX_NAME_LENGTH  ((unsigned8_t)(32))#define PROPERTY_TYPE_DIR         ((unsigned8_t)(0x01))#define PROPERTY_TYPE_FILE        ((unsigned8_t)(0x02))#define PROPERTY_TYPE_ROOT        ((unsigned8_t)(0x05))#define PROPERTY_COLOR_NODE_RED   ((unsigned8_t)(0x00))#define PROPERTY_COLOR_NODE_BLACK ((unsigned8_t)(0x01))#define PROPERTY_LINK_EMPTY       ((signed32_t)(-1))#define PPTPOS_NAME               ((unsigned8_t)(0x00))#define PPTPOS_NAMELENGTH         ((unsigned8_t)(0x40))#define PPTPOS_TYPE               ((unsigned8_t)(0x42))#define PPTPOS_NODECOLOR          ((unsigned8_t)(0x43))#define PPTPOS_PREVIOUS           ((unsigned8_t)(0x44))#define PPTPOS_NEXT               ((unsigned8_t)(0x48))#define PPTPOS_CHILD              ((unsigned8_t)(0x4C))#define PPTPOS_UNUSED_EMPTY0             ((unsigned8_t)(0x50))#define PPTPOS_SECS1            ((unsigned32_t)(0x64))#define PPTPOS_SECS2            ((unsigned32_t)(0x68))#define PPTPOS_DAYS1            ((unsigned32_t)(0x6c))#define PPTPOS_DAYS2            ((unsigned32_t)(0x70))#define PPTPOS_STARTBLOCK         ((unsigned8_t)(0x74))#define PPTPOS_SIZE               ((unsigned8_t)(0x78))#define PPT_DFLT_SECS1            ((signed32_t)(0))#define PPT_DFLT_SECS2            ((signed32_t)(0))#define PPT_DFLT_DAYS1            ((signed32_t)(0))#define PPT_DFLT_DAYS2            ((signed32_t)(0))// More macros/*  *********************************************************************************/#define Delete_Pointer(pt) {                    \  if(pt != NULL)                                \    {                                           \      delete pt;                                \      pt = NULL;                                \    }                                           \}/*  *********************************************************************************/#ifdef __DEBUG__#define XTRACE(str) {                           \  cout<<"DEBUG: "<<str<<endl;                   \}#else#define XTRACE(str)#endif#ifdef __PHP_DEBUG__#define PHPTRACE(str) {                           \  cout<<"PHPDEBUG: "<<str<<endl;                   \}#else#define PHPTRACE(str)#endif#endif //SYSTYPE_H/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * $Log: systype.h,v $ * Revision 1.2  2004/09/01 00:47:04  darioglz * + Modified to gain independence of target * * Revision 1.1.1.1  2004/08/27 16:32:05  darioglz * Initial Import. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -