FX_FLOAT GetMinMaxValue( CPDF_RectArray& array, FPDF_TYPE type, FPDF_VALUE value) { int nRects = array.GetSize(); FX_FLOAT fRet = 0.0f; if (nRects <= 0)return 0.0f; FX_FLOAT* pArray = new FX_FLOAT[nRects]; switch(value) { case LEFT: { for (int i = 0; i < nRects; i++) pArray[i] = CPDF_Rect(array.GetAt(i)).left; break; } case TOP: { for (int i = 0; i < nRects; i++) pArray[i] = CPDF_Rect(array.GetAt(i)).top; break; } case RIGHT: { for (int i = 0; i < nRects; i++) pArray[i] = CPDF_Rect(array.GetAt(i)).right; break; } case BOTTOM: { for (int i = 0; i < nRects; i++) pArray[i] = CPDF_Rect(array.GetAt(i)).bottom; break; } default: break; } fRet = pArray[0]; if (type == MAX) { for (int i = 1; i < nRects; i++) if (fRet <= pArray[i]) fRet = pArray[i]; } else { for (int i = 1; i < nRects; i++) if (fRet >= pArray[i]) fRet = pArray[i]; } delete[] pArray; return fRet; }