Commit 55756769 authored by Elen.Subbotina's avatar Elen.Subbotina Committed by Alexander Trofimov

XlsFile2 bug 24747

git-svn-id: svn://fileserver/activex/AVS/Sources/TeamlabOffice/trunk/ServerComponents@63981 954022d7-b5bf-4e40-9824-e11837661b57
parent 9c84b61c
......@@ -29,7 +29,10 @@ void DefColWidth::writeFields(CFRecord& record)
void DefColWidth::readFields(CFRecord& record)
{
GlobalWorkbookInfoPtr global_info = record.getGlobalWorkbookInfo();
record >> cchdefColWidth;
global_info->defaultColumnWidth = cchdefColWidth ;
}
} // namespace XLS
......
......@@ -41,6 +41,8 @@ void DefaultRowHeight::writeFields(CFRecord& record)
void DefaultRowHeight::readFields(CFRecord& record)
{
GlobalWorkbookInfoPtr global_info = record.getGlobalWorkbookInfo();
unsigned short flags;
record >> flags;
fUnsynced = GETBIT(flags, 0);
......@@ -50,10 +52,12 @@ void DefaultRowHeight::readFields(CFRecord& record)
if(!fDyZero)
{
record >> miyRw;
global_info->defaultRowHeight = miyRw / 20.;
}
else
{
record >> miyRwHidden;
global_info->defaultRowHeight = miyRwHidden / 20.;
}
}
......
......@@ -81,7 +81,7 @@ int XF::serialize(std::wostream & stream)
if (ifmt.value())
{
CP_XML_ATTR(L"numFmtId" , *ifmt.value());
CP_XML_ATTR(L"numFmtId" , ifmt);
}
if(fStyle)
......@@ -91,7 +91,7 @@ int XF::serialize(std::wostream & stream)
}
else
{
CP_XML_ATTR(L"xfId" , *ixfParent.value() );
CP_XML_ATTR(L"xfId" , ixfParent );
CP_XML_ATTR(L"borderId" , cell.border_x_id);
CP_XML_ATTR(L"fillId" , cell.fill_x_id);
}
......
......@@ -69,8 +69,8 @@ void OfficeArtBStoreContainerFileBlock::load(XLS::CFRecord& record)
// read OfficeArtBlipPNG, OfficeArtBlipJPG ...
record >> rc_header;
size_t skipLen = 0;
bool isCompressed = false;
bool dumpToFile = true;
recType = rc_header.recType;
switch (rc_header.recType)
......@@ -135,6 +135,7 @@ void OfficeArtBStoreContainerFileBlock::load(XLS::CFRecord& record)
isCompressed = true;
readCompressedData(record, metafileHeader);
}
pict_type = L".wmf";///???? todooo
}
break;
case OfficeArtRecord::BlipJPEG:
......@@ -169,6 +170,7 @@ void OfficeArtBStoreContainerFileBlock::load(XLS::CFRecord& record)
}
break;
case OfficeArtRecord::BlipDIB:
pict_type = L"dib_data";
if (rc_header.recInstance == 0x7A8)
{
skipLen = 17;
......@@ -183,7 +185,6 @@ void OfficeArtBStoreContainerFileBlock::load(XLS::CFRecord& record)
record.RollRdPtrBack(32);
}
dumpToFile = false;
break;
case OfficeArtRecord::BlipTIFF:
pict_type = L".tiff";
......@@ -217,7 +218,6 @@ void OfficeArtBStoreContainerFileBlock::load(XLS::CFRecord& record)
else
result = true;
if (dumpToFile)
{
pict_data = new char[data_size];
memcpy(pict_data, record.getCurData<char>(), data_size);
......
......@@ -23,6 +23,7 @@ XLS::BiffStructurePtr OfficeArtClientAnchorSheet::clone()
int OfficeArtClientAnchorSheet::serialize(std::wostream &stream)
{
//-------------------------------------------------
CP_XML_WRITER(stream)
{
CP_XML_NODE(L"xdr:from")
......@@ -33,7 +34,7 @@ int OfficeArtClientAnchorSheet::serialize(std::wostream &stream)
}
CP_XML_NODE(L"xdr:colOff")
{
CP_XML_STREAM() << boost::lexical_cast<std::wstring>(dxL * 256);
CP_XML_STREAM() << boost::lexical_cast<std::wstring>(_dxL );
}
CP_XML_NODE(L"xdr:row")
{
......@@ -41,7 +42,7 @@ int OfficeArtClientAnchorSheet::serialize(std::wostream &stream)
}
CP_XML_NODE(L"xdr:rowOff")
{
CP_XML_STREAM() << boost::lexical_cast<std::wstring>(dyT * 256);
CP_XML_STREAM() << boost::lexical_cast<std::wstring>(_dyT);
}
}
CP_XML_NODE(L"xdr:to")
......@@ -52,7 +53,7 @@ int OfficeArtClientAnchorSheet::serialize(std::wostream &stream)
}
CP_XML_NODE(L"xdr:colOff")
{
CP_XML_STREAM() << boost::lexical_cast<std::wstring>(dxR * 256);
CP_XML_STREAM() << boost::lexical_cast<std::wstring>(_dxR );
}
CP_XML_NODE(L"xdr:row")
{
......@@ -60,7 +61,7 @@ int OfficeArtClientAnchorSheet::serialize(std::wostream &stream)
}
CP_XML_NODE(L"xdr:rowOff")
{
CP_XML_STREAM() << boost::lexical_cast<std::wstring>(dyB * 256);
CP_XML_STREAM() << boost::lexical_cast<std::wstring>(_dyB);
}
}
}
......@@ -78,15 +79,31 @@ void OfficeArtClientAnchorSheet::storeFields(XLS::CFRecord& record)
void OfficeArtClientAnchorSheet::loadFields(XLS::CFRecord& record)
{
XLS::GlobalWorkbookInfoPtr global_info = record.getGlobalWorkbookInfo();
unsigned short flags;
record >> flags >> colL >> dxL >> rwT >> dyT >> colR >> dxR >> rwB >> dyB;
fMove = GETBIT(flags, 0);
fSize = GETBIT(flags, 1);
_dxL = dxL * 595;
_dyT = dyT * 744;
_dxR = dxR * 595;
_dyB = dyB * 744;
double kfRow = (global_info->defaultRowHeight * 360000 * 2.54 / 72);
double kfColumn = ( 360000 * 2.54 / 72) / 256.;
if (colL < global_info->customColumnsWidth.size())
_dxL = dxL * kfColumn * global_info->customColumnsWidth[colL];
else
_dxL = dxL * kfColumn * global_info->defaultColumnWidth;
if (colR < global_info->customColumnsWidth.size())
_dxR = dxR * kfColumn * global_info->customColumnsWidth[colR];
else
_dxR = dxR * kfColumn * global_info->defaultColumnWidth;
_dyT = dyT * kfRow / 256. ;
_dyB = dyB * kfRow / 256 ; //744;
}
......
......@@ -38,215 +38,193 @@ OfficeArtFOPTEPtr OfficeArtFOPTE::load_and_create(XLS::CFRecord& record)
OfficeArtFOPTEPtr fopte;
switch(opid)
{
case 0x007F:
fopte = OfficeArtFOPTEPtr(new ProtectionBooleanProperties);
break;
case 0x00BF:
fopte = OfficeArtFOPTEPtr(new TextBooleanProperties);
break;
case 0x0100:
fopte = OfficeArtFOPTEPtr(new cropFromTop);
break;
case 0x0101:
fopte = OfficeArtFOPTEPtr(new cropFromBottom);
break;
case 0x0102:
fopte = OfficeArtFOPTEPtr(new cropFromLeft);
break;
case 0x0103:
fopte = OfficeArtFOPTEPtr(new cropFromRight);
break;
case 0x0104:
fopte = OfficeArtFOPTEPtr(new pib);
break;
case 0x0105:
fopte = OfficeArtFOPTEPtr(new anyString);
break;
case 0x010B:
fopte = OfficeArtFOPTEPtr(new pictureId);
break;
case 0x011A:
fopte = OfficeArtFOPTEPtr(new pictureRecolor);
break;
case 0x007F:
fopte = OfficeArtFOPTEPtr(new ProtectionBooleanProperties);
break;
case 0x00BF:
fopte = OfficeArtFOPTEPtr(new TextBooleanProperties);
case 0x013F:
fopte = OfficeArtFOPTEPtr(new BlipBooleanProperties);
break;
case 0x0180:
fopte = OfficeArtFOPTEPtr(new fillType);
break;
case 0x0181:
fopte = OfficeArtFOPTEPtr(new fillColor);
break;
case 0x0182:
fopte = OfficeArtFOPTEPtr(new fillOpacity);
break;
case 0x0183:
fopte = OfficeArtFOPTEPtr(new fillBackColor);
break;
case 0x0184:
fopte = OfficeArtFOPTEPtr(new fillBackOpacity);
break;
case 0x0185:
fopte = OfficeArtFOPTEPtr(new fillCrMod);
break;
case 0x0186:
fopte = OfficeArtFOPTEPtr(new fillBlip);
break;
case 0x0187:
fopte = OfficeArtFOPTEPtr(new fillBlipName);
fopte = OfficeArtFOPTEPtr(new anyString);
break;
case 0x0188:
fopte = OfficeArtFOPTEPtr(new fillBlipFlags);
break;
case 0x0189:
fopte = OfficeArtFOPTEPtr(new fillWidth);
break;
case 0x018A:
fopte = OfficeArtFOPTEPtr(new fillHeight);
break;
case 0x018B:
fopte = OfficeArtFOPTEPtr(new fillAngle);
break;
case 0x018C:
fopte = OfficeArtFOPTEPtr(new fillFocus);
break;
case 0x018D:
fopte = OfficeArtFOPTEPtr(new fillToLeft);
break;
case 0x018E:
fopte = OfficeArtFOPTEPtr(new fillToTop);
break;
case 0x018F:
fopte = OfficeArtFOPTEPtr(new fillToRight);
break;
case 0x0190:
fopte = OfficeArtFOPTEPtr(new fillToBottom);
break;
case 0x0191:
fopte = OfficeArtFOPTEPtr(new fillRectLeft);
break;
case 0x0192:
fopte = OfficeArtFOPTEPtr(new fillRectTop);
break;
case 0x0193:
fopte = OfficeArtFOPTEPtr(new fillRectRight);
break;
case 0x0194:
fopte = OfficeArtFOPTEPtr(new fillRectBottom);
break;
case 0x0195:
fopte = OfficeArtFOPTEPtr(new fillDztype);
break;
case 0x0196:
fopte = OfficeArtFOPTEPtr(new fillShadePreset);
break;
case 0x0197:
fopte = OfficeArtFOPTEPtr(new fillShadeColors);
break;
case 0x0198:
fopte = OfficeArtFOPTEPtr(new fillOriginX);
break;
case 0x0199:
fopte = OfficeArtFOPTEPtr(new fillOriginY);
break;
case 0x019A:
fopte = OfficeArtFOPTEPtr(new fillShapeOriginX);
break;
case 0x019B:
fopte = OfficeArtFOPTEPtr(new fillShapeOriginY);
break;
case 0x019C:
fopte = OfficeArtFOPTEPtr(new fillShadeType);
break;
case 0x019E:
fopte = OfficeArtFOPTEPtr(new fillColorExt);
break;
case 0x019F:
fopte = OfficeArtFOPTEPtr(new reserved415);
break;
case 0x01A0:
fopte = OfficeArtFOPTEPtr(new fillColorExtMod);
break;
case 0x01A1:
fopte = OfficeArtFOPTEPtr(new reserved417);
break;
case 0x01A2:
fopte = OfficeArtFOPTEPtr(new fillBackColorExt);
break;
case 0x01A3:
fopte = OfficeArtFOPTEPtr(new reserved419);
break;
case 0x01A4:
fopte = OfficeArtFOPTEPtr(new fillBackColorExtMod);
break;
case 0x01A5:
fopte = OfficeArtFOPTEPtr(new reserved421);
break;
case 0x01A6:
fopte = OfficeArtFOPTEPtr(new reserved422);
break;
case 0x01A7:
fopte = OfficeArtFOPTEPtr(new reserved423);
break;
case 0x01BF:
fopte = OfficeArtFOPTEPtr(new FillStyleBooleanProperties);
break;
case 0x01C0:
fopte = OfficeArtFOPTEPtr(new lineColor);
break;
case 0x01CB:
fopte = OfficeArtFOPTEPtr(new lineWidth);
break;
case 0x01CC:
fopte = OfficeArtFOPTEPtr(new lineMiterLimit);
break;
case 0x01CD:
fopte = OfficeArtFOPTEPtr(new lineStyle);
break;
case 0x01CE:
fopte = OfficeArtFOPTEPtr(new lineDashing);
break;
case 0x01FF:
fopte = OfficeArtFOPTEPtr(new LineStyleBooleanProperties);
break;
case 0x023F:
fopte = OfficeArtFOPTEPtr(new ShadowStyleBooleanProperties);
break;
case 0x033F:
fopte = OfficeArtFOPTEPtr(new ShapeBooleanProperties);
break;
case 0x0380:
case 0x0381:
fopte = OfficeArtFOPTEPtr(new anyString);
break;
case 0x0382:
fopte = OfficeArtFOPTEPtr(new pihlShape);
break;
case 0x03BF:
fopte = OfficeArtFOPTEPtr(new GroupShapeBooleanProperties);
break;
default:
fopte = OfficeArtFOPTEPtr(new OfficeArtFOPTE);
break;
......@@ -259,24 +237,19 @@ OfficeArtFOPTEPtr OfficeArtFOPTE::load_and_create(XLS::CFRecord& record)
void OfficeArtFOPTE::ReadComplexData(XLS::CFRecord& record)
{
record.skipNunBytes(op); // default is to skip complex data
};
}
//void TextBooleanProperties::setXMLAttributes(MSXML2::IXMLDOMElementPtr own_tag)
//{
// bool fFitShapeToText = GETBIT(op, 1);
// bool fAutoTextMargin = GETBIT(op, 3);
// bool fSelectText = GETBIT(op, 4);
// bool fUsefFitShapeToText = GETBIT(op, 17);
// bool fUsefAutoTextMargin = GETBIT(op, 19);
// bool fUsefSelectText = GETBIT(op, 20);
//
// own_tag->setAttribute(L"fFitShapeToText", fFitShapeToText);
// own_tag->setAttribute(L"fAutoTextMargin", fAutoTextMargin);
// own_tag->setAttribute(L"fSelectText", fSelectText);
// own_tag->setAttribute(L"fUsefFitShapeToText", fUsefFitShapeToText);
// own_tag->setAttribute(L"fUsefAutoTextMargin", fUsefAutoTextMargin);
// own_tag->setAttribute(L"fUsefSelectText", fUsefSelectText);
//}
void TextBooleanProperties::load(XLS::CFRecord& record)
{
OfficeArtFOPTE::load(record);
fFitShapeToText = GETBIT(op, 1);
fAutoTextMargin = GETBIT(op, 3);
fSelectText = GETBIT(op, 4);
fUsefFitShapeToText = GETBIT(op, 17);
fUsefAutoTextMargin = GETBIT(op, 19);
fUsefSelectText = GETBIT(op, 20);
}
//void fillShadeType::setXMLAttributes(MSXML2::IXMLDOMElementPtr own_tag)
......@@ -286,69 +259,36 @@ void OfficeArtFOPTE::ReadComplexData(XLS::CFRecord& record)
// bool msoshadeSigma = GETBIT(op, 2);
// bool msoshadeBand = GETBIT(op, 3);
// bool msoshadeOneColor = GETBIT(op, 4);
//
// own_tag->setAttribute(L"fFitShapeToText", msoshadeNone);
// own_tag->setAttribute(L"fAutoTextMargin", msoshadeGamma);
// own_tag->setAttribute(L"fSelectText", msoshadeSigma);
// own_tag->setAttribute(L"fUsefFitShapeToText", msoshadeBand);
// own_tag->setAttribute(L"fUsefAutoTextMargin", msoshadeOneColor);
//}
//void FillStyleBooleanProperties::setXMLAttributes(MSXML2::IXMLDOMElementPtr own_tag)
//{
// bool fNoFillHitTest = GETBIT(op, 0);
// bool fillUseRect = GETBIT(op, 1);
// bool fillShape = GETBIT(op, 2);
// bool fHitTestFill = GETBIT(op, 3);
// bool fFilled = GETBIT(op, 4);
// bool fUseShapeAnchor = GETBIT(op, 5);
// bool fRecolorFillAsPicture = GETBIT(op, 6);
// bool fUsefNoFillHitTest = GETBIT(op, 16);
// bool fUsefillUseRect = GETBIT(op, 17);
// bool fUsefillShape = GETBIT(op, 18);
// bool fUsefHitTestFill = GETBIT(op, 19);
// bool fUsefFilled = GETBIT(op, 20);
// bool fUsefUseShapeAnchor = GETBIT(op, 21);
// bool fUsefRecolorFillAsPicture = GETBIT(op, 22);
//
// own_tag->setAttribute(L"fNoFillHitTest", fNoFillHitTest);
// own_tag->setAttribute(L"fillUseRect", fillUseRect);
// own_tag->setAttribute(L"fillShape", fillShape);
// own_tag->setAttribute(L"fHitTestFill", fHitTestFill);
// own_tag->setAttribute(L"fFilled", fFilled);
// own_tag->setAttribute(L"fUseShapeAnchor", fUseShapeAnchor);
// own_tag->setAttribute(L"fRecolorFillAsPicture", fRecolorFillAsPicture);
// own_tag->setAttribute(L"fUsefNoFillHitTest", fUsefNoFillHitTest);
// own_tag->setAttribute(L"fUsefillUseRect", fUsefillUseRect);
// own_tag->setAttribute(L"fUsefillShape", fUsefillShape);
// own_tag->setAttribute(L"fUsefHitTestFill", fUsefHitTestFill);
// own_tag->setAttribute(L"fUsefFilled", fUsefFilled);
// own_tag->setAttribute(L"fUsefUseShapeAnchor", fUsefUseShapeAnchor);
// own_tag->setAttribute(L"fUsefRecolorFillAsPicture", fUsefRecolorFillAsPicture);
//}
//
//
//void fillBlip::setXMLAttributes(MSXML2::IXMLDOMElementPtr xml_tag)
//{
// if(blip)
// {
// blip->toXML(xml_tag);
// }
//}
void FillStyleBooleanProperties::load(XLS::CFRecord& record)
{
OfficeArtFOPTE::load(record);
fNoFillHitTest = GETBIT(op, 0);
fillUseRect = GETBIT(op, 1);
fillShape = GETBIT(op, 2);
fHitTestFill = GETBIT(op, 3);
fFilled = GETBIT(op, 4);
fUseShapeAnchor = GETBIT(op, 5);
fRecolorFillAsPicture = GETBIT(op, 6);
fUsefNoFillHitTest = GETBIT(op, 16);
fUsefillUseRect = GETBIT(op, 17);
fUsefillShape = GETBIT(op, 18);
fUsefHitTestFill = GETBIT(op, 19);
fUsefFilled = GETBIT(op, 20);
fUsefUseShapeAnchor = GETBIT(op, 21);
fUsefRecolorFillAsPicture = GETBIT(op, 22);
}
void fillBlip::ReadComplexData(XLS::CFRecord& record)
{
blip = OfficeArtBlip::load_blip(record);
}
//void fillBlipName::setXMLAttributes(MSXML2::IXMLDOMElementPtr own_tag)
//{
// own_tag->setAttribute(L"name", name.c_str());
//}
void fillBlipName::ReadComplexData(XLS::CFRecord& record)
void anyString::ReadComplexData(XLS::CFRecord& record)
{
name = std::wstring(record.getCurData<wchar_t>(), op);
string_ = std::wstring(record.getCurData<wchar_t>(), op);
record.skipNunBytes(op);
}
......@@ -378,116 +318,69 @@ void fillBlipName::ReadComplexData(XLS::CFRecord& record)
// }
// }
//}
//
//
//void fillShadeColors::setXMLAttributes(MSXML2::IXMLDOMElementPtr own_tag)
//{
// if(fComplex && op > 0)
// {
// fillShadeColors_complex.toXML(own_tag);
// }
//}
//
void fillShadeColors::ReadComplexData(XLS::CFRecord& record)
{
record >> fillShadeColors_complex;
}
void ProtectionBooleanProperties::load(XLS::CFRecord& record)
{
OfficeArtFOPTE::load(record);
fLockAgainstGrouping = GETBIT(op, 0);
fLockAdjustHandles = GETBIT(op, 1);
fLockText = GETBIT(op, 2);
fLockVertices = GETBIT(op, 3);
fLockCropping = GETBIT(op, 4);
fLockAgainstSelect = GETBIT(op, 5);
fLockPosition = GETBIT(op, 6);
fLockAspectRatio = GETBIT(op, 7);
fLockRotation = GETBIT(op, 8);
fLockAgainstUngrouping = GETBIT(op, 9);
fUsefLockAgainstGrouping = GETBIT(op, 16);
fUsefLockAdjustHandles = GETBIT(op, 17);
fUsefLockText = GETBIT(op, 18);
fUsefLockVertices = GETBIT(op, 19);
fUsefLockCropping = GETBIT(op, 20);
fUsefLockAgainstSelect = GETBIT(op, 21);
fUsefLockPosition = GETBIT(op, 22);
fUsefLockAspectRatio = GETBIT(op, 23);
fUsefLockRotation = GETBIT(op, 24);
fUsefLockAgainstUngrouping = GETBIT(op, 25);
}
//void ProtectionBooleanProperties::setXMLAttributes(MSXML2::IXMLDOMElementPtr own_tag)
//{
// bool fLockAgainstGrouping = GETBIT(op, 0);
// bool fLockAdjustHandles = GETBIT(op, 1);
// bool fLockText = GETBIT(op, 2);
// bool fLockVertices = GETBIT(op, 3);
// bool fLockCropping = GETBIT(op, 4);
// bool fLockAgainstSelect = GETBIT(op, 5);
// bool fLockPosition = GETBIT(op, 6);
// bool fLockAspectRatio = GETBIT(op, 7);
// bool fLockRotation = GETBIT(op, 8);
// bool fLockAgainstUngrouping = GETBIT(op, 9);
// bool fUsefLockAgainstGrouping = GETBIT(op, 16);
// bool fUsefLockAdjustHandles = GETBIT(op, 17);
// bool fUsefLockText = GETBIT(op, 18);
// bool fUsefLockVertices = GETBIT(op, 19);
// bool fUsefLockCropping = GETBIT(op, 20);
// bool fUsefLockAgainstSelect = GETBIT(op, 21);
// bool fUsefLockPosition = GETBIT(op, 22);
// bool fUsefLockAspectRatio = GETBIT(op, 23);
// bool fUsefLockRotation = GETBIT(op, 24);
// bool fUsefLockAgainstUngrouping = GETBIT(op, 25);
//
// own_tag->setAttribute(L"fLockAgainstGrouping", fLockAgainstGrouping);
// own_tag->setAttribute(L"fLockAdjustHandles", fLockAdjustHandles);
// own_tag->setAttribute(L"fLockText", fLockText);
// own_tag->setAttribute(L"fLockVertices", fLockVertices);
// own_tag->setAttribute(L"fLockCropping", fLockCropping);
// own_tag->setAttribute(L"fLockAgainstSelect", fLockAgainstSelect);
// own_tag->setAttribute(L"fLockPosition", fLockPosition);
// own_tag->setAttribute(L"fLockAspectRatio", fLockAspectRatio);
// own_tag->setAttribute(L"fLockRotation", fLockRotation);
// own_tag->setAttribute(L"fLockAgainstUngrouping", fLockAgainstUngrouping);
// own_tag->setAttribute(L"fUsefLockAgainstGrouping", fUsefLockAgainstGrouping);
// own_tag->setAttribute(L"fUsefLockAdjustHandles", fUsefLockAdjustHandles);
// own_tag->setAttribute(L"fUsefLockText", fUsefLockText);
// own_tag->setAttribute(L"fUsefLockVertices", fUsefLockVertices);
// own_tag->setAttribute(L"fUsefLockCropping", fUsefLockCropping);
// own_tag->setAttribute(L"fUsefLockAgainstSelect", fUsefLockAgainstSelect);
// own_tag->setAttribute(L"fUsefLockPosition", fUsefLockPosition);
// own_tag->setAttribute(L"fUsefLockAspectRatio", fUsefLockAspectRatio);
// own_tag->setAttribute(L"fUsefLockRotation", fUsefLockRotation);
// own_tag->setAttribute(L"fUsefLockAgainstUngrouping", fUsefLockAgainstUngrouping);
//}
//
//void LineStyleBooleanProperties::setXMLAttributes(MSXML2::IXMLDOMElementPtr own_tag)
//{
// bool fNoLineDrawDash = GETBIT(op, 0);
// bool fLineFillShape = GETBIT(op, 1);
// bool fHitTestLine = GETBIT(op, 2);
// bool fLine = GETBIT(op, 3);
// bool fArrowheadsOK = GETBIT(op, 4);
// bool fInsetPenOK = GETBIT(op, 5);
// bool fInsetPen = GETBIT(op, 6);
// bool fLineOpaqueBackColor = GETBIT(op, 9);
// bool fUsefNoLineDrawDash = GETBIT(op, 16);
// bool fUsefLineFillShape = GETBIT(op, 17);
// bool fUsefHitTestLine = GETBIT(op, 18);
// bool fUsefLine = GETBIT(op, 19);
// bool fUsefArrowheadsOK = GETBIT(op, 20);
// bool fUsefInsetPenOK = GETBIT(op, 21);
// bool fUsefInsetPen = GETBIT(op, 22);
// bool fUsefLineOpaqueBackColor = GETBIT(op, 25);
//
// own_tag->setAttribute(L"fNoLineDrawDash", fNoLineDrawDash);
// own_tag->setAttribute(L"fLineFillShape", fLineFillShape);
// own_tag->setAttribute(L"fHitTestLine", fHitTestLine);
// own_tag->setAttribute(L"fLine", fLine);
// own_tag->setAttribute(L"fArrowheadsOK", fArrowheadsOK);
// own_tag->setAttribute(L"fInsetPenOK", fInsetPenOK);
// own_tag->setAttribute(L"fInsetPen", fInsetPen);
// own_tag->setAttribute(L"fLineOpaqueBackColor", fLineOpaqueBackColor);
// own_tag->setAttribute(L"fUsefNoLineDrawDash", fUsefNoLineDrawDash);
// own_tag->setAttribute(L"fUsefLineFillShape", fUsefLineFillShape);
// own_tag->setAttribute(L"fUsefHitTestLine", fUsefHitTestLine);
// own_tag->setAttribute(L"fUsefLine", fUsefLine);
// own_tag->setAttribute(L"fUsefArrowheadsOK", fUsefArrowheadsOK);
// own_tag->setAttribute(L"fUsefInsetPenOK", fUsefInsetPenOK);
// own_tag->setAttribute(L"fUsefInsetPen", fUsefInsetPen);
// own_tag->setAttribute(L"fUsefLineOpaqueBackColor", fUsefLineOpaqueBackColor);
//}
void LineStyleBooleanProperties::load(XLS::CFRecord& record)
{
OfficeArtFOPTE::load(record);
fNoLineDrawDash = GETBIT(op, 0);
fLineFillShape = GETBIT(op, 1);
fHitTestLine = GETBIT(op, 2);
fLine = GETBIT(op, 3);
fArrowheadsOK = GETBIT(op, 4);
fInsetPenOK = GETBIT(op, 5);
fInsetPen = GETBIT(op, 6);
fLineOpaqueBackColor = GETBIT(op, 9);
fUsefNoLineDrawDash = GETBIT(op, 16);
fUsefLineFillShape = GETBIT(op, 17);
fUsefHitTestLine = GETBIT(op, 18);
fUsefLine = GETBIT(op, 19);
fUsefArrowheadsOK = GETBIT(op, 20);
fUsefInsetPenOK = GETBIT(op, 21);
fUsefInsetPen = GETBIT(op, 22);
fUsefLineOpaqueBackColor = GETBIT(op, 25);
}
//void ShadowStyleBooleanProperties::setXMLAttributes(MSXML2::IXMLDOMElementPtr own_tag)
//{
// bool fshadowObscured = GETBIT(op, 0);
// bool fShadow = GETBIT(op, 1);
// bool fUsefshadowObscured = GETBIT(op, 16);
// bool fUsefShadow = GETBIT(op, 17);
//
// own_tag->setAttribute(L"fshadowObscured", fshadowObscured);
// own_tag->setAttribute(L"fShadow", fShadow);
// own_tag->setAttribute(L"fUsefshadowObscured", fUsefshadowObscured);
// own_tag->setAttribute(L"fUsefShadow", fUsefShadow);
//}
void ShadowStyleBooleanProperties::load(XLS::CFRecord& record)
{
OfficeArtFOPTE::load(record);
fshadowObscured = GETBIT(op, 0);
fShadow = GETBIT(op, 1);
fUsefshadowObscured = GETBIT(op, 16);
fUsefShadow = GETBIT(op, 17);
}
XLS::BiffStructurePtr IHlink::clone()
{
return XLS::BiffStructurePtr(new IHlink(*this));
......
......@@ -48,41 +48,32 @@ public:
class fillColor : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(fillColor)
public:
//virtual void setXMLAttributes(MSXML2::IXMLDOMElementPtr xml_tag)
//{
// OfficeArtCOLORREF(op).toXML(xml_tag);
//}
};
class TextBooleanProperties : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(TextBooleanProperties)
public:
virtual void load(XLS::CFRecord& record);
bool fFitShapeToText;
bool fAutoTextMargin;
bool fSelectText;
bool fUsefFitShapeToText;
bool fUsefAutoTextMargin;
bool fUsefSelectText;
};
class lineColor : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(lineColor)
public:
//virtual void setXMLAttributes(MSXML2::IXMLDOMElementPtr xml_tag)
//{
// OfficeArtCOLORREF(op).toXML(xml_tag);
//}
};
class fillType : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(fillType)
public:
//virtual void setXMLAttributes(MSXML2::IXMLDOMElementPtr own_tag)
//virtual void setXMLAttributes(MSXML2::IXMLDOMElementPtr own_tag)
//{
// static std::wstring fills[10] = {L"msofillSolid", L"msofillPattern", L"msofillTexture", L"msofillPicture", L"msofillShade", L"msofillShadeCenter", L"msofillShadeShape", L"msofillShadeScale", L"msofillShadeTitle", L"msofillBackground"};
......@@ -101,275 +92,185 @@ public:
class pib : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(pib)
public:
};
class pictureId : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(pictureId)
public:
};
class pictureRecolor : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(pictureRecolor)
public:
};
class fillOpacity : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(fillOpacity)
public:
//virtual void setXMLAttributes(MSXML2::IXMLDOMElementPtr own_tag)
//{
// OSHARED::FixedPoint(op).toXML(own_tag, L"opacity");
//}
};
class fillBackColor : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(fillBackColor)
public:
//virtual void setXMLAttributes(MSXML2::IXMLDOMElementPtr xml_tag)
//{
// OfficeArtCOLORREF(op).toXML(xml_tag);
//}
};
class fillBackOpacity : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(fillBackOpacity)
public:
//virtual void setXMLAttributes(MSXML2::IXMLDOMElementPtr own_tag)
//{
// OSHARED::FixedPoint(op).toXML(own_tag, L"opacity");
//}
};
class fillCrMod : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(fillCrMod)
public:
//virtual void setXMLAttributes(MSXML2::IXMLDOMElementPtr xml_tag)
//{
// OfficeArtCOLORREF(op).toXML(xml_tag);
//}
};
class fillWidth : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(fillWidth)
public:
//virtual void setXMLAttributes(MSXML2::IXMLDOMElementPtr own_tag)
//{
// own_tag->setAttribute(L"width", op);
//}
};
class fillShadeType : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(fillShadeType)
public:
};
class FillStyleBooleanProperties : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(FillStyleBooleanProperties)
public:
virtual void load(XLS::CFRecord& record);
bool fNoFillHitTest;
bool fillUseRect;
bool fillShape;
bool fHitTestFill;
bool fFilled ;
bool fUseShapeAnchor;
bool fRecolorFillAsPicture;
bool fUsefNoFillHitTest;
bool fUsefillUseRect;
bool fUsefillShape;
bool fUsefHitTestFill;
bool fUsefFilled;
bool fUsefUseShapeAnchor;
bool fUsefRecolorFillAsPicture;
};
class fillBlip : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(fillBlip)
public:
virtual void ReadComplexData(XLS::CFRecord& record);
private:
OfficeArtBlipPtr blip;
};
class BlipBooleanProperties : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(BlipBooleanProperties)
};
class ShapeBooleanProperties : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(ShapeBooleanProperties)
};
class fillBlipName : public OfficeArtFOPTE
class GroupShapeBooleanProperties : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(fillBlipName)
public:
BASE_STRUCTURE_DEFINE_CLASS_NAME(GroupShapeBooleanProperties)
};
class anyString : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(anyString)
virtual void ReadComplexData(XLS::CFRecord& record);
private:
std::wstring name;
std::wstring string_;
};
class fillBlipFlags : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(fillBlipFlags)
public:
//virtual void setXMLAttributes(MSXML2::IXMLDOMElementPtr own_tag);
private:
enum MSOBLIPFLAGS
{
msoblipflagComment = 0x00000000,
msoblipflagFile = 0x00000001,
msoblipflagURL = 0x00000002,
msoblipflagDoNotSave = 0x00000004,
msoblipflagLinkToFile = 0x00000008,
};
//enum MSOBLIPFLAGS
//{
// msoblipflagComment = 0x00000000,
// msoblipflagFile = 0x00000001,
// msoblipflagURL = 0x00000002,
// msoblipflagDoNotSave = 0x00000004,
// msoblipflagLinkToFile = 0x00000008,
//};
};
class fillHeight : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(fillHeight)
public:
//virtual void setXMLAttributes(MSXML2::IXMLDOMElementPtr own_tag)
//{
// own_tag->setAttribute(L"height", op);
//}
};
class fillAngle : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(fillAngle)
public:
//virtual void setXMLAttributes(MSXML2::IXMLDOMElementPtr own_tag)
//{
// OSHARED::FixedPoint(op).toXML(own_tag, L"angle");
//}
};
class fillFocus : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(fillFocus)
public:
//virtual void setXMLAttributes(MSXML2::IXMLDOMElementPtr own_tag)
//{
// own_tag->setAttribute(L"focus", op);
//}
};
class fillToLeft : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(fillToLeft)
public:
//virtual void setXMLAttributes(MSXML2::IXMLDOMElementPtr own_tag)
//{
// OSHARED::FixedPoint(op).toXML(own_tag, L"left");
//}
};
class fillToTop : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(fillToTop)
public:
//virtual void setXMLAttributes(MSXML2::IXMLDOMElementPtr own_tag)
//{
// OSHARED::FixedPoint(op).toXML(own_tag, L"top");
//}
};
class fillToRight : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(fillToRight)
public:
//virtual void setXMLAttributes(MSXML2::IXMLDOMElementPtr own_tag)
//{
// OSHARED::FixedPoint(op).toXML(own_tag, L"right");
//}
};
class fillToBottom : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(fillToBottom)
public:
//virtual void setXMLAttributes(MSXML2::IXMLDOMElementPtr own_tag)
//{
// OSHARED::FixedPoint(op).toXML(own_tag, L"bottom");
//}
};
class fillRectLeft : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(fillRectLeft)
public:
//virtual void setXMLAttributes(MSXML2::IXMLDOMElementPtr own_tag)
//{
// OSHARED::FixedPoint(op).toXML(own_tag, L"left");
//}
};
class fillRectTop : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(fillRectTop)
public:
//virtual void setXMLAttributes(MSXML2::IXMLDOMElementPtr own_tag)
//{
// OSHARED::FixedPoint(op).toXML(own_tag, L"top");
//}
};
class fillRectRight : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(fillRectRight)
public:
//virtual void setXMLAttributes(MSXML2::IXMLDOMElementPtr own_tag)
//{
// OSHARED::FixedPoint(op).toXML(own_tag, L"right");
//}
};
class fillRectBottom : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(fillRectBottom)
public:
//virtual void setXMLAttributes(MSXML2::IXMLDOMElementPtr own_tag)
//{
// OSHARED::FixedPoint(op).toXML(own_tag, L"bottom");
//}
};
class fillDztype : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(fillDztype)
public:
//virtual void setXMLAttributes(MSXML2::IXMLDOMElementPtr own_tag)
//{
// own_tag->setAttribute(L"type", op);
//}
};
class fillShadePreset : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(fillShadePreset)
public:
//virtual void setXMLAttributes(MSXML2::IXMLDOMElementPtr own_tag)
//{
// own_tag->setAttribute(L"preset", op);
//}
};
class fillShadeColors : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(fillShadeColors)
public:
//virtual void setXMLAttributes(MSXML2::IXMLDOMElementPtr own_tag);
virtual void ReadComplexData(XLS::CFRecord& record);
IMsoArray<MSOSHADECOLOR> fillShadeColors_complex;
......@@ -379,175 +280,174 @@ public:
class fillShapeOriginX : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(fillShapeOriginX)
public:
//virtual void setXMLAttributes(MSXML2::IXMLDOMElementPtr own_tag)
//{
// OSHARED::FixedPoint(op).toXML(own_tag, L"origin_x");
//}
};
class fillShapeOriginY : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(fillShapeOriginY)
public:
//virtual void setXMLAttributes(MSXML2::IXMLDOMElementPtr own_tag)
//{
// OSHARED::FixedPoint(op).toXML(own_tag, L"origin_y");
//}
};
class fillOriginX : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(fillOriginX)
public:
//virtual void setXMLAttributes(MSXML2::IXMLDOMElementPtr own_tag)
//{
// OSHARED::FixedPoint(op).toXML(own_tag, L"origin_x");
//}
};
class fillOriginY : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(fillOriginY)
public:
//virtual void setXMLAttributes(MSXML2::IXMLDOMElementPtr own_tag)
//{
// OSHARED::FixedPoint(op).toXML(own_tag, L"origin_y");
//}
};
class fillColorExt : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(fillColorExt)
public:
//virtual void setXMLAttributes(MSXML2::IXMLDOMElementPtr own_tag)
//{
// OfficeArtCOLORREF(op).toXML(own_tag);
//}
};
class reserved415 : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(reserved415)
public:
};
class reserved417 : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(reserved417)
public:
};
class reserved419 : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(reserved419)
public:
};
class reserved421 : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(reserved421)
public:
};
class reserved422 : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(reserved422)
public:
};
class reserved423 : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(reserved423)
public:
};
class fillBackColorExt : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(fillBackColorExt)
public:
//virtual void setXMLAttributes(MSXML2::IXMLDOMElementPtr own_tag)
//{
// OfficeArtCOLORREF(op).toXML(own_tag);
//}
};
class fillColorExtMod : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(fillColorExtMod)
public:
//virtual void setXMLAttributes(MSXML2::IXMLDOMElementPtr own_tag)
//{
// own_tag->setAttribute(L"mode", op);
//}
};
class fillBackColorExtMod : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(fillBackColorExtMod)
public:
//virtual void setXMLAttributes(MSXML2::IXMLDOMElementPtr own_tag)
//{
// own_tag->setAttribute(L"mode", op);
//}
};
class ProtectionBooleanProperties : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(ProtectionBooleanProperties)
public:
virtual void load(XLS::CFRecord& record);
bool fLockAgainstGrouping ;
bool fLockAdjustHandles ;
bool fLockText ;
bool fLockVertices ;
bool fLockCropping ;
bool fLockAgainstSelect ;
bool fLockPosition ;
bool fLockAspectRatio ;
bool fLockRotation ;
bool fLockAgainstUngrouping ;
bool fUsefLockAgainstGrouping ;
bool fUsefLockAdjustHandles ;
bool fUsefLockText ;
bool fUsefLockVertices ;
bool fUsefLockCropping ;
bool fUsefLockAgainstSelect;
bool fUsefLockPosition ;
bool fUsefLockAspectRatio;
bool fUsefLockRotation ;
bool fUsefLockAgainstUngrouping;
};
class LineStyleBooleanProperties : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(LineStyleBooleanProperties)
public:
virtual void load(XLS::CFRecord& record);
bool fNoLineDrawDash;
bool fLineFillShape;
bool fHitTestLine ;
bool fLine ;
bool fArrowheadsOK;
bool fInsetPenOK ;
bool fInsetPen ;
bool fLineOpaqueBackColor;
bool fUsefNoLineDrawDash;
bool fUsefLineFillShape ;
bool fUsefHitTestLine ;
bool fUsefLine;
bool fUsefArrowheadsOK ;
bool fUsefInsetPenOK;
bool fUsefInsetPen;
bool fUsefLineOpaqueBackColor ;
};
class ShadowStyleBooleanProperties : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(ShadowStyleBooleanProperties)
public:
virtual void load(XLS::CFRecord& record);
bool fshadowObscured ;
bool fShadow ;
bool fUsefshadowObscured ;
bool fUsefShadow ;
};
class lineWidth : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(lineWidth)
public:
//virtual void setXMLAttributes(MSXML2::IXMLDOMElementPtr own_tag)
//{
// own_tag->setAttribute(L"width", op);
//}
};
class lineMiterLimit : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(lineMiterLimit)
public:
//virtual void setXMLAttributes(MSXML2::IXMLDOMElementPtr own_tag)
//{
// OSHARED::FixedPoint(op).toXML(own_tag, L"limit");
//}
};
class lineDashing : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(lineDashing)
public:
//virtual void setXMLAttributes(MSXML2::IXMLDOMElementPtr own_tag)
//{
// own_tag->setAttribute(L"dashing", MSOLINEDASHING::ToString(op));
//}
};
class lineStyle : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(lineStyle)
public:
//virtual void setXMLAttributes(MSXML2::IXMLDOMElementPtr own_tag)
//{
// own_tag->setAttribute(L"style", MSOLINESTYLE::ToString(op));
//}
};
class cropFromBottom : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(cropFromBottom)
};
class cropFromTop : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(cropFromTop)
};
class cropFromLeft : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(cropFromLeft)
};
class cropFromRight : public OfficeArtFOPTE
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(cropFromRight)
};
class IHlink;
......
......@@ -25,6 +25,8 @@ void OfficeArtRecord::store(XLS::CFRecord& record)
void OfficeArtRecord::load(XLS::CFRecord& record)
{
m_pGlobalWorkbookInfoPtr = record.getGlobalWorkbookInfo();
record >> rh_own;
loadFields(record);
}
......
......@@ -6,6 +6,9 @@
namespace XLS
{
class CFRecord;
class GlobalWorkbookInfo;
typedef boost::shared_ptr<GlobalWorkbookInfo> GlobalWorkbookInfoPtr;
}
......@@ -81,6 +84,8 @@ public:
CA_Chart,
CA_HF
};
XLS::GlobalWorkbookInfoPtr m_pGlobalWorkbookInfoPtr;
};
typedef boost::shared_ptr<OfficeArtRecord> OfficeArtRecordPtr;
......
......@@ -56,7 +56,7 @@ BiffStructurePtr XLUnicodeRichExtendedString::clone()
int XLUnicodeRichExtendedString::serialize (std::wostream & _stream)
{
int start_string = 0;
int Fmt = 0;
int Fmt = 0; // !!! .. - .
CP_XML_WRITER(_stream)
{
......
......@@ -74,59 +74,140 @@ int CELL_GROUP::serialize(std::wostream & stream)
{
CP_XML_WRITER(stream)
{
std::list<XLS::BaseObjectPtr>::iterator current_cell_start = elements_.begin();
int current_row = 0;
for (std::list<XLS::BaseObjectPtr>::iterator it_row = m_rows.begin(); it_row != m_rows.end(); it_row++)
std::list<XLS::BaseObjectPtr>::iterator current_cell_start = elements_.begin();
std::list<XLS::BaseObjectPtr>::iterator current_row = m_rows.begin();
int current_row_number = 0;
//for (std::list<XLS::BaseObjectPtr>::iterator it_row = m_rows.begin(); it_row != m_rows.end(); it_row++)
//{
// Row * row = dynamic_cast<Row *>(it_row->get());
//
// if (row == NULL) continue;
// CP_XML_NODE(L"row")
// {
// current_row = *row->rw.value();
//
// CP_XML_ATTR(L"r", current_row + 1);
//
// bool xf_set = true;
// if ((row->fGhostDirty.value()) && ( *row->fGhostDirty.value()== false)) xf_set = false;
//
// if (row->ixfe_val.value() && xf_set)
// {
// CP_XML_ATTR(L"s", row->ixfe_val - cellStyleXfs_count);
// CP_XML_ATTR(L"customFormat", true);
// }
// if (row->miyRw.value())
// {
// CP_XML_ATTR(L"ht", row->miyRw / 20.);
// CP_XML_ATTR(L"customHeight", true);
// }
// if ((row->iOutLevel.value()) && (row->iOutLevel > 0))
// {
// CP_XML_ATTR(L"outlineLevel", row->iOutLevel);
// }
// if ((row->fCollapsed.value()) && (row->fCollapsed))
// {
// CP_XML_ATTR(L"collapsed", row->fCollapsed);
// }
// std::list<XLS::BaseObjectPtr>::iterator it_cell = current_cell_start;
// while(true)
// {
// if (it_cell == elements_.end())
// {
// current_cell_start = it_cell;
// break;
// }
// CELL * cell = dynamic_cast<CELL *>(it_cell->get());
// if (cell == NULL) continue;
// if (cell->RowNumber >current_row)
// {
// current_cell_start = it_cell;
// break;
// }
// cell->serialize(CP_XML_STREAM());
// it_cell++;
// }
// }
//}
while(current_row_number == 0)
{
Row * row = dynamic_cast<Row *>(it_row->get());
if (row == NULL) continue;
CP_XML_NODE(L"row")
{
current_row = *row->rw.value();
CP_XML_ATTR(L"r", current_row + 1);
bool xf_set = true;
if ((row->fGhostDirty.value()) && ( *row->fGhostDirty.value()== false)) xf_set = false;
if (row->ixfe_val.value() && xf_set)
{
CP_XML_ATTR(L"s", row->ixfe_val - cellStyleXfs_count);
CP_XML_ATTR(L"customFormat", true);
}
if (row->miyRw.value())
{
CP_XML_ATTR(L"ht", row->miyRw / 20.);
CP_XML_ATTR(L"customHeight", true);
}
if ((row->iOutLevel.value()) && (row->iOutLevel > 0))
{
CP_XML_ATTR(L"outlineLevel", row->iOutLevel);
}
if ((row->fCollapsed.value()) && (row->fCollapsed))
{
CP_XML_ATTR(L"collapsed", row->fCollapsed);
}
{
std::list<XLS::BaseObjectPtr>::iterator it_cell = current_cell_start;
while(true)
{
if (it_cell == elements_.end())
{
current_cell_start = it_cell;
current_row_number = -1;
break;
}
CELL * cell = dynamic_cast<CELL *>(it_cell->get());
if (cell == NULL) continue;
if (cell->RowNumber >current_row)
if (current_row_number < 1) //
{
current_row_number = cell->RowNumber + 1; //
bool skip_cells = false;
if (current_row != m_rows.end())
{
Row * row = dynamic_cast<Row *>(current_row->get());
if (row->rw + 1 < current_row_number)
{
current_row_number = row->rw + 1;
skip_cells = true;
}
CP_XML_ATTR(L"r", current_row_number);
if (row->rw + 1 == current_row_number)
{
bool xf_set = true;
if ((row->fGhostDirty.value()) && ( *row->fGhostDirty.value()== false)) xf_set = false;
if (row->ixfe_val.value() && xf_set)
{
CP_XML_ATTR(L"s", row->ixfe_val - cellStyleXfs_count);
CP_XML_ATTR(L"customFormat", true);
}
if (row->miyRw.value())
{
CP_XML_ATTR(L"ht", row->miyRw / 20.);
CP_XML_ATTR(L"customHeight", true);
}
if ((row->iOutLevel.value()) && (row->iOutLevel > 0))
{
CP_XML_ATTR(L"outlineLevel", row->iOutLevel);
}
if ((row->fCollapsed.value()) && (row->fCollapsed))
{
CP_XML_ATTR(L"collapsed", row->fCollapsed);
}
}
current_row ++;
}
else
{
CP_XML_ATTR(L"r", current_row_number);
}
if (skip_cells)
{
current_row = 0;
break;
}
}
if (cell->RowNumber + 1 > current_row_number)
{
current_cell_start = it_cell;
current_row_number = 0;
break;
}
cell->serialize(CP_XML_STREAM());
......@@ -134,40 +215,41 @@ int CELL_GROUP::serialize(std::wostream & stream)
}
}
}
if (current_row < 1 )//order_history.xls - Row,
if ( current_row != m_rows.end())
{
while(current_row ==0)
for (std::list<XLS::BaseObjectPtr>::iterator it_row = current_row; it_row != m_rows.end(); it_row++)
{
Row * row = dynamic_cast<Row *>(it_row->get());
if (row == NULL) continue;
CP_XML_NODE(L"row")
{
std::list<XLS::BaseObjectPtr>::iterator it_cell = current_cell_start;
while(true)
{
current_row_number = row->rw + 1;
CP_XML_ATTR(L"r", current_row_number);
bool xf_set = true;
if ((row->fGhostDirty.value()) && ( *row->fGhostDirty.value()== false)) xf_set = false;
if (row->ixfe_val.value() && xf_set)
{
if (it_cell == elements_.end())
{
current_cell_start = it_cell;
current_row = -1;
break;
}
CELL * cell = dynamic_cast<CELL *>(it_cell->get());
if (cell == NULL) continue;
if (current_row < 1)
{
current_row = cell->RowNumber + 1;
CP_XML_ATTR(L"r", current_row);
}
CP_XML_ATTR(L"s", row->ixfe_val - cellStyleXfs_count);
CP_XML_ATTR(L"customFormat", true);
}
if (cell->RowNumber > current_row - 1)
{
current_cell_start = it_cell;
current_row = 0;
break;
}
cell->serialize(CP_XML_STREAM());
it_cell++;
if (row->miyRw.value())
{
CP_XML_ATTR(L"ht", row->miyRw / 20.);
CP_XML_ATTR(L"customHeight", true);
}
if ((row->iOutLevel.value()) && (row->iOutLevel > 0))
{
CP_XML_ATTR(L"outlineLevel", row->iOutLevel);
}
if ((row->fCollapsed.value()) && (row->fCollapsed))
{
CP_XML_ATTR(L"collapsed", row->fCollapsed);
}
}
}
......
......@@ -29,6 +29,8 @@ BaseObjectPtr COLUMNS::clone()
// COLUMNS = DefColWidth *255ColInfo
const bool COLUMNS::loadContent(BinProcessor& proc)
{
GlobalWorkbookInfoPtr global_info = proc.getGlobalWorkbookInfo();
bool def_ok = proc.optional<DefColWidth>();
// OpenOffice Calc stored files workaround (DefColWidth is mandatory according to [MS-XLS])
......@@ -40,6 +42,30 @@ const bool COLUMNS::loadContent(BinProcessor& proc)
bool col_ok = proc.repeated<ColInfo>(0, 255);
int last_add = 0;
for (std::list<XLS::BaseObjectPtr>::iterator it = elements_.begin(); it != elements_.end(); it++)
{
ColInfo* column_info = dynamic_cast<ColInfo*>(it->get());
for (int i = last_add ; i < column_info->colFirst; i++)
{
global_info->customColumnsWidth.push_back(global_info->defaultColumnWidth);
}
for (int i = column_info->colFirst; i <= column_info->colLast; i++)
{
if (column_info->coldx.value())
{
global_info->customColumnsWidth.push_back(column_info->coldx / 256.);
}
else
{
global_info->customColumnsWidth.push_back(global_info->defaultColumnWidth);
}
}
}
return def_ok || col_ok;
}
......
......@@ -9,7 +9,6 @@
#include <Logic/Biff_records/ClrtClient.h>
#include <Logic/Biff_records/TableStyles.h>
#include <Logic/Biff_unions/TABLESTYLES.h>
#include <Logic/Biff_unions/TABLESTYLES.h>
#include <simple_xml_writer.h>
......@@ -69,7 +68,8 @@ const bool FORMATTING::loadContent(BinProcessor& proc)
elements_.pop_back();
}
proc.repeated<DXF>(0, 0);
//----------------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------------
if (proc.optional<STYLES>())
{
m_Styles = elements_.back();
......
......@@ -48,9 +48,9 @@ BaseObjectPtr STYLES::clone()
// STYLES = 1*(Style [StyleExt])
const bool STYLES::loadContent(BinProcessor& proc)
{
styles_count = proc.repeated<Parenthesis_STYLES_1>(1, 0);
styles_count = proc.repeated<Parenthesis_STYLES_1>(0, 0);
return styles_count > 0 ? true : false;
return true;
}
int STYLES::serialize(std::wostream & stream)
......@@ -59,59 +59,71 @@ int STYLES::serialize(std::wostream & stream)
{
CP_XML_NODE(L"cellStyles")
{
CP_XML_ATTR(L"count", styles_count);
for (std::list<XLS::BaseObjectPtr>::iterator it = elements_.begin(); it != elements_.end(); it++)
if (styles_count > 0)
{
Parenthesis_STYLES_1 * style_1 = dynamic_cast<Parenthesis_STYLES_1*>(it->get());
CP_XML_ATTR(L"count", styles_count);
if (style_1)
for (std::list<XLS::BaseObjectPtr>::iterator it = elements_.begin(); it != elements_.end(); it++)
{
CP_XML_NODE(L"cellStyle")
Parenthesis_STYLES_1 * style_1 = dynamic_cast<Parenthesis_STYLES_1*>(it->get());
if (style_1)
{
XLS::Style * style = dynamic_cast<Style*> (style_1->m_Style.get());
XLS::StyleExt * styleExt = dynamic_cast<StyleExt*>(style_1->m_StyleEx.get());
if (styleExt)
CP_XML_NODE(L"cellStyle")
{
CP_XML_ATTR(L"name", styleExt->stName.value());
if ((styleExt->fBuiltIn.value()) && (*styleExt->fBuiltIn.value()))
XLS::Style * style = dynamic_cast<Style*> (style_1->m_Style.get());
XLS::StyleExt * styleExt = dynamic_cast<StyleExt*>(style_1->m_StyleEx.get());
if (styleExt)
{
CP_XML_ATTR(L"builtinId", styleExt->builtInData.istyBuiltIn);
if (styleExt->builtInData.iLevel > 0 && styleExt->builtInData.iLevel < 255)
CP_XML_ATTR(L"name", styleExt->stName.value());
if ((styleExt->fBuiltIn.value()) && (*styleExt->fBuiltIn.value()))
{
CP_XML_ATTR(L"iLevel", styleExt->builtInData.iLevel);
CP_XML_ATTR(L"builtinId", styleExt->builtInData.istyBuiltIn);
if (styleExt->builtInData.iLevel > 0 && styleExt->builtInData.iLevel < 255)
{
CP_XML_ATTR(L"iLevel", styleExt->builtInData.iLevel);
}
}
}
for (long i = 0; i < styleExt->xfProps.xfPropArray.size(); i++)
{
for (long i = 0; i < styleExt->xfProps.xfPropArray.size(); i++)
{
}
}
}
else
{
CP_XML_ATTR(L"name", style->user.value());
if ((style->fBuiltIn.value()) && (*style->fBuiltIn.value()))
else
{
CP_XML_ATTR(L"builtinId", style->builtInData.istyBuiltIn);
if (style->builtInData.iLevel > 0 && style->builtInData.iLevel < 255)
CP_XML_ATTR(L"name", style->user.value());
if ((style->fBuiltIn.value()) && (*style->fBuiltIn.value()))
{
CP_XML_ATTR(L"iLevel", style->builtInData.iLevel);
CP_XML_ATTR(L"builtinId", style->builtInData.istyBuiltIn);
if (style->builtInData.iLevel > 0 && style->builtInData.iLevel < 255)
{
CP_XML_ATTR(L"iLevel", style->builtInData.iLevel);
}
}
}
}
if (style->ixfe.value())
{
int xfId = *style->ixfe.value() - 1;
if (xfId < 0) xfId = 0;
CP_XML_ATTR(L"xfId", xfId);
if (style->ixfe.value())
{
int xfId = *style->ixfe.value() - 1;
if (xfId < 0) xfId = 0;
CP_XML_ATTR(L"xfId", xfId);
}
}
}
}
}
else
{
CP_XML_ATTR(L"count",1);
CP_XML_NODE(L"cellStyle")
{
CP_XML_ATTR(L"xfId", 0);
CP_XML_ATTR(L"builtinId", 0);
CP_XML_ATTR(L"name", L"");
}
}
}
......
......@@ -10,10 +10,12 @@ GlobalWorkbookInfo::GlobalWorkbookInfo(const unsigned short code_page)
fill_x_ids[FillInfo(0, 0, 0)] = 0;
fill_x_ids[FillInfo(17, 64, 65)] = 1;
last_AXES_id = initial_AXES_id;
last_AXES_id = initial_AXES_id;
defaultColumnWidth = 8;
defaultRowHeight = 14.4;
Version = 0x0600; // xls
Version = 0x0600; // xls
}
......
......@@ -42,6 +42,11 @@ public:
std::vector<std::pair<boost::shared_array<char>, size_t> > bin_data;
std::vector<double> customColumnsWidth;
std::vector<double> customRowHeight;
double defaultColumnWidth;
double defaultRowHeight;
int Version;
......
......@@ -71,6 +71,8 @@ WORKSHEET = BOF WORKSHEETCONTENT
*/
const bool WorksheetSubstream::loadContent(BinProcessor& proc)
{
GlobalWorkbookInfoPtr global_info = proc.getGlobalWorkbookInfo();
int count = 0;
if(!proc.mandatory<BOF>())
......@@ -195,6 +197,8 @@ const bool WorksheetSubstream::loadContent(BinProcessor& proc)
proc.mandatory<EOF_T>();
global_info->customColumnsWidth.clear();
return true;
}
......
......@@ -43,6 +43,8 @@
#include <boost/lexical_cast.hpp>
#include "../../../DesktopEditor/common/File.h"
#include "../../../DesktopEditor/raster/BgraFrame.h"
XlsConverter::XlsConverter(const std::wstring & xls_file, const std::wstring & _xlsx_path, const ProgressCallback* CallBack)
{
......@@ -392,18 +394,41 @@ void XlsConverter::convert(ODRAW::OfficeArtBStoreContainer* art_bstore)
for (long i =0 ; i < art_bstore->rgfb.size(); i++)
{
int bin_id = i + 1;
if (art_bstore->rgfb[i]->data_size > 0)
{
std::wstring file_name = L"image" + boost::lexical_cast<std::wstring>(bin_id) + art_bstore->rgfb[i]->pict_type;
if (art_bstore->rgfb[i]->data_size > 0 && art_bstore->rgfb[i]->pict_data)
{
bool res = false;
std::wstring file_name = L"image" + boost::lexical_cast<std::wstring>(bin_id);
if (art_bstore->rgfb[i]->pict_type == L"dib_data")
{
file_name += std::wstring(L".png");
BITMAPINFOHEADER * header = (BITMAPINFOHEADER *)art_bstore->rgfb[i]->pict_data;
NSFile::CFileBinary file;
if (file.CreateFileW(xl_path + FILE_SEPARATOR_STR + L"media" + FILE_SEPARATOR_STR + file_name))
CBgraFrame frame;
frame.put_Data((BYTE*)art_bstore->rgfb[i]->pict_data + header->biSize);
frame.put_Height(header->biHeight);
frame.put_Width (header->biWidth);
frame.put_Stride(-header->biBitCount / 8 * header->biWidth);
res = frame.SaveFile(xl_path + FILE_SEPARATOR_STR + L"media" + FILE_SEPARATOR_STR + file_name, 4);
frame.put_Data(NULL);
}
else
{
file.WriteFile((BYTE*)art_bstore->rgfb[i]->pict_data, art_bstore->rgfb[i]->data_size);
file.CloseFile();
file_name += art_bstore->rgfb[i]->pict_type;
NSFile::CFileBinary file;
if (file.CreateFileW(xl_path + FILE_SEPARATOR_STR + L"media" + FILE_SEPARATOR_STR + file_name))
{
file.WriteFile((BYTE*)art_bstore->rgfb[i]->pict_data, art_bstore->rgfb[i]->data_size);
file.CloseFile();
res = true;
}
}
xlsx_context->get_mediaitems().add_image(L"media/" + file_name, bin_id);
if (res)
xlsx_context->get_mediaitems().add_image(L"media/" + file_name, bin_id);
}
else
{
......@@ -532,6 +557,22 @@ void XlsConverter::convert(ODRAW::OfficeArtFOPT * fort)
{
switch(fort->fopt.rgfopte[i]->opid)
{
case 0x100:
{
xlsx_context->get_drawing_context().set_crop_top(fort->fopt.rgfopte[i]->op);
}break;
case 0x101:
{
xlsx_context->get_drawing_context().set_crop_bottom(fort->fopt.rgfopte[i]->op);
}break;
case 0x102:
{
xlsx_context->get_drawing_context().set_crop_left(fort->fopt.rgfopte[i]->op);
}break;
case 0x103:
{
xlsx_context->get_drawing_context().set_crop_right(fort->fopt.rgfopte[i]->op);
}break;
case 0x104:
{
bool isIternal = false;
......@@ -539,6 +580,17 @@ void XlsConverter::convert(ODRAW::OfficeArtFOPT * fort)
std::wstring rId = xlsx_context->get_mediaitems().find_image(fort->fopt.rgfopte[i]->op , target, isIternal);
xlsx_context->get_drawing_context().set_image(target);
}break;
case 0x105://
case 0x380:
{
ODRAW::anyString *str = dynamic_cast<ODRAW::anyString*>(fort->fopt.rgfopte[i].get());
xlsx_context->get_drawing_context().set_name(str->string_);
}break;
case 0x381:
{
ODRAW::anyString *str = dynamic_cast<ODRAW::anyString*>(fort->fopt.rgfopte[i].get());
xlsx_context->get_drawing_context().set_description(str->string_);
}break;
case 0x0382:
{
ODRAW::pihlShape *pihlShape = dynamic_cast<ODRAW::pihlShape*>(fort->fopt.rgfopte[i].get());
......
......@@ -130,7 +130,7 @@ void xlsx_drawing_context::start_shape(int type)
count_object++;
}
void xlsx_drawing_context::set_id(int id)
void xlsx_drawing_context::set_id(long id)
{
if (drawing_state.size() < 1 )return;
drawing_state.back().id = id;
......@@ -187,8 +187,14 @@ void xlsx_drawing_context::serialize_pic(std::wstring rId)
{
CP_XML_NODE(L"xdr:cNvPr")
{
if (drawing_state.back().id >= 0) CP_XML_ATTR(L"id", drawing_state.back().id);
CP_XML_ATTR(L"name", L"Picture_" + rId.substr(5));
if (drawing_state.back().id >= 0) CP_XML_ATTR(L"id", drawing_state.back().id);
if (drawing_state.back().name.empty()) drawing_state.back().name = L"Picture_" + rId.substr(5);
CP_XML_ATTR(L"name", drawing_state.back().name);
if (!drawing_state.back().description.empty())
{
CP_XML_ATTR(L"desc", drawing_state.back().description);
}
if (!drawing_state.back().hyperlink.empty())
{
......@@ -205,7 +211,6 @@ void xlsx_drawing_context::serialize_pic(std::wstring rId)
{
CP_XML_NODE(L"a:picLocks")
{
CP_XML_ATTR(L"noChangeArrowheads", 1);
CP_XML_ATTR(L"noChangeAspect", 1);
}
}
......@@ -217,8 +222,17 @@ void xlsx_drawing_context::serialize_pic(std::wstring rId)
CP_XML_ATTR(L"xmlns:r", L"http://schemas.openxmlformats.org/officeDocument/2006/relationships");
CP_XML_ATTR(L"r:embed", rId);
}
CP_XML_NODE(L"a:srcRect");
CP_XML_NODE(L"a:srcRect")
{
if (drawing_state.back().image_crop_enabled)
{
CP_XML_ATTR(L"l", static_cast<size_t>(drawing_state.back().image_crop[0]));
CP_XML_ATTR(L"t", static_cast<size_t>(drawing_state.back().image_crop[1]));
CP_XML_ATTR(L"r", static_cast<size_t>(drawing_state.back().image_crop[2]));
CP_XML_ATTR(L"b", static_cast<size_t>(drawing_state.back().image_crop[3]));
}
}
CP_XML_NODE(L"a:stretch")
{
CP_XML_NODE(L"a:fillRect");
......@@ -258,7 +272,7 @@ void xlsx_drawing_context::serialize(std::wostream & stream)
{
CP_XML_NODE(L"xdr:twoCellAnchor")
{
CP_XML_ATTR(L"editAs", L"oneCell");
//CP_XML_ATTR(L"editAs", L"oneCell");
CP_XML_STREAM() << drawing_state.back().anchor;
CP_XML_STREAM() << drawing_state.back().shape;
......@@ -267,7 +281,16 @@ void xlsx_drawing_context::serialize(std::wostream & stream)
}
}
}
void xlsx_drawing_context::set_name(std::wstring & str)
{
if (drawing_state.size() < 1 )return;
drawing_state.back().name = str;
}
void xlsx_drawing_context::set_description(std::wstring & str)
{
if (drawing_state.size() < 1 )return;
drawing_state.back().description = str;
}
void xlsx_drawing_context::set_anchor(std::wstring & str)
{
if (drawing_state.size() < 1 )return;
......@@ -279,6 +302,26 @@ void xlsx_drawing_context::set_image(std::wstring & str)
drawing_state.back().image_target = str;
}
void xlsx_drawing_context::set_crop_top (long val)
{
if (drawing_state.size() < 1 )return;
drawing_state.back().image_crop[1] = val;
}
void xlsx_drawing_context::set_crop_bottom(long val)
{
if (drawing_state.size() < 1 )return;
drawing_state.back().image_crop[3] = val;
}
void xlsx_drawing_context::set_crop_left (long val)
{
if (drawing_state.size() < 1 )return;
drawing_state.back().image_crop[0]= val;
}
void xlsx_drawing_context::set_crop_right (long val)
{
if (drawing_state.size() < 1 )return;
drawing_state.back().image_crop[2] = val;
}
void xlsx_drawing_context::set_hyperlink(std::wstring & str)
{
if (drawing_state.size() < 1 )return;
......
......@@ -27,16 +27,27 @@ private:
class _drawing_state
{
public:
_drawing_state() {isInternal = false; id = shape_id = -1; flipV = flipH = false;}
_drawing_state()
{
isInternal = false; id = shape_id = -1;
flipV = flipH = false;
memset(image_crop, 0, 4 * sizeof(int));
}
external_items::Type type;
std::wstring name;
std::wstring description;
std::wstring anchor;
std::wstring shape;
std::wstring image_target;
int image_crop[4];
bool image_crop_enabled;
int id;
int shape_id;
bool flipV;
bool flipH;
std::wstring hyperlink;
......@@ -52,8 +63,6 @@ struct _hlink_desc
class xlsx_drawing_context
{
public:
xlsx_drawing_context(xlsx_drawing_context_handle & h);
~xlsx_drawing_context(){}
......@@ -64,16 +73,23 @@ public:
void start_image();
void start_shape(int type);
void set_id ( int id);
void set_FlipH();
void set_FlipV();
void set_shape_id(int id);
void set_image(std::wstring & str);
void set_anchor(std::wstring & str);
void set_properties(std::wstring & str);
void set_hyperlink(std::wstring & str);
void set_id (long id);
void set_FlipH ();
void set_FlipV ();
void set_shape_id (int id);
void set_name (std::wstring & str);
void set_description(std::wstring & str);
void set_crop_top (long val);
void set_crop_bottom(long val);
void set_crop_left (long val);
void set_crop_right (long val);
void set_image (std::wstring & str);
void set_anchor (std::wstring & str);
void set_properties (std::wstring & str);
void set_hyperlink (std::wstring & str);
void serialize(std::wostream & stream);
......
......@@ -23,6 +23,45 @@ EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ASCOfficeUtilsLib", "..\..\ASCOfficeUtils\ASCOfficeUtilsLib\Win\ASCOfficeUtilsLib.vcproj", "{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "graphics", "..\..\DesktopEditor\graphics\graphics_vs2005.vcproj", "{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}"
ProjectSection(ProjectDependencies) = postProject
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540} = {9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "raster", "..\..\DesktopEditor\raster\raster_vs2005.vcproj", "{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}"
ProjectSection(ProjectDependencies) = postProject
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1} = {EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}
{BC52A07C-A797-423D-8C4F-8678805BBB36} = {BC52A07C-A797-423D-8C4F-8678805BBB36}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cximage", "..\..\DesktopEditor\cximage\CxImage\cximage_vs2005.vcproj", "{BC52A07C-A797-423D-8C4F-8678805BBB36}"
ProjectSection(ProjectDependencies) = postProject
{818753F2-DBB9-4D3B-898A-A604309BE470} = {818753F2-DBB9-4D3B-898A-A604309BE470}
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D} = {FFDA5DA1-BB65-4695-B678-BE59B4A1355D}
{9A037A69-D1DF-4505-AB2A-6CB3641C476E} = {9A037A69-D1DF-4505-AB2A-6CB3641C476E}
{40A69F40-063E-43FD-8543-455495D8733E} = {40A69F40-063E-43FD-8543-455495D8733E}
{0588563C-F05C-428C-B21A-DD74756628B3} = {0588563C-F05C-428C-B21A-DD74756628B3}
{DF861D33-9BC1-418C-82B1-581F590FE169} = {DF861D33-9BC1-418C-82B1-581F590FE169}
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239} = {764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7} = {43A0E60E-5C4A-4C09-A29B-7683F503BBD7}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tiff", "..\..\DesktopEditor\cximage\tiff\Tiff_vs2005.vcproj", "{0588563C-F05C-428C-B21A-DD74756628B3}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libdcr", "..\..\DesktopEditor\cximage\raw\libdcr_vs2005.vcproj", "{DF861D33-9BC1-418C-82B1-581F590FE169}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "png", "..\..\DesktopEditor\cximage\png\png_vs2005.vcproj", "{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mng", "..\..\DesktopEditor\cximage\mng\mng_vs2005.vcproj", "{40A69F40-063E-43FD-8543-455495D8733E}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libpsd", "..\..\DesktopEditor\cximage\libpsd\libpsd_vs2005.vcproj", "{9A037A69-D1DF-4505-AB2A-6CB3641C476E}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jpeg", "..\..\DesktopEditor\cximage\jpeg\Jpeg_vs2005.vcproj", "{818753F2-DBB9-4D3B-898A-A604309BE470}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jasper", "..\..\DesktopEditor\cximage\jasper\jasper_vs2005.vcproj", "{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jbig", "..\..\DesktopEditor\cximage\jbig\jbig_vs2005.vcproj", "{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jbig2", "..\..\DesktopEditor\raster\JBig2\win32\jbig2.vcproj", "{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
......@@ -30,6 +69,10 @@ Global
Debug|x64 = Debug|x64
Release|Win32 = Release|Win32
Release|x64 = Release|x64
Unicode Debug|Win32 = Unicode Debug|Win32
Unicode Debug|x64 = Unicode Debug|x64
Unicode Release|Win32 = Unicode Release|Win32
Unicode Release|x64 = Unicode Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{4260FEDF-E1DA-447F-991B-62F17DF5533E}.Debug|Win32.ActiveCfg = Debug|Win32
......@@ -40,6 +83,14 @@ Global
{4260FEDF-E1DA-447F-991B-62F17DF5533E}.Release|Win32.Build.0 = Release|Win32
{4260FEDF-E1DA-447F-991B-62F17DF5533E}.Release|x64.ActiveCfg = Release|x64
{4260FEDF-E1DA-447F-991B-62F17DF5533E}.Release|x64.Build.0 = Release|x64
{4260FEDF-E1DA-447F-991B-62F17DF5533E}.Unicode Debug|Win32.ActiveCfg = Debug|Win32
{4260FEDF-E1DA-447F-991B-62F17DF5533E}.Unicode Debug|Win32.Build.0 = Debug|Win32
{4260FEDF-E1DA-447F-991B-62F17DF5533E}.Unicode Debug|x64.ActiveCfg = Debug|x64
{4260FEDF-E1DA-447F-991B-62F17DF5533E}.Unicode Debug|x64.Build.0 = Debug|x64
{4260FEDF-E1DA-447F-991B-62F17DF5533E}.Unicode Release|Win32.ActiveCfg = Release|Win32
{4260FEDF-E1DA-447F-991B-62F17DF5533E}.Unicode Release|Win32.Build.0 = Release|Win32
{4260FEDF-E1DA-447F-991B-62F17DF5533E}.Unicode Release|x64.ActiveCfg = Release|x64
{4260FEDF-E1DA-447F-991B-62F17DF5533E}.Unicode Release|x64.Build.0 = Release|x64
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.Debug|Win32.ActiveCfg = Debug|Win32
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.Debug|Win32.Build.0 = Debug|Win32
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.Debug|x64.ActiveCfg = Debug|x64
......@@ -48,6 +99,14 @@ Global
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.Release|Win32.Build.0 = Release|Win32
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.Release|x64.ActiveCfg = Release|x64
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.Release|x64.Build.0 = Release|x64
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.Unicode Debug|Win32.ActiveCfg = Debug|Win32
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.Unicode Debug|Win32.Build.0 = Debug|Win32
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.Unicode Debug|x64.ActiveCfg = Debug|x64
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.Unicode Debug|x64.Build.0 = Debug|x64
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.Unicode Release|Win32.ActiveCfg = Release|Win32
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.Unicode Release|Win32.Build.0 = Release|Win32
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.Unicode Release|x64.ActiveCfg = Release|x64
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.Unicode Release|x64.Build.0 = Release|x64
{CBEDD0D1-10A8-45C1-AF81-8492F40964CA}.Debug|Win32.ActiveCfg = Debug|Win32
{CBEDD0D1-10A8-45C1-AF81-8492F40964CA}.Debug|Win32.Build.0 = Debug|Win32
{CBEDD0D1-10A8-45C1-AF81-8492F40964CA}.Debug|x64.ActiveCfg = Debug|x64
......@@ -56,6 +115,14 @@ Global
{CBEDD0D1-10A8-45C1-AF81-8492F40964CA}.Release|Win32.Build.0 = Release|Win32
{CBEDD0D1-10A8-45C1-AF81-8492F40964CA}.Release|x64.ActiveCfg = Release|x64
{CBEDD0D1-10A8-45C1-AF81-8492F40964CA}.Release|x64.Build.0 = Release|x64
{CBEDD0D1-10A8-45C1-AF81-8492F40964CA}.Unicode Debug|Win32.ActiveCfg = Debug|Win32
{CBEDD0D1-10A8-45C1-AF81-8492F40964CA}.Unicode Debug|Win32.Build.0 = Debug|Win32
{CBEDD0D1-10A8-45C1-AF81-8492F40964CA}.Unicode Debug|x64.ActiveCfg = Debug|x64
{CBEDD0D1-10A8-45C1-AF81-8492F40964CA}.Unicode Debug|x64.Build.0 = Debug|x64
{CBEDD0D1-10A8-45C1-AF81-8492F40964CA}.Unicode Release|Win32.ActiveCfg = Release|Win32
{CBEDD0D1-10A8-45C1-AF81-8492F40964CA}.Unicode Release|Win32.Build.0 = Release|Win32
{CBEDD0D1-10A8-45C1-AF81-8492F40964CA}.Unicode Release|x64.ActiveCfg = Release|x64
{CBEDD0D1-10A8-45C1-AF81-8492F40964CA}.Unicode Release|x64.Build.0 = Release|x64
{C2882DDD-07E6-4314-AD4B-48F43F38D722}.Debug|Win32.ActiveCfg = Debug|Win32
{C2882DDD-07E6-4314-AD4B-48F43F38D722}.Debug|Win32.Build.0 = Debug|Win32
{C2882DDD-07E6-4314-AD4B-48F43F38D722}.Debug|x64.ActiveCfg = Debug|x64
......@@ -64,6 +131,14 @@ Global
{C2882DDD-07E6-4314-AD4B-48F43F38D722}.Release|Win32.Build.0 = Release|Win32
{C2882DDD-07E6-4314-AD4B-48F43F38D722}.Release|x64.ActiveCfg = Release|x64
{C2882DDD-07E6-4314-AD4B-48F43F38D722}.Release|x64.Build.0 = Release|x64
{C2882DDD-07E6-4314-AD4B-48F43F38D722}.Unicode Debug|Win32.ActiveCfg = Debug|Win32
{C2882DDD-07E6-4314-AD4B-48F43F38D722}.Unicode Debug|Win32.Build.0 = Debug|Win32
{C2882DDD-07E6-4314-AD4B-48F43F38D722}.Unicode Debug|x64.ActiveCfg = Debug|x64
{C2882DDD-07E6-4314-AD4B-48F43F38D722}.Unicode Debug|x64.Build.0 = Debug|x64
{C2882DDD-07E6-4314-AD4B-48F43F38D722}.Unicode Release|Win32.ActiveCfg = Release|Win32
{C2882DDD-07E6-4314-AD4B-48F43F38D722}.Unicode Release|Win32.Build.0 = Release|Win32
{C2882DDD-07E6-4314-AD4B-48F43F38D722}.Unicode Release|x64.ActiveCfg = Release|x64
{C2882DDD-07E6-4314-AD4B-48F43F38D722}.Unicode Release|x64.Build.0 = Release|x64
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Debug|Win32.ActiveCfg = Debug|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Debug|Win32.Build.0 = Debug|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Debug|x64.ActiveCfg = Debug|x64
......@@ -72,6 +147,14 @@ Global
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Release|Win32.Build.0 = Release|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Release|x64.ActiveCfg = Release|x64
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Release|x64.Build.0 = Release|x64
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Unicode Debug|Win32.ActiveCfg = Debug|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Unicode Debug|Win32.Build.0 = Debug|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Unicode Debug|x64.ActiveCfg = Debug|x64
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Unicode Debug|x64.Build.0 = Debug|x64
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Unicode Release|Win32.ActiveCfg = Release|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Unicode Release|Win32.Build.0 = Release|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Unicode Release|x64.ActiveCfg = Release|x64
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Unicode Release|x64.Build.0 = Release|x64
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Debug|Win32.ActiveCfg = Debug|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Debug|Win32.Build.0 = Debug|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Debug|x64.ActiveCfg = Debug|x64
......@@ -80,6 +163,190 @@ Global
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Release|Win32.Build.0 = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Release|x64.ActiveCfg = Release|x64
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Release|x64.Build.0 = Release|x64
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Unicode Debug|Win32.ActiveCfg = Debug|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Unicode Debug|Win32.Build.0 = Debug|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Unicode Debug|x64.ActiveCfg = Debug|x64
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Unicode Debug|x64.Build.0 = Debug|x64
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Unicode Release|Win32.ActiveCfg = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Unicode Release|Win32.Build.0 = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Unicode Release|x64.ActiveCfg = Release|x64
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Unicode Release|x64.Build.0 = Release|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Debug|Win32.ActiveCfg = Debug|Win32
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Debug|Win32.Build.0 = Debug|Win32
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Debug|x64.ActiveCfg = Debug|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Debug|x64.Build.0 = Debug|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Release|Win32.ActiveCfg = Release|Win32
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Release|Win32.Build.0 = Release|Win32
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Release|x64.ActiveCfg = Release|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Release|x64.Build.0 = Release|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Unicode Debug|Win32.ActiveCfg = Unicode Debug|Win32
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Unicode Debug|Win32.Build.0 = Unicode Debug|Win32
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Unicode Debug|x64.ActiveCfg = Unicode Debug|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Unicode Debug|x64.Build.0 = Unicode Debug|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Unicode Release|Win32.ActiveCfg = Unicode Release|Win32
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Unicode Release|Win32.Build.0 = Unicode Release|Win32
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Unicode Release|x64.ActiveCfg = Unicode Release|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Unicode Release|x64.Build.0 = Unicode Release|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Debug|Win32.ActiveCfg = Debug|Win32
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Debug|Win32.Build.0 = Debug|Win32
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Debug|x64.ActiveCfg = Debug|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Debug|x64.Build.0 = Debug|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Release|Win32.ActiveCfg = Release|Win32
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Release|Win32.Build.0 = Release|Win32
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Release|x64.ActiveCfg = Release|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Release|x64.Build.0 = Release|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Unicode Debug|Win32.ActiveCfg = Unicode Debug|Win32
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Unicode Debug|Win32.Build.0 = Unicode Debug|Win32
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Unicode Debug|x64.ActiveCfg = Unicode Debug|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Unicode Debug|x64.Build.0 = Unicode Debug|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Unicode Release|Win32.ActiveCfg = Unicode Release|Win32
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Unicode Release|Win32.Build.0 = Unicode Release|Win32
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Unicode Release|x64.ActiveCfg = Unicode Release|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Unicode Release|x64.Build.0 = Unicode Release|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.Debug|Win32.ActiveCfg = Debug|Win32
{0588563C-F05C-428C-B21A-DD74756628B3}.Debug|Win32.Build.0 = Debug|Win32
{0588563C-F05C-428C-B21A-DD74756628B3}.Debug|x64.ActiveCfg = Debug|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.Debug|x64.Build.0 = Debug|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.Release|Win32.ActiveCfg = Release|Win32
{0588563C-F05C-428C-B21A-DD74756628B3}.Release|Win32.Build.0 = Release|Win32
{0588563C-F05C-428C-B21A-DD74756628B3}.Release|x64.ActiveCfg = Release|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.Release|x64.Build.0 = Release|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.Unicode Debug|Win32.ActiveCfg = Unicode Debug|Win32
{0588563C-F05C-428C-B21A-DD74756628B3}.Unicode Debug|Win32.Build.0 = Unicode Debug|Win32
{0588563C-F05C-428C-B21A-DD74756628B3}.Unicode Debug|x64.ActiveCfg = Unicode Debug|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.Unicode Debug|x64.Build.0 = Unicode Debug|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.Unicode Release|Win32.ActiveCfg = Unicode Release|Win32
{0588563C-F05C-428C-B21A-DD74756628B3}.Unicode Release|Win32.Build.0 = Unicode Release|Win32
{0588563C-F05C-428C-B21A-DD74756628B3}.Unicode Release|x64.ActiveCfg = Unicode Release|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.Unicode Release|x64.Build.0 = Unicode Release|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.Debug|Win32.ActiveCfg = Debug|Win32
{DF861D33-9BC1-418C-82B1-581F590FE169}.Debug|Win32.Build.0 = Debug|Win32
{DF861D33-9BC1-418C-82B1-581F590FE169}.Debug|x64.ActiveCfg = Debug|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.Debug|x64.Build.0 = Debug|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.Release|Win32.ActiveCfg = Release|Win32
{DF861D33-9BC1-418C-82B1-581F590FE169}.Release|Win32.Build.0 = Release|Win32
{DF861D33-9BC1-418C-82B1-581F590FE169}.Release|x64.ActiveCfg = Release|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.Release|x64.Build.0 = Release|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.Unicode Debug|Win32.ActiveCfg = Unicode Debug|Win32
{DF861D33-9BC1-418C-82B1-581F590FE169}.Unicode Debug|Win32.Build.0 = Unicode Debug|Win32
{DF861D33-9BC1-418C-82B1-581F590FE169}.Unicode Debug|x64.ActiveCfg = Unicode Debug|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.Unicode Debug|x64.Build.0 = Unicode Debug|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.Unicode Release|Win32.ActiveCfg = Unicode Release|Win32
{DF861D33-9BC1-418C-82B1-581F590FE169}.Unicode Release|Win32.Build.0 = Unicode Release|Win32
{DF861D33-9BC1-418C-82B1-581F590FE169}.Unicode Release|x64.ActiveCfg = Unicode Release|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.Unicode Release|x64.Build.0 = Unicode Release|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Debug|Win32.ActiveCfg = Debug|Win32
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Debug|Win32.Build.0 = Debug|Win32
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Debug|x64.ActiveCfg = Debug|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Debug|x64.Build.0 = Debug|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Release|Win32.ActiveCfg = Release|Win32
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Release|Win32.Build.0 = Release|Win32
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Release|x64.ActiveCfg = Release|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Release|x64.Build.0 = Release|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Unicode Debug|Win32.ActiveCfg = Unicode Debug|Win32
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Unicode Debug|Win32.Build.0 = Unicode Debug|Win32
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Unicode Debug|x64.ActiveCfg = Unicode Debug|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Unicode Debug|x64.Build.0 = Unicode Debug|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Unicode Release|Win32.ActiveCfg = Unicode Release|Win32
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Unicode Release|Win32.Build.0 = Unicode Release|Win32
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Unicode Release|x64.ActiveCfg = Unicode Release|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Unicode Release|x64.Build.0 = Unicode Release|x64
{40A69F40-063E-43FD-8543-455495D8733E}.Debug|Win32.ActiveCfg = Debug|Win32
{40A69F40-063E-43FD-8543-455495D8733E}.Debug|Win32.Build.0 = Debug|Win32
{40A69F40-063E-43FD-8543-455495D8733E}.Debug|x64.ActiveCfg = Debug|x64
{40A69F40-063E-43FD-8543-455495D8733E}.Debug|x64.Build.0 = Debug|x64
{40A69F40-063E-43FD-8543-455495D8733E}.Release|Win32.ActiveCfg = Release|Win32
{40A69F40-063E-43FD-8543-455495D8733E}.Release|Win32.Build.0 = Release|Win32
{40A69F40-063E-43FD-8543-455495D8733E}.Release|x64.ActiveCfg = Release|x64
{40A69F40-063E-43FD-8543-455495D8733E}.Release|x64.Build.0 = Release|x64
{40A69F40-063E-43FD-8543-455495D8733E}.Unicode Debug|Win32.ActiveCfg = Unicode Debug|Win32
{40A69F40-063E-43FD-8543-455495D8733E}.Unicode Debug|Win32.Build.0 = Unicode Debug|Win32
{40A69F40-063E-43FD-8543-455495D8733E}.Unicode Debug|x64.ActiveCfg = Unicode Debug|x64
{40A69F40-063E-43FD-8543-455495D8733E}.Unicode Debug|x64.Build.0 = Unicode Debug|x64
{40A69F40-063E-43FD-8543-455495D8733E}.Unicode Release|Win32.ActiveCfg = Unicode Release|Win32
{40A69F40-063E-43FD-8543-455495D8733E}.Unicode Release|Win32.Build.0 = Unicode Release|Win32
{40A69F40-063E-43FD-8543-455495D8733E}.Unicode Release|x64.ActiveCfg = Unicode Release|x64
{40A69F40-063E-43FD-8543-455495D8733E}.Unicode Release|x64.Build.0 = Unicode Release|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Debug|Win32.ActiveCfg = Debug|Win32
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Debug|Win32.Build.0 = Debug|Win32
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Debug|x64.ActiveCfg = Debug|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Debug|x64.Build.0 = Debug|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Release|Win32.ActiveCfg = Release|Win32
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Release|Win32.Build.0 = Release|Win32
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Release|x64.ActiveCfg = Release|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Release|x64.Build.0 = Release|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Unicode Debug|Win32.ActiveCfg = Unicode Debug|Win32
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Unicode Debug|Win32.Build.0 = Unicode Debug|Win32
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Unicode Debug|x64.ActiveCfg = Unicode Debug|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Unicode Debug|x64.Build.0 = Unicode Debug|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Unicode Release|Win32.ActiveCfg = Unicode Release|Win32
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Unicode Release|Win32.Build.0 = Unicode Release|Win32
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Unicode Release|x64.ActiveCfg = Unicode Release|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Unicode Release|x64.Build.0 = Unicode Release|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.Debug|Win32.ActiveCfg = Debug|Win32
{818753F2-DBB9-4D3B-898A-A604309BE470}.Debug|Win32.Build.0 = Debug|Win32
{818753F2-DBB9-4D3B-898A-A604309BE470}.Debug|x64.ActiveCfg = Debug|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.Debug|x64.Build.0 = Debug|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.Release|Win32.ActiveCfg = Release|Win32
{818753F2-DBB9-4D3B-898A-A604309BE470}.Release|Win32.Build.0 = Release|Win32
{818753F2-DBB9-4D3B-898A-A604309BE470}.Release|x64.ActiveCfg = Release|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.Release|x64.Build.0 = Release|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.Unicode Debug|Win32.ActiveCfg = Unicode Debug|Win32
{818753F2-DBB9-4D3B-898A-A604309BE470}.Unicode Debug|Win32.Build.0 = Unicode Debug|Win32
{818753F2-DBB9-4D3B-898A-A604309BE470}.Unicode Debug|x64.ActiveCfg = Unicode Debug|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.Unicode Debug|x64.Build.0 = Unicode Debug|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.Unicode Release|Win32.ActiveCfg = Unicode Release|Win32
{818753F2-DBB9-4D3B-898A-A604309BE470}.Unicode Release|Win32.Build.0 = Unicode Release|Win32
{818753F2-DBB9-4D3B-898A-A604309BE470}.Unicode Release|x64.ActiveCfg = Unicode Release|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.Unicode Release|x64.Build.0 = Unicode Release|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Debug|Win32.ActiveCfg = Debug|Win32
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Debug|Win32.Build.0 = Debug|Win32
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Debug|x64.ActiveCfg = Debug|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Debug|x64.Build.0 = Debug|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Release|Win32.ActiveCfg = Release|Win32
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Release|Win32.Build.0 = Release|Win32
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Release|x64.ActiveCfg = Release|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Release|x64.Build.0 = Release|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Unicode Debug|Win32.ActiveCfg = Unicode Debug|Win32
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Unicode Debug|Win32.Build.0 = Unicode Debug|Win32
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Unicode Debug|x64.ActiveCfg = Unicode Debug|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Unicode Debug|x64.Build.0 = Unicode Debug|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Unicode Release|Win32.ActiveCfg = Unicode Release|Win32
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Unicode Release|Win32.Build.0 = Unicode Release|Win32
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Unicode Release|x64.ActiveCfg = Unicode Release|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Unicode Release|x64.Build.0 = Unicode Release|x64
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Debug|Win32.ActiveCfg = Debug|Win32
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Debug|Win32.Build.0 = Debug|Win32
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Debug|x64.ActiveCfg = Debug|x64
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Debug|x64.Build.0 = Debug|x64
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Release|Win32.ActiveCfg = Release|Win32
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Release|Win32.Build.0 = Release|Win32
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Release|x64.ActiveCfg = Release|x64
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Release|x64.Build.0 = Release|x64
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Unicode Debug|Win32.ActiveCfg = Unicode Debug|Win32
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Unicode Debug|Win32.Build.0 = Unicode Debug|Win32
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Unicode Debug|x64.ActiveCfg = Unicode Debug|x64
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Unicode Debug|x64.Build.0 = Unicode Debug|x64
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Unicode Release|Win32.ActiveCfg = Unicode Release|Win32
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Unicode Release|Win32.Build.0 = Unicode Release|Win32
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Unicode Release|x64.ActiveCfg = Unicode Release|x64
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Unicode Release|x64.Build.0 = Unicode Release|x64
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Debug|Win32.ActiveCfg = Debug|Win32
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Debug|Win32.Build.0 = Debug|Win32
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Debug|x64.ActiveCfg = Debug|x64
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Debug|x64.Build.0 = Debug|x64
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Release|Win32.ActiveCfg = Release|Win32
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Release|Win32.Build.0 = Release|Win32
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Release|x64.ActiveCfg = Release|x64
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Release|x64.Build.0 = Release|x64
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Unicode Debug|Win32.ActiveCfg = Debug|Win32
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Unicode Debug|Win32.Build.0 = Debug|Win32
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Unicode Debug|x64.ActiveCfg = Debug|x64
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Unicode Debug|x64.Build.0 = Debug|x64
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Unicode Release|Win32.ActiveCfg = Release|Win32
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Unicode Release|Win32.Build.0 = Release|Win32
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Unicode Release|x64.ActiveCfg = Release|x64
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Unicode Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment