1ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// Copyright 2014 PDFium Authors. All rights reserved. 2ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// Use of this source code is governed by a BSD-style license that can be 3ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// found in the LICENSE file. 4ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 5ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 7ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#include "xfa/src/foxitlib.h" 8ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#include "xfa/src/fwl/src/basewidget/include/fxmath_barcodeimp.h" 9ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannstatic CBC_CodeBase* FX_Barcode_CreateBarCodeEngineObject(BC_TYPE type) { 10ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann switch (type) { 11ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODE39: 12ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return new CBC_Code39(); 13ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODABAR: 14ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return new CBC_Codabar(); 15ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODE128: 16ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return new CBC_Code128(BC_CODE128_B); 17ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODE128_B: 18ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return new CBC_Code128(BC_CODE128_B); 19ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODE128_C: 20ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return new CBC_Code128(BC_CODE128_C); 21ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_EAN8: 22ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return new CBC_EAN8(); 23ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_UPCA: 24ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return new CBC_UPCA(); 25ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_EAN13: 26ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return new CBC_EAN13(); 27ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_QR_CODE: 28ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return new CBC_QRCode(); 29ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_PDF417: 30ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return new CBC_PDF417I(); 31ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_DATAMATRIX: 32ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return new CBC_DataMatrix(); 33ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_UNKNOWN: 34ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann default: 35ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return NULL; 36ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 37ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 38ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannCFX_Barcode::CFX_Barcode() {} 39ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannCFX_Barcode::~CFX_Barcode() { 40ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (m_pBCEngine) { 41ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann delete m_pBCEngine; 42ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_pBCEngine = NULL; 43ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 44ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 45ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CFX_Barcode::Crreate(BC_TYPE type) { 46ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_pBCEngine = FX_Barcode_CreateBarCodeEngineObject(type); 47ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return m_pBCEngine != NULL; 48ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 49ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannvoid CFX_Barcode::Release() { 50ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann delete this; 51ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 52ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannBC_TYPE CFX_Barcode::GetType() { 53ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return m_pBCEngine ? m_pBCEngine->GetType() : BC_UNKNOWN; 54ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 55ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CFX_Barcode::SetCharEncoding(BC_CHAR_ENCODING encoding) { 56ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return m_pBCEngine ? m_pBCEngine->SetCharEncoding(encoding) : FALSE; 57ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 58ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CFX_Barcode::SetModuleHeight(int32_t moduleHeight) { 59ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return m_pBCEngine ? m_pBCEngine->SetModuleHeight(moduleHeight) : FALSE; 60ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 61ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CFX_Barcode::SetModuleWidth(int32_t moduleWidth) { 62ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return m_pBCEngine ? m_pBCEngine->SetModuleWidth(moduleWidth) : FALSE; 63ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 64ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CFX_Barcode::SetHeight(int32_t height) { 65ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return m_pBCEngine ? m_pBCEngine->SetHeight(height) : FALSE; 66ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 67ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CFX_Barcode::SetWidth(int32_t width) { 68ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return m_pBCEngine ? m_pBCEngine->SetWidth(width) : FALSE; 69ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 70ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CFX_Barcode::CheckContentValidity(const CFX_WideStringC& contents) { 71ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann switch (GetType()) { 72ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODE39: 73ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODABAR: 74ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODE128: 75ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODE128_B: 76ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODE128_C: 77ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_EAN8: 78ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_EAN13: 79ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_UPCA: 80ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return m_pBCEngine 81ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann ? static_cast<CBC_OneCode*>(m_pBCEngine) 82ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann ->CheckContentValidity(contents) 83ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann : TRUE; 84ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann default: 85ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return TRUE; 86ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 87ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 88ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CFX_Barcode::SetPrintChecksum(FX_BOOL checksum) { 89ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann switch (GetType()) { 90ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODE39: 91ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODABAR: 92ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODE128: 93ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODE128_B: 94ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODE128_C: 95ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_EAN8: 96ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_EAN13: 97ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_UPCA: 98ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return m_pBCEngine ? (static_cast<CBC_OneCode*>(m_pBCEngine) 99ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann ->SetPrintChecksum(checksum), 100ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann TRUE) 101ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann : FALSE; 102ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann default: 103ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 104ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 105ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 106ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CFX_Barcode::SetDataLength(int32_t length) { 107ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann switch (GetType()) { 108ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODE39: 109ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODABAR: 110ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODE128: 111ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODE128_B: 112ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODE128_C: 113ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_EAN8: 114ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_EAN13: 115ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_UPCA: 116ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return m_pBCEngine ? (static_cast<CBC_OneCode*>(m_pBCEngine) 117ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann ->SetDataLength(length), 118ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann TRUE) 119ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann : FALSE; 120ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann default: 121ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 122ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 123ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 124ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CFX_Barcode::SetCalChecksum(int32_t state) { 125ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann switch (GetType()) { 126ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODE39: 127ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODABAR: 128ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODE128: 129ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODE128_B: 130ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODE128_C: 131ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_EAN8: 132ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_EAN13: 133ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_UPCA: 134ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return m_pBCEngine ? (static_cast<CBC_OneCode*>(m_pBCEngine) 135ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann ->SetCalChecksum(state), 136ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann TRUE) 137ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann : FALSE; 138ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann default: 139ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 140ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 141ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 142ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CFX_Barcode::SetFont(CFX_Font* pFont) { 143ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann switch (GetType()) { 144ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODE39: 145ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODABAR: 146ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODE128: 147ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODE128_B: 148ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODE128_C: 149ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_EAN8: 150ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_EAN13: 151ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_UPCA: 152ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return m_pBCEngine 153ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann ? static_cast<CBC_OneCode*>(m_pBCEngine)->SetFont(pFont) 154ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann : FALSE; 155ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann default: 156ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 157ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 158ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 159ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CFX_Barcode::SetFontSize(FX_FLOAT size) { 160ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann switch (GetType()) { 161ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODE39: 162ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODABAR: 163ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODE128: 164ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODE128_B: 165ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODE128_C: 166ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_EAN8: 167ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_EAN13: 168ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_UPCA: 169ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return m_pBCEngine 170ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann ? (static_cast<CBC_OneCode*>(m_pBCEngine)->SetFontSize(size), 171ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann TRUE) 172ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann : FALSE; 173ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann default: 174ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 175ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 176ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 177ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CFX_Barcode::SetFontStyle(int32_t style) { 178ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann switch (GetType()) { 179ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODE39: 180ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODABAR: 181ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODE128: 182ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODE128_B: 183ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODE128_C: 184ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_EAN8: 185ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_EAN13: 186ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_UPCA: 187ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return m_pBCEngine 188ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann ? (static_cast<CBC_OneCode*>(m_pBCEngine)->SetFontStyle(style), 189ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann TRUE) 190ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann : FALSE; 191ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann default: 192ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 193ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 194ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 195ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CFX_Barcode::SetFontColor(FX_ARGB color) { 196ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann switch (GetType()) { 197ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODE39: 198ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODABAR: 199ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODE128: 200ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODE128_B: 201ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODE128_C: 202ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_EAN8: 203ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_EAN13: 204ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_UPCA: 205ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return m_pBCEngine 206ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann ? (static_cast<CBC_OneCode*>(m_pBCEngine)->SetFontColor(color), 207ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann TRUE) 208ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann : FALSE; 209ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann default: 210ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 211ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 212ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 213ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CFX_Barcode::SetTextLocation(BC_TEXT_LOC location) { 214ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann typedef FX_BOOL (CBC_CodeBase::*memptrtype)(BC_TEXT_LOC); 215ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann memptrtype memptr = NULL; 216ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann switch (GetType()) { 217ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODE39: 218ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann memptr = (memptrtype)&CBC_Code39::SetTextLocation; 219ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 220ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODABAR: 221ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann memptr = (memptrtype)&CBC_Codabar::SetTextLocation; 222ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 223ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODE128: 224ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODE128_B: 225ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODE128_C: 226ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann memptr = (memptrtype)&CBC_Code128::SetTextLocation; 227ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 228ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann default: 229ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 230ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 231ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return m_pBCEngine && memptr ? (m_pBCEngine->*memptr)(location) : FALSE; 232ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 233ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CFX_Barcode::SetWideNarrowRatio(int32_t ratio) { 234ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann typedef FX_BOOL (CBC_CodeBase::*memptrtype)(int32_t); 235ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann memptrtype memptr = NULL; 236ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann switch (GetType()) { 237ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODE39: 238ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann memptr = (memptrtype)&CBC_Code39::SetWideNarrowRatio; 239ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 240ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODABAR: 241ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann memptr = (memptrtype)&CBC_Codabar::SetWideNarrowRatio; 242ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 243ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann default: 244ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 245ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 246ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return m_pBCEngine && memptr ? (m_pBCEngine->*memptr)(ratio) : FALSE; 247ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 248ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CFX_Barcode::SetStartChar(FX_CHAR start) { 249ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann typedef FX_BOOL (CBC_CodeBase::*memptrtype)(FX_CHAR); 250ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann memptrtype memptr = NULL; 251ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann switch (GetType()) { 252ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODABAR: 253ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann memptr = (memptrtype)&CBC_Codabar::SetStartChar; 254ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 255ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann default: 256ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 257ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 258ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return m_pBCEngine && memptr ? (m_pBCEngine->*memptr)(start) : FALSE; 259ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 260ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CFX_Barcode::SetEndChar(FX_CHAR end) { 261ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann typedef FX_BOOL (CBC_CodeBase::*memptrtype)(FX_CHAR); 262ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann memptrtype memptr = NULL; 263ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann switch (GetType()) { 264ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_CODABAR: 265ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann memptr = (memptrtype)&CBC_Codabar::SetEndChar; 266ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 267ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann default: 268ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 269ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 270ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return m_pBCEngine && memptr ? (m_pBCEngine->*memptr)(end) : FALSE; 271ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 272ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CFX_Barcode::SetVersion(int32_t version) { 273ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann typedef FX_BOOL (CBC_CodeBase::*memptrtype)(int32_t); 274ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann memptrtype memptr = NULL; 275ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann switch (GetType()) { 276ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_QR_CODE: 277ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann memptr = (memptrtype)&CBC_QRCode::SetVersion; 278ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 279ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann default: 280ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 281ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 282ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return m_pBCEngine && memptr ? (m_pBCEngine->*memptr)(version) : FALSE; 283ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 284ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CFX_Barcode::SetErrorCorrectionLevel(int32_t level) { 285ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann typedef FX_BOOL (CBC_CodeBase::*memptrtype)(int32_t); 286ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann memptrtype memptr = NULL; 287ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann switch (GetType()) { 288ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_QR_CODE: 289ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann memptr = (memptrtype)&CBC_QRCode::SetErrorCorrectionLevel; 290ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 291ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_PDF417: 292ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann memptr = (memptrtype)&CBC_PDF417I::SetErrorCorrectionLevel; 293ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 294ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann default: 295ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 296ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 297ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return m_pBCEngine && memptr ? (m_pBCEngine->*memptr)(level) : FALSE; 298ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 299ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CFX_Barcode::SetTruncated(FX_BOOL truncated) { 300ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann typedef void (CBC_CodeBase::*memptrtype)(FX_BOOL); 301ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann memptrtype memptr = NULL; 302ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann switch (GetType()) { 303ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case BC_PDF417: 304ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann memptr = (memptrtype)&CBC_PDF417I::SetTruncated; 305ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 306ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann default: 307ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 308ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 309ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return m_pBCEngine && memptr ? ((m_pBCEngine->*memptr)(truncated), TRUE) 310ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann : FALSE; 311ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 312ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#ifndef BCExceptionNO 313ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define BCExceptionNO 0 314ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#endif 315ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#ifndef BCExceptionFormatException 316ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define BCExceptionFormatException 8 317ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#endif 318ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#ifndef BCExceptionUnSupportedBarcode 319ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define BCExceptionUnSupportedBarcode 18 320ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#endif 321ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CFX_Barcode::Encode(const CFX_WideStringC& contents, 322ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL isDevice, 323ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t& e) { 324ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!m_pBCEngine) { 325ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 326ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 327ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return m_pBCEngine->Encode(contents, isDevice, e); 328ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 329ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CFX_Barcode::RenderDevice(CFX_RenderDevice* device, 330ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CFX_Matrix* matirx, 331ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t& e) { 332ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!m_pBCEngine) { 333ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 334ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 335ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return m_pBCEngine->RenderDevice(device, matirx, e); 336ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 337ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CFX_Barcode::RenderBitmap(CFX_DIBitmap*& pOutBitmap, int32_t& e) { 338ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!m_pBCEngine) { 339ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 340ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 341ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return m_pBCEngine->RenderBitmap(pOutBitmap, e); 342ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 343ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define BC_TYPE_MIN BC_CODE39 344ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define BC_TYPE_MAX BC_DATAMATRIX 345ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannCFX_WideString CFX_Barcode::Decode(uint8_t* buf, 346ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t width, 347ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t height, 348ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t& errorCode) { 349ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann for (BC_TYPE t = BC_TYPE_MIN; t <= BC_TYPE_MAX; 350ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann t = (BC_TYPE)((int32_t)t + 1)) { 351ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CBC_CodeBase* pTmpEngine = FX_Barcode_CreateBarCodeEngineObject(t); 352ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!pTmpEngine) { 353ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann continue; 354ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 355ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString ret = pTmpEngine->Decode(buf, width, height, errorCode); 356ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (errorCode == BCExceptionNO) { 357ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return ret; 358ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 359ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 360ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann errorCode = BCExceptionUnSupportedBarcode; 361ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return CFX_WideString(); 362ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 363ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannCFX_WideString CFX_Barcode::Decode(CFX_DIBitmap* pBitmap, int32_t& errorCode) { 364ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann for (BC_TYPE t = BC_TYPE_MIN; t <= BC_TYPE_MAX; 365ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann t = (BC_TYPE)((int32_t)t + 1)) { 366ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CBC_CodeBase* pTmpEngine = FX_Barcode_CreateBarCodeEngineObject(t); 367ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!pTmpEngine) { 368ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann continue; 369ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 370ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString ret = pTmpEngine->Decode(pBitmap, errorCode); 371ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (errorCode == BCExceptionNO) { 372ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return ret; 373ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 374ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 375ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann errorCode = BCExceptionUnSupportedBarcode; 376ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return CFX_WideString(); 377ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 378ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannIFX_Barcode* FX_Barcode_Create(BC_TYPE type) { 379ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_Barcode* pBarcode = new CFX_Barcode; 380ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pBarcode->Crreate(type)) { 381ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return pBarcode; 382ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 383ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pBarcode->Release(); 384ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return NULL; 385ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 386