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

git-svn-id:...

git-svn-id: svn://fileserver/activex/AVS/Sources/TeamlabOffice/trunk/ServerComponents@61926 954022d7-b5bf-4e40-9824-e11837661b57
parent 82f3f4c4
#pragma once
#include "resource.h"
#include "Reader/BinaryWriter.h"
#include "Writer/BinaryReader.h"
#include "../ASCOfficeDocxFile2/DocWrapper/XlsxSerializer.h"
#include "../ASCOfficePPTXFile/Editor/FontPicker.h"
#include "../ASCOfficeDocxFile2/DocWrapper/FontProcessor.h"
#include "../Common/OfficeFileTemplate.h"
int g_nCurFormatVersion = 0;
[
object,
uuid("87476A4D-6A42-44e9-A947-42B8E8613070"),
dual, helpstring("IAVSOfficeXlsxSerizer Interface"),
pointer_default(unique)
]
__interface IAVSOfficeXlsxSerizer : public IAVSOfficeFileTemplate
{
[id(20)] HRESULT SetFontDir([in] BSTR bsFontDir);
[id(30)] HRESULT LoadChart([in] BSTR bsFilename, [out, satype("BYTE")] SAFEARRAY** ppBinary);
[id(31)] HRESULT SaveChart([in, satype("BYTE")] SAFEARRAY* pBinaryObj, [in] LONG lStart, [in] LONG lLength, [in] BSTR bsFilename, [in] BSTR bsContentTypePath, [out] BSTR* bsContentTypeElement);
[id(32)] HRESULT SetDrawingConverter([in] IUnknown* pDocument);
[id(120)] HRESULT SetAdditionalParam([in] BSTR ParamName, [in] VARIANT ParamValue);
[id(130)] HRESULT GetAdditionalParam([in] BSTR ParamName, [out, retval] VARIANT* ParamValue);
};
[
coclass,
default(IAVSOfficeXlsxSerizer),
event_receiver(native),
threading(apartment),
vi_progid("ASCOfficeXlsxSerizer.AVSDocume"),
progid("ASCOfficeXlsxSerizer.AVSDocu.1"),
version(1.0),
uuid("2A6514F2-0C01-4759-89CB-68C38669337D"),
helpstring("ASCOfficeXlsxSerizer Class")
]
class ATL_NO_VTABLE CAVSOfficeXlsxSerizer : public IAVSOfficeXlsxSerizer
{
private:
BinXlsxRW::CXlsxSerializer m_oXlsxSerializer;
public:
CAVSOfficeXlsxSerizer()
{
}
DECLARE_PROTECT_FINAL_CONSTRUCT()
HRESULT FinalConstruct()
{
return S_OK;
}
void FinalRelease()
{
}
public:
STDMETHOD(LoadFromFile)(BSTR sSrcFileName, BSTR bstrDstPath, BSTR bstrXMLOptions)
{
CString sDstPath = bstrDstPath;
CString sMediaPath;
m_oXlsxSerializer.CreateXlsxFolders(CString(bstrXMLOptions), sDstPath, sMediaPath);
bool bRes = m_oXlsxSerializer.loadFromFile(CString(sSrcFileName), sDstPath, CString(bstrXMLOptions), sMediaPath);
return bRes ? S_OK : S_FALSE;
return S_OK;
}
STDMETHOD(SaveToFile)(BSTR sDstFileName, BSTR sSrcPath, BSTR sXMLOptions)
{
bool bRes = m_oXlsxSerializer.saveToFile(CString(sDstFileName), CString(sSrcPath), CString(sXMLOptions)) ? S_OK : S_FALSE;
return bRes ? S_OK : S_FALSE;
}
STDMETHOD(LoadChart)(BSTR bsFilename, SAFEARRAY** ppBinary)
{
unsigned char* pData = NULL;
long lDataSize = 0;
bool bRes = true;
//m_oXlsxSerializer.loadChart(CString(bsFilename), &pData, lDataSize);
if(NULL != pData && lDataSize > 0)
{
SAFEARRAYBOUND rgsabound[1];
rgsabound[0].lLbound = 0;
rgsabound[0].cElements = lDataSize;
LPSAFEARRAY pArray = SafeArrayCreate(VT_UI1, 1, rgsabound);
BYTE* pDataD = (BYTE*)pArray->pvData;
BYTE* pDataS = pData;
memcpy(pDataD, pDataS, lDataSize);
*ppBinary = pArray;
}
RELEASEARRAYOBJECTS(pData);
return bRes ? S_OK : S_FALSE; }
STDMETHOD(SaveChart)(SAFEARRAY* pBinaryObj, LONG lStart, LONG lLength, BSTR bsFilename, BSTR bsContentTypePath, BSTR* bsContentTypeElement)
{
CString* sContentTypeElement = NULL;
bool bRes = true;
//m_oXlsxSerializer.saveChart(pBinaryObj, lStart, lLength, CString(bsFilename), CString(bsContentTypePath), &sContentTypeElement);
if(NULL != sContentTypeElement)
*bsContentTypeElement = sContentTypeElement->AllocSysString();
return bRes ? S_OK : S_FALSE;
}
STDMETHOD(SetDrawingConverter)(IUnknown* pDocument)
{
return S_OK;
}
STDMETHOD(SetFontDir)(BSTR bsFontDir)
{
m_oXlsxSerializer.setFontDir(CString(bsFontDir));
return S_OK;
}
STDMETHOD(SetAdditionalParam)(BSTR ParamName, VARIANT ParamValue)
{
CString sParamName; sParamName = ParamName;
if (_T("EmbeddedFontsDirectory") == sParamName && ParamValue.vt == VT_BSTR)
{
m_oXlsxSerializer.setEmbeddedFontsDir(CString(ParamValue.bstrVal));
return S_OK;
}
return S_OK;
}
STDMETHOD(GetAdditionalParam)(BSTR ParamName, VARIANT* ParamValue)
{
return S_OK;
}
private:
DocWrapper::FontProcessor m_oFontProcessor;
};
\ No newline at end of file
#ifndef XLSX_BIN_READER_WRITER_DEFINES
#define XLSX_BIN_READER_WRITER_DEFINES
namespace BinXlsxRW
{
const double g_dKoef_mm_to_pt = 72 / (2.54 * 10);
const double g_dKoef_mm_to_twips = 20 * g_dKoef_mm_to_pt;
const double g_dKoef_mm_to_emu = 36000;
const double g_dKoef_mm_to_eightpoint = 8 * g_dKoef_mm_to_pt;
const static TCHAR* g_sFormatSignature = _T("XLSY");
const int g_nFormatVersion = 2;
extern int g_nCurFormatVersion;
namespace c_oFileTypes{enum c_oFileTypes
{
XLSX = 1,
CSV = 2,
JSON = 3
};}
namespace c_oSerConstants{enum c_oSerConstants
{
ErrorFormat = -2,
ErrorUnknown = -1,
ReadOk = 0,
ReadUnknown = 1,
ErrorStream = 0x55
};}
namespace c_oSerPropLenType{enum c_oSerPropLenType
{
Null = 0,
Byte = 1,
Short = 2,
Three = 3,
Long = 4,
Double = 5,
Variable = 6,
Double64 = 7,
Long64 = 8
};}
namespace c_oSerTableTypes{enum c_oSerTableTypes
{
Other = 0,
SharedStrings = 1,
Styles = 2,
Workbook = 3,
Worksheets = 4,
CalcChain = 5
};}
namespace c_oSerStylesTypes{enum c_oSerStylesTypes
{
Borders = 0,
Border = 1,
CellXfs = 2,
Xfs = 3,
Fills = 4,
Fill = 5,
Fonts = 6,
Font = 7,
NumFmts = 8,
NumFmt = 9,
Dxfs = 10,
Dxf = 11,
TableStyles = 12,
CellStyleXfs = 14,
CellStyles = 15,
CellStyle = 16
};}
namespace c_oSerBorderTypes{enum c_oSerBorderTypes
{
Bottom = 0,
Diagonal = 1,
End = 2,
Horizontal = 3,
Start = 4,
Top = 5,
Vertical = 6,
DiagonalDown = 7,
DiagonalUp = 8,
Outline = 9
};}
namespace c_oSerBorderPropTypes{enum c_oSerBorderPropTypes
{
Color = 0,
Style = 1
};}
namespace c_oSerXfsTypes{enum c_oSerXfsTypes
{
ApplyAlignment = 0,
ApplyBorder = 1,
ApplyFill = 2,
ApplyFont = 3,
ApplyNumberFormat = 4,
ApplyProtection = 5,
BorderId = 6,
FillId = 7,
FontId = 8,
NumFmtId = 9,
PivotButton = 10,
QuotePrefix = 11,
XfId = 12,
Aligment = 13,
Protection = 14
};}
namespace c_oSerAligmentTypes{enum c_oSerAligmentTypes
{
Horizontal = 0,
Indent = 1,
JustifyLastLine = 2,
ReadingOrder = 3,
RelativeIndent = 4,
ShrinkToFit = 5,
TextRotation = 6,
Vertical = 7,
WrapText = 8
};}
namespace c_oSerFillTypes{enum c_oSerFillTypes
{
PatternFill = 0,
PatternFillBgColor = 1
};}
namespace c_oSerFontTypes{enum c_oSerFontTypes
{
Bold = 0,
Color = 1,
Italic = 3,
RFont = 4,
Strike = 5,
Sz = 6,
Underline = 7,
VertAlign = 8,
Scheme = 9
};}
namespace c_oSerNumFmtTypes{enum c_oSerNumFmtTypes
{
FormatCode = 0,
NumFmtId = 1
};}
namespace c_oSerSharedStringTypes{enum c_oSerSharedStringTypes
{
Si = 0,
Run = 1,
RPr = 2,
Text = 3,
};}
namespace c_oSerWorkbookTypes{enum c_oSerWorkbookTypes
{
WorkbookPr = 0,
BookViews = 1,
WorkbookView = 2,
DefinedNames = 3,
DefinedName = 4,
ExternalReferences = 5,
ExternalReference = 6
};}
namespace c_oSerWorkbookPrTypes{enum c_oSerWorkbookPrTypes
{
Date1904 = 0,
DateCompatibility = 1,
};}
namespace c_oSerWorkbookViewTypes{enum c_oSerWorkbookViewTypes
{
ActiveTab = 0
};}
namespace c_oSerDefinedNameTypes{enum c_oSerDefinedNameTypes
{
Name = 0,
Ref = 1,
LocalSheetId = 2
};}
namespace c_oSerWorksheetsTypes{enum c_oSerWorksheetsTypes
{
Worksheet = 0,
WorksheetProp = 1,
Cols = 2,
Col = 3,
Dimension = 4,
Hyperlinks = 5,
Hyperlink = 6,
MergeCells = 7,
MergeCell = 8,
SheetData = 9,
Row = 10,
SheetFormatPr = 11,
Drawings = 12,
Drawing = 13,
PageMargins = 14,
PageSetup = 15,
PrintOptions = 16,
Autofilter = 17,
TableParts = 18,
Comments = 19,
Comment = 20,
ConditionalFormatting = 21,
SheetViews = 22,
SheetView = 23,
SheetPr = 24
};}
namespace c_oSerWorksheetPropTypes{enum c_oSerWorksheetPropTypes
{
Name = 0,
SheetId = 1,
State = 2
};}
namespace c_oSerWorksheetColTypes{enum c_oSerWorksheetColTypes
{
BestFit = 0,
Hidden = 1,
Max = 2,
Min = 3,
Style = 4,
Width = 5,
CustomWidth = 6
};}
namespace c_oSerHyperlinkTypes{enum c_oSerWorksheetColTypes
{
Ref = 0,
Hyperlink = 1,
Location = 2,
Tooltip = 3,
Display = 4
};}
namespace c_oSerSheetFormatPrTypes{enum c_oSerSheetFormatPrTypes
{
DefaultColWidth = 0,
DefaultRowHeight = 1,
BaseColWidth = 2,
CustomHeight = 3,
ZeroHeight = 4
};}
namespace c_oSerRowTypes{enum c_oSerRowTypes
{
Row = 0,
Style = 1,
Height = 2,
Hidden = 3,
Cells = 4,
Cell = 5,
CustomHeight = 6
};}
namespace c_oSerCellTypes{enum c_oSerCellTypes
{
Ref = 0,
Style = 1,
Type = 2,
Value = 3,
Formula = 4,
RefRowCol = 5
};}
namespace c_oSerFormulaTypes{enum c_oSerFormulaTypes
{
Aca = 0,
Bx = 1,
Ca = 2,
Del1 = 3,
Del2 = 4,
Dt2D = 5,
Dtr = 6,
R1 = 7,
R2 = 8,
Ref = 9,
Si = 10,
T = 11,
Text = 12
};}
namespace c_oSer_DrawingType{enum c_oSer_DrawingType
{
Type = 0,
From = 1,
To = 2,
Pos = 3,
Pic = 4,
PicSrc = 5,
GraphicFrame = 6,
Chart = 7,
Ext = 8,
pptxDrawing = 9,
Chart2 = 10,
ObjectName = 11
};}
namespace c_oSer_DrawingFromToType{enum c_oSer_DrawingFromToType
{
Col = 0,
ColOff = 1,
Row = 2,
RowOff = 3
};}
namespace c_oSer_DrawingPosType{enum c_oSer_DrawingPosType
{
X = 0,
Y = 1
};}
namespace c_oSer_DrawingExtType{enum c_oSer_DrawingExtType
{
Cx = 0,
Cy = 1
};}
namespace c_oSer_OtherType{enum c_oSer_OtherType
{
Media = 0,
MediaItem = 1,
MediaId = 2,
MediaSrc = 3,
EmbeddedFonts = 4,
Theme = 5
};}
namespace c_oSer_CalcChainType{enum c_oSer_CalcChainType
{
CalcChainItem = 0,
Array = 1,
SheetId = 2,
DependencyLevel = 3,
Ref = 4,
ChildChain = 5,
NewThread = 6
};}
namespace c_oSer_ChartType{enum c_oSer_ChartType
{
Legend = 0,
Title = 1,
PlotArea = 2,
Style = 3,
TitlePptx = 4,
ShowBorder = 5,
SpPr = 6
};}
namespace c_oSer_ChartTitlePptxType{enum c_oSer_ChartTitlePptxType
{
TxPptx = 0,
TxPrPptx = 1
};}
namespace c_oSer_ChartLegendType{enum c_oSer_ChartLegendType
{
LegendPos = 0,
Overlay = 1,
Layout = 2,
LegendEntry = 3,
TxPrPptx = 4
};}
namespace c_oSer_ChartLegendEntryType{enum c_oSer_ChartLegendEntryType
{
Delete = 0,
Index = 1,
TxPrPptx = 2
};}
namespace c_oSer_ChartLegendLayoutType{enum c_oSer_ChartLegendLayoutType
{
H = 0,
HMode = 1,
LayoutTarget = 2,
W = 3,
WMode = 4,
X = 5,
XMode = 6,
Y = 7,
YMode = 8
};}
namespace c_oSer_ChartPlotAreaType{enum c_oSer_ChartPlotAreaType
{
CatAx = 0,
ValAx = 1,
SerAx = 2,
ValAxPos = 3,
BasicChart = 4
};}
namespace c_oSer_ChartCatAxType{enum c_oSer_ChartCatAxType
{
Title = 0,
MajorGridlines = 1,
Delete = 2,
AxPos = 3,
TitlePptx = 4,
TxPrPptx = 5
};}
namespace c_oSer_BasicChartType{enum c_oSer_BasicChartType
{
Type = 0,
BarDerection = 1,
Grouping = 2,
Overlap = 3,
Series = 4,
Seria = 5,
DataLabels = 6,
};}
namespace c_oSer_ChartSeriesType{enum c_oSer_ChartSeriesType
{
Val = 0,
Tx = 1,
Marker = 2,
OutlineColor = 3,
xVal = 4,
TxRef = 5,
Index = 6,
Order = 7,
DataLabels = 8,
SpPr = 9,
Cat = 10
};}
namespace c_oSer_ChartSeriesMarkerType{enum c_oSer_ChartSeriesMarkerType
{
Size = 0,
Symbol = 1
};}
namespace c_oSer_ChartSeriesDataLabelsType{enum c_oSer_ChartSeriesDataLabelsType
{
ShowVal = 0,
TxPrPptx = 1,
ShowCatName = 2
};}
namespace c_oSer_ChartSeriesNumCacheType{enum c_oSer_ChartSeriesNumCacheType
{
Formula = 0,
NumCache = 1,
NumCacheVal = 2,
NumCacheIndex = 3,
NumCache2 = 4,
NumCacheItem = 5
};}
namespace c_oSer_ColorObjectType{enum c_oSer_ColorObjectType
{
Rgb = 0,
Type = 1,
Theme = 2,
Tint = 3
};}
namespace c_oSer_ColorType{enum c_oSer_ColorType
{
Auto = 0
};}
namespace c_oSer_PageMargins{enum c_oSer_PageMargins
{
Left = 0,
Top = 1,
Right = 2,
Bottom = 3,
Header = 4,
Footer = 5
};}
namespace c_oSer_PageSetup{enum c_oSer_PageSetup
{
Orientation = 0,
PaperSize = 1
};}
namespace c_oSer_PrintOptions{enum c_oSer_PrintOptions
{
GridLines = 0,
Headings = 1
};}
namespace c_oSer_TablePart{enum c_oSer_TablePart
{
Table = 0,
Ref = 1,
TotalsRowCount = 2,
DisplayName = 3,
AutoFilter = 4,
SortState = 5,
TableColumns = 6,
TableStyleInfo = 7,
HeaderRowCount = 8
};}
namespace c_oSer_TableStyleInfo{enum c_oSer_TableStyleInfo
{
Name = 0,
ShowColumnStripes = 1,
ShowRowStripes = 2,
ShowFirstColumn = 3,
ShowLastColumn = 4
};}
namespace c_oSer_TableColumns{enum c_oSer_TableColumns
{
TableColumn = 0,
Name = 1,
DataDxfId = 2,
TotalsRowLabel = 3,
TotalsRowFunction = 4,
TotalsRowFormula = 5,
CalculatedColumnFormula = 6
};}
namespace c_oSer_SortState{enum c_oSer_SortState
{
Ref = 0,
CaseSensitive = 1,
SortConditions = 2,
SortCondition = 3,
ConditionRef = 4,
ConditionSortBy = 5,
ConditionDescending = 6,
ConditionDxfId = 7
};}
namespace c_oSer_AutoFilter{enum c_oSer_AutoFilter
{
Ref = 0,
FilterColumns = 1,
FilterColumn = 2,
SortState = 3
};}
namespace c_oSer_FilterColumn{enum c_oSer_FilterColumn
{
ColId = 0,
Filters = 1,
Filter = 2,
DateGroupItem = 3,
CustomFilters = 4,
ColorFilter = 5,
Top10 = 6,
DynamicFilter = 7,
HiddenButton = 8,
ShowButton = 9,
FiltersBlank = 10
};}
namespace c_oSer_Filter{enum c_oSer_Filter
{
Val = 0
};}
namespace c_oSer_DateGroupItem{enum c_oSer_DateGroupItem
{
DateTimeGrouping = 0,
Day = 1,
Hour = 2,
Minute = 3,
Month = 4,
Second = 5,
Year = 6
};}
namespace c_oSer_CustomFilters{enum c_oSer_CustomFilters
{
And = 0,
CustomFilters = 1,
CustomFilter = 2,
Operator = 3,
Val = 4
};}
namespace c_oSer_DynamicFilter{enum c_oSer_DynamicFilter
{
Type = 0,
Val = 1,
MaxVal = 2
};}
namespace c_oSer_ColorFilter{enum c_oSer_ColorFilter
{
CellColor = 0,
DxfId = 1
};}
namespace c_oSer_Top10{enum c_oSer_Top10
{
FilterVal = 0,
Percent = 1,
Top = 2,
Val = 3
};}
namespace c_oSer_Dxf{enum c_oSer_Dxf
{
Alignment = 0,
Border = 1,
Fill = 2,
Font = 3,
NumFmt = 4
};}
namespace c_oSer_TableStyles{enum c_oSer_TableStyles
{
DefaultTableStyle = 0,
DefaultPivotStyle = 1,
TableStyles = 2,
TableStyle = 3
};}
namespace c_oSer_TableStyle{enum c_oSer_TableStyle
{
Name = 0,
Pivot = 1,
Table = 2,
Elements = 3,
Element = 4,
DisplayName = 5
};}
namespace c_oSer_TableStyleElement{enum c_oSer_TableStyleElement
{
DxfId = 0,
Size = 1,
Type = 2
};}
namespace c_oSer_Comments{enum c_oSer_Comments
{
Row = 0,
Col = 1,
CommentDatas = 2,
CommentData = 3,
Left = 4,
LeftOffset = 5,
Top = 6,
TopOffset = 7,
Right = 8,
RightOffset = 9,
Bottom = 10,
BottomOffset = 11,
LeftMM = 12,
TopMM = 13,
WidthMM = 14,
HeightMM = 15,
MoveWithCells = 16,
SizeWithCells = 17
};}
namespace c_oSer_CommentData{enum c_oSer_CommentData
{
Text = 0,
Time = 1,
UserId = 2,
UserName = 3,
QuoteText = 4,
Solved = 5,
Document = 6,
Replies = 7,
Reply = 8
};}
namespace c_oSer_ConditionalFormatting{enum c_oSer_ConditionalFormatting
{
Pivot = 0,
SqRef = 1,
ConditionalFormattingRule = 2
};}
namespace c_oSer_ConditionalFormattingRule{enum c_oSer_ConditionalFormattingRule
{
AboveAverage = 0,
Bottom = 1,
DxfId = 2,
EqualAverage = 3,
Operator = 4,
Percent = 5,
Priority = 6,
Rank = 7,
StdDev = 8,
StopIfTrue = 9,
Text = 10,
TimePeriod = 11,
Type = 12,
ColorScale = 14,
DataBar = 15,
FormulaCF = 16,
IconSet = 17
};}
namespace c_oSer_ConditionalFormattingRuleColorScale{enum c_oSer_ConditionalFormattingRuleElement
{
CFVO = 0,
Color = 1,
};}
namespace c_oSer_ConditionalFormattingDataBar{enum c_oSer_ConditionalFormattingDataBar
{
CFVO = 0,
Color = 1,
MaxLength = 2,
MinLength = 3,
ShowValue = 4
};}
namespace c_oSer_ConditionalFormattingIconSet{enum c_oSer_ConditionalFormattingIconSet
{
CFVO = 0,
IconSet = 1,
Percent = 2,
Reverse = 3,
ShowValue = 4
};}
namespace c_oSer_ConditionalFormattingValueObject{enum c_oSer_ConditionalFormattingValueObject
{
Gte = 0,
Type = 1,
Val = 2
};}
namespace c_oSer_SheetView{enum c_oSer_SheetView
{
ColorId = 0,
DefaultGridColor = 1,
RightToLeft = 2,
ShowFormulas = 3,
ShowGridLines = 4,
ShowOutlineSymbols = 5,
ShowRowColHeaders = 6,
ShowRuler = 7,
ShowWhiteSpace = 8,
ShowZeros = 9,
TabSelected = 10,
TopLeftCell = 11,
View = 12,
WindowProtection = 13,
WorkbookViewId = 14,
ZoomScale = 15,
ZoomScaleNormal = 16,
ZoomScalePageLayoutView = 17,
ZoomScaleSheetLayoutView = 18,
Pane = 19
};}
namespace c_oSer_Pane{enum c_oSer_Pane
{
ActivePane = 0,
State = 1,
TopLeftCell = 2,
XSplit = 3,
YSplit = 4
};}
namespace c_oSer_CellStyle{enum c_oSer_CellStyle
{
BuiltinId = 0,
CustomBuiltin = 1,
Hidden = 2,
ILevel = 3,
Name = 4,
XfId = 5
};}
namespace c_oSer_SheetPr{enum c_oSer_SheetPr
{
CodeName = 0,
EnableFormatConditionsCalculation = 1,
FilterMode = 2,
Published = 3,
SyncHorizontal = 4,
SyncRef = 5,
SyncVertical = 6,
TransitionEntry = 7,
TransitionEvaluation = 8,
TabColor = 9
};}
}
#endif //
\ No newline at end of file
#include "Common.h"
#include "BinReaderWriterDefines.h"
#include "../../Common/DocxFormat/Source/XlsxFormat/Xlsx.h"
#include "../../Common/Base64.h"
#include "../../DesktopEditor/common/Types.h"
#ifndef DISABLE_FILE_DOWNLOADER
#include "../../Common/FileDownloader.h"
#endif
#include "../../DesktopEditor/common/File.h"
#ifndef CP_UTF8
#define CP_UTF8 65001
#endif
namespace SerializeCommon
{
CString DownloadImage(const CString& strFile)
{
#ifndef DISABLE_FILE_DOWNLOADER
CFileDownloader oDownloader(strFile, FALSE);
oDownloader.Start( 1 );
while ( oDownloader.IsRunned() )
{
::Sleep( 10 );
}
CString strFileName;
if ( oDownloader.IsFileDownloaded() )
{
strFileName = oDownloader.GetFilePath();
}
return strFileName;
#else
return L"";
#endif
}
VOID convertBase64ToImage (NSFile::CFileBinary& oFile, CString &pBase64)
{
BYTE* pUtf8 = NULL;
long nUtf8Size;
NSFile::CUtf8Converter::GetUtf8StringFromUnicode(pBase64.GetString(), pBase64.GetLength(), pUtf8, nUtf8Size);
CStringA sUnicode((char*)pUtf8, nUtf8Size);
RELEASEARRAYOBJECTS(pUtf8);
// "data:image/jpg;base64,"
int nShift = 0;
int nIndex = sUnicode.Find("base64,");
if(-1 != nIndex)
{
nShift = nIndex + 7;
}
//
LONG lFileSize = sUnicode.GetLength () - nShift;
INT nDstLength = lFileSize;
BYTE *pBuffer = new BYTE [lFileSize];
memset(pBuffer, 0, lFileSize);
Base64::Base64Decode ((LPCSTR)sUnicode.GetBuffer () + nShift, lFileSize, pBuffer, &nDstLength);
//
oFile.WriteFile(pBuffer, nDstLength);
RELEASEARRAYOBJECTS (pBuffer);
}
long Round(double val)
{
return (long)(val+ 0.5);
}
CString changeExtention(const CString& sSourcePath, const CString& sTargetExt)
{
int nIndex = sSourcePath.ReverseFind('.');
if(-1 != nIndex)
return sSourcePath.Left(nIndex + 1) + sTargetExt;
return sSourcePath;
}
void ReadFileType(CString& sXMLOptions, BYTE& result, UINT& nCodePage, WCHAR& wcDelimiter, BYTE& cSaveFileType)
{
result = BinXlsxRW::c_oFileTypes::XLSX;
nCodePage = CP_UTF8;
wcDelimiter = _T(',');
cSaveFileType = BinXlsxRW::c_oFileTypes::XLSX;
nullable<SimpleTypes::CUnsignedDecimalNumber<>> fileType;
nullable<SimpleTypes::CUnsignedDecimalNumber<>> codePage;
nullable<SimpleTypes::CUnsignedDecimalNumber<>> saveFileType;
nullable<CString> delimiter;
// Read options
XmlUtils::CXmlLiteReader oReader;
if (TRUE != oReader.FromString(sXMLOptions) || TRUE != oReader.IsValid())
return;
oReader.ReadNextNode(); // XmlOptions
if (oReader.IsEmptyNode())
return;
int nCurDepth = oReader.GetDepth();
while(oReader.ReadNextSiblingNode(nCurDepth))
{
CWCharWrapper sName = oReader.GetName();
if (_T("fileOptions") == sName)
{
//
WritingElement_ReadAttributes_Start(oReader)
WritingElement_ReadAttributes_Read_if (oReader, _T("fileType"), fileType)
WritingElement_ReadAttributes_Read_else_if (oReader, _T("codePage"), codePage)
WritingElement_ReadAttributes_Read_else_if (oReader, _T("delimiter"), delimiter)
WritingElement_ReadAttributes_Read_else_if (oReader, _T("saveFileType"), saveFileType)
WritingElement_ReadAttributes_End(oReader)
if (fileType.IsInit())
result = (BYTE)fileType->GetValue();
if (codePage.IsInit())
nCodePage = (UINT)codePage->GetValue();
if (saveFileType.IsInit())
cSaveFileType = (BYTE)saveFileType->GetValue();
if (delimiter.IsInit())
{
const CString& sDelimiter = delimiter.get();
if (0 < sDelimiter.GetLength())
wcDelimiter = sDelimiter.GetAt(0);
}
break;
}
}
return;
}
}
#ifndef SERIALIZER_COMMON
#define SERIALIZER_COMMON
#if defined(_WIN32) || defined (_WIN64)
#include <atlbase.h>
#include <atlstr.h>
#else
#include "../../Common/DocxFormat/Source/Base/ASCString.h"
#endif
#include "../../DesktopEditor/common/File.h"
#include <string>
#include <vector>
#define BUFFER_GROW_SIZE 1 * 1024 * 1024 //1mb
namespace SerializeCommon
{
CString DownloadImage(const CString& strFile);
VOID convertBase64ToImage (NSFile::CFileBinary& oFile, CString &pBase64);
long Round(double val);
CString changeExtention(const CString& sSourcePath, const CString& sTargetExt);
class CommentData
{
public :
CString sText;
CString sTime;
CString sUserId;
CString sUserName;
CString sQuoteText;
bool Solved;
bool Document;
bool bSolved;
bool bDocument;
std::vector<CommentData*> aReplies;
CommentData()
{
bSolved = false;
bDocument = false;
}
~CommentData()
{
for(int i = 0, length = aReplies.size(); i < length; ++i)
delete aReplies[i];
aReplies.clear();
}
};
void ReadFileType(CString& sXMLOptions, BYTE& result, UINT& nCodePage, WCHAR& wcDelimiter, BYTE& saveFileType);
}
#endif //SERIALIZER_COMMON
This source diff could not be displayed because it is too large. You can view the blob instead.
#include "CSVReader.h"
#include <map>
#include "../../DesktopEditor/common/File.h"
namespace CSVReader
{
void AddCell(CString &sText, INT nStartCell, std::stack<INT> &oDeleteChars, OOX::Spreadsheet::CRow &oRow, INT nRow, INT nCol, BOOL bIsWrap)
{
while(!oDeleteChars.empty())
{
INT nIndex = oDeleteChars.top() - nStartCell;
sText.Delete(nIndex);
oDeleteChars.pop();
}
// Пустую не пишем
if (0 == sText.GetLength())
return;
OOX::Spreadsheet::CCell *pCell = new OOX::Spreadsheet::CCell();
pCell->m_oType.Init();
WCHAR *pEndPtr;
double dValue = wcstod(sText, &pEndPtr);
if (NULL != *pEndPtr)
{
// Не число
pCell->m_oType->SetValue(SimpleTypes::Spreadsheet::celltypeInlineStr);
pCell->m_oRichText.Init();
OOX::Spreadsheet::CText *pText = new OOX::Spreadsheet::CText();
pText->m_sText = sText;
pCell->m_oRichText->m_arrItems.push_back(pText);
}
else
{
// Число
pCell->m_oValue.Init();
pCell->m_oValue->m_sText = sText;
}
if (bIsWrap)
{
// WrapStyle
pCell->m_oStyle.Init();
pCell->m_oStyle->SetValue(1);
}
pCell->m_oRef.Init();
pCell->m_oRef = OOX::Spreadsheet::CWorksheet::combineRef(nRow, nCol);
oRow.m_arrItems.push_back(pCell);
}
void ReadFromCsvToXlsx(CString &sFileName, OOX::Spreadsheet::CXlsx &oXlsx, UINT nCodePage, const WCHAR wcDelimiter)
{
// Создадим Workbook
oXlsx.CreateWorkbook();
// Создадим стили
oXlsx.CreateStyles();
// Добавим стили для wrap-а
OOX::Spreadsheet::CStyles *pStyles = oXlsx.GetStyles();
pStyles->m_oCellXfs.Init();
pStyles->m_oCellXfs->m_oCount.Init();
pStyles->m_oCellXfs->m_oCount->SetValue(2);
// Normall default
OOX::Spreadsheet::CXfs* pXfs = NULL;
pXfs = new OOX::Spreadsheet::CXfs();
pXfs->m_oBorderId.Init();
pXfs->m_oBorderId->SetValue(0);
pXfs->m_oFillId.Init();
pXfs->m_oFillId->SetValue(0);
pXfs->m_oFontId.Init();
pXfs->m_oFontId->SetValue(0);
pXfs->m_oNumFmtId.Init();
pXfs->m_oNumFmtId->SetValue(0);
pStyles->m_oCellXfs->m_arrItems.push_back(pXfs);
// Wrap style
pXfs = new OOX::Spreadsheet::CXfs();
pXfs->m_oBorderId.Init();
pXfs->m_oBorderId->SetValue(0);
pXfs->m_oFillId.Init();
pXfs->m_oFillId->SetValue(0);
pXfs->m_oFontId.Init();
pXfs->m_oFontId->SetValue(0);
pXfs->m_oNumFmtId.Init();
pXfs->m_oNumFmtId->SetValue(0);
pXfs->m_oApplyAlignment.Init();
pXfs->m_oApplyAlignment->SetValue(SimpleTypes::onoffTrue);
pXfs->m_oAligment.Init();
pXfs->m_oAligment->m_oWrapText.Init();
pXfs->m_oAligment->m_oWrapText->SetValue(SimpleTypes::onoffTrue);
pStyles->m_oCellXfs->m_arrItems.push_back(pXfs);
CString sSheetRId = _T("rId1");
OOX::Spreadsheet::CWorksheet* pWorksheet = new OOX::Spreadsheet::CWorksheet();
pWorksheet->m_oSheetData.Init();
OOX::Spreadsheet::CSheet *pSheet = new OOX::Spreadsheet::CSheet();
pSheet->m_oName.Init();
pSheet->m_oName->Append(_T("Sheet1"));
pSheet->m_oSheetId.Init();
pSheet->m_oSheetId->SetValue(1);
pSheet->m_oRid.Init();
pSheet->m_oRid->SetValue(sSheetRId);
OOX::Spreadsheet::CWorkbook *pWorkbook = oXlsx.GetWorkbook();
pWorkbook->m_oSheets.Init();
pWorkbook->m_oSheets->m_arrItems.push_back(pSheet);
NSFile::CFileBinary oFile;
if(oFile.OpenFile(string2std_string(sFileName)))
{
DWORD nFileSize = 0;
BYTE* pFileData = new BYTE[oFile.GetFileSize()];
oFile.ReadFile(pFileData, oFile.GetFileSize(), nFileSize);
oFile.CloseFile();
//todo
#if defined(_WIN32) || defined (_WIN64)
INT nSize = MultiByteToWideChar(nCodePage, 0, (LPCSTR)pFileData, nFileSize, NULL, 0);
WCHAR *pTemp = new WCHAR [nSize];
memset(pTemp, 0, sizeof(WCHAR) * nSize);
MultiByteToWideChar (nCodePage, 0, (LPCSTR)pFileData, nFileSize, pTemp, nSize);
#else
std::wstring sFileDataW = NSFile::CUtf8Converter::GetUnicodeStringFromUTF8(pFileData, nFileSize);
INT nSize = sFileDataW.length();
const WCHAR *pTemp = sFileDataW.c_str();
#endif
const WCHAR wcNewLineN = _T('\n');
const WCHAR wcNewLineR = _T('\r');
const WCHAR wcQuote = _T('"');
const WCHAR wcTab = _T('\t');
BOOL bIsWrap = FALSE;
WCHAR wcCurrent;
INT nStartCell = 0;
std::stack<INT> oDeleteChars;
BOOL bInQuote = FALSE;
INT nIndexRow = 0;
INT nIndexCol = 0;
OOX::Spreadsheet::CRow *pRow = new OOX::Spreadsheet::CRow();
pRow->m_oR.Init();
pRow->m_oR->SetValue(nIndexRow + 1);
for (INT nIndex = 0; nIndex < nSize; ++nIndex)
{
wcCurrent = pTemp[nIndex];
if (wcDelimiter == wcCurrent)
{
if (bInQuote)
continue;
// New Cell
CString sCellText(pTemp + nStartCell, nIndex - nStartCell);
AddCell(sCellText, nStartCell, oDeleteChars, *pRow, nIndexRow, nIndexCol++, bIsWrap);
bIsWrap = FALSE;
nStartCell = nIndex + 1;
if (nStartCell == nSize)
{
pWorksheet->m_oSheetData->m_arrItems.push_back(pRow);
pRow = NULL;
}
}
else if (wcNewLineN == wcCurrent || wcNewLineR == wcCurrent)
{
if (bInQuote)
{
// Добавим Wrap
bIsWrap = TRUE;
continue;
}
// New line
if (nStartCell != nIndex)
{
CString sCellText(pTemp + nStartCell, nIndex - nStartCell);
AddCell(sCellText, nStartCell, oDeleteChars, *pRow, nIndexRow, nIndexCol++, bIsWrap);
bIsWrap = FALSE;
}
if (wcNewLineR == wcCurrent && nIndex + 1 != nSize && wcNewLineN == pTemp[nIndex + 1])
{
// На комбинацию \r\n должен быть только 1 перенос
++nIndex;
}
nStartCell = nIndex + 1;
pWorksheet->m_oSheetData->m_arrItems.push_back(pRow);
pRow = new OOX::Spreadsheet::CRow();
pRow->m_oR.Init();
pRow->m_oR->SetValue(++nIndexRow + 1);
nIndexCol = 0;
}
else if (wcQuote == wcCurrent)
{
// Quote
if (FALSE == bInQuote && nStartCell == nIndex && nIndex + 1 != nSize)
{
// Начало новой ячейки (только если мы сразу после разделителя и не в конце файла)
bInQuote = !bInQuote;
nStartCell = nIndex + 1;
}
else if (TRUE == bInQuote)
{
// Нужно удалить кавычку ограничитель
oDeleteChars.push(nIndex);
// Если следующий символ кавычка, то мы не закончили ограничитель строки (1997,Ford,E350,"Super, ""luxurious"" truck")
if (nIndex + 1 != nSize && wcQuote == pTemp[nIndex + 1])
++nIndex;
else
bInQuote = !bInQuote;
}
}
else if (wcTab == wcCurrent)
{
// delete tab if not delimiter
oDeleteChars.push(nIndex);
}
}
if (nStartCell != nSize)
{
// New line
CString sCellText(pTemp + nStartCell, nSize - nStartCell);
AddCell(sCellText, nStartCell, oDeleteChars, *pRow, nIndexRow, nIndexCol++, bIsWrap);
pWorksheet->m_oSheetData->m_arrItems.push_back(pRow);
}
else
{
RELEASEOBJECT(pRow);
}
#if defined(_WIN32) || defined (_WIN64)
RELEASEARRAYOBJECTS(pTemp);
#endif
}
std::map<CString, OOX::Spreadsheet::CWorksheet*> &arrWorksheets = oXlsx.GetWorksheets();
arrWorksheets [sSheetRId] = pWorksheet;
}
}
#ifndef CSV_READER
#define CSV_READER
#include <stack>
#if defined(_WIN32) || defined (_WIN64)
#include <atlbase.h>
#include <atlstr.h>
#else
#include "../../Common/DocxFormat/Source/Base/ASCString.h"
#endif
#include "../../Common/DocxFormat/Source/XlsxFormat/Xlsx.h"
#include "../../DesktopEditor/common/File.h"
namespace CSVReader
{
void AddCell(CString &sText, INT nStartCell, std::stack<INT> &oDeleteChars, OOX::Spreadsheet::CRow &oRow, INT nRow, INT nCol, BOOL bIsWrap);
void ReadFromCsvToXlsx(CString &sFileName, OOX::Spreadsheet::CXlsx &oXlsx, UINT nCodePage, const WCHAR wcDelimiter);
}
#endif //CSV_READER
This source diff could not be displayed because it is too large. You can view the blob instead.
//Generated code
#ifndef CHART_FROM_TO_BINARY
#define CHART_FROM_TO_BINARY
#include "CommonWriter.h"
#include "../../Common/DocxFormat/Source/XlsxFormat/Chart/ChartSerialize.h"
#include "../Writer/BinaryCommonReader.h"
#include "../../ASCOfficePPTXFile/ASCOfficeDrawingConverter.h"
using namespace OOX::Spreadsheet;
namespace BinXlsxRW {
class SaveParams{
public:
CString sThemePath;
CString sAdditionalContentTypes;
int nThemeOverrideCount;
SaveParams(const CString& _sThemePath);
};
class BinaryChartReader : public Binary_CommonReader<BinaryChartReader>
{
NSBinPptxRW::CDrawingConverter* m_pOfficeDrawingConverter;
SaveParams& m_oSaveParams;
public:
BinaryChartReader(NSBinPptxRW::CBinaryFileReader& oBufferedStream, SaveParams& oSaveParams, NSBinPptxRW::CDrawingConverter* pOfficeDrawingConverter);
private: CString* GetRecordXml(long length, int nRecordType);
private: CString* GetTxBodyXml(long length);
private: int ReadCT_extLst(BYTE type, long length, void* poResult);
public: int ReadCT_ChartSpace(long length, CT_ChartSpace* poResult);
private: int ReadCT_ChartSpace(BYTE type, long length, void* poResult);
private: int ReadCT_Boolean(BYTE type, long length, void* poResult);
public: int ReadCT_RelId(long length, CT_RelId* poResult);
private: int ReadCT_RelId(BYTE type, long length, void* poResult);
private: int ReadCT_PageSetup(BYTE type, long length, void* poResult);
private: int ReadCT_PageMargins(BYTE type, long length, void* poResult);
private: int ReadCT_HeaderFooter(BYTE type, long length, void* poResult);
private: int ReadCT_PrintSettings(BYTE type, long length, void* poResult);
private: int ReadCT_ExternalData(BYTE type, long length, void* poResult);
private: int ReadCT_DispBlanksAs(BYTE type, long length, void* poResult);
private: int ReadCT_LegendEntry(BYTE type, long length, void* poResult);
private: int ReadCT_UnsignedInt(BYTE type, long length, void* poResult);
private: int ReadCT_Extension(BYTE type, long length, void* poResult);
private: int ReadCT_LegendPos(BYTE type, long length, void* poResult);
private: int ReadCT_Legend(BYTE type, long length, void* poResult);
private: int ReadCT_Layout(BYTE type, long length, void* poResult);
private: int ReadCT_ManualLayout(BYTE type, long length, void* poResult);
private: int ReadCT_LayoutTarget(BYTE type, long length, void* poResult);
private: int ReadCT_LayoutMode(BYTE type, long length, void* poResult);
private: int ReadCT_Double(BYTE type, long length, void* poResult);
private: int ReadCT_DTable(BYTE type, long length, void* poResult);
private: int ReadCT_SerAx(BYTE type, long length, void* poResult);
private: int ReadCT_Scaling(BYTE type, long length, void* poResult);
private: int ReadCT_LogBase(BYTE type, long length, void* poResult);
private: int ReadCT_Orientation(BYTE type, long length, void* poResult);
private: int ReadCT_AxPos(BYTE type, long length, void* poResult);
private: int ReadCT_ChartLines(BYTE type, long length, void* poResult);
private: int ReadCT_Title(BYTE type, long length, void* poResult);
private: int ReadCT_Tx(BYTE type, long length, void* poResult);
private: int ReadCT_StrRef(BYTE type, long length, void* poResult);
private: int ReadCT_StrData(BYTE type, long length, void* poResult);
private: int ReadCT_StrVal(BYTE type, long length, void* poResult);
private: int ReadCT_NumFmt(BYTE type, long length, void* poResult);
private: int ReadCT_TickMark(BYTE type, long length, void* poResult);
private: int ReadCT_TickLblPos(BYTE type, long length, void* poResult);
private: int ReadCT_Crosses(BYTE type, long length, void* poResult);
private: int ReadCT_Skip(BYTE type, long length, void* poResult);
private: int ReadCT_TimeUnit(BYTE type, long length, void* poResult);
private: int ReadCT_DateAx(BYTE type, long length, void* poResult);
private: int ReadCT_LblOffset(BYTE type, long length, void* poResult);
private: int ReadCT_AxisUnit(BYTE type, long length, void* poResult);
private: int ReadCT_LblAlgn(BYTE type, long length, void* poResult);
private: int ReadCT_CatAx(BYTE type, long length, void* poResult);
private: int ReadCT_DispUnitsLbl(BYTE type, long length, void* poResult);
private: int ReadCT_BuiltInUnit(BYTE type, long length, void* poResult);
private: int ReadCT_DispUnits(BYTE type, long length, void* poResult);
private: int ReadCT_CrossBetween(BYTE type, long length, void* poResult);
private: int ReadCT_ValAx(BYTE type, long length, void* poResult);
private: int ReadCT_SizeRepresents(BYTE type, long length, void* poResult);
private: int ReadCT_BubbleScale(BYTE type, long length, void* poResult);
private: int ReadCT_BubbleSer(BYTE type, long length, void* poResult);
private: int ReadCT_SerTx(BYTE type, long length, void* poResult);
private: int ReadCT_DPt(BYTE type, long length, void* poResult);
private: int ReadCT_Marker(BYTE type, long length, void* poResult);
private: int ReadCT_MarkerStyle(BYTE type, long length, void* poResult);
private: int ReadCT_MarkerSize(BYTE type, long length, void* poResult);
private: int ReadCT_PictureOptions(BYTE type, long length, void* poResult);
private: int ReadCT_PictureFormat(BYTE type, long length, void* poResult);
private: int ReadCT_PictureStackUnit(BYTE type, long length, void* poResult);
private: int ReadCT_DLbls(BYTE type, long length, void* poResult);
private: int ReadCT_DLbl(BYTE type, long length, void* poResult);
private: int ReadCT_DLblPos(BYTE type, long length, void* poResult);
private: int ReadCT_Trendline(BYTE type, long length, void* poResult);
private: int ReadCT_TrendlineType(BYTE type, long length, void* poResult);
private: int ReadCT_Order(BYTE type, long length, void* poResult);
private: int ReadCT_Period(BYTE type, long length, void* poResult);
private: int ReadCT_TrendlineLbl(BYTE type, long length, void* poResult);
private: int ReadCT_ErrBars(BYTE type, long length, void* poResult);
private: int ReadCT_ErrDir(BYTE type, long length, void* poResult);
private: int ReadCT_ErrBarType(BYTE type, long length, void* poResult);
private: int ReadCT_ErrValType(BYTE type, long length, void* poResult);
private: int ReadCT_NumDataSource(BYTE type, long length, void* poResult);
private: int ReadCT_NumData(BYTE type, long length, void* poResult);
private: int ReadCT_NumVal(BYTE type, long length, void* poResult);
private: int ReadCT_NumRef(BYTE type, long length, void* poResult);
private: int ReadCT_AxDataSource(BYTE type, long length, void* poResult);
private: int ReadCT_MultiLvlStrRef(BYTE type, long length, void* poResult);
private: int ReadCT_lvl(BYTE type, long length, void* poResult);
private: int ReadCT_MultiLvlStrData(BYTE type, long length, void* poResult);
private: int ReadCT_BubbleChart(BYTE type, long length, void* poResult);
private: int ReadCT_bandFmts(BYTE type, long length, void* poResult);
private: int ReadCT_Surface3DChart(BYTE type, long length, void* poResult);
private: int ReadCT_SurfaceSer(BYTE type, long length, void* poResult);
private: int ReadCT_BandFmt(BYTE type, long length, void* poResult);
private: int ReadCT_SurfaceChart(BYTE type, long length, void* poResult);
private: int ReadCT_SecondPieSize(BYTE type, long length, void* poResult);
private: int ReadCT_SplitType(BYTE type, long length, void* poResult);
private: int ReadCT_OfPieType(BYTE type, long length, void* poResult);
private: int ReadCT_custSplit(BYTE type, long length, void* poResult);
private: int ReadCT_OfPieChart(BYTE type, long length, void* poResult);
private: int ReadCT_PieSer(BYTE type, long length, void* poResult);
private: int ReadCT_GapAmount(BYTE type, long length, void* poResult);
private: int ReadCT_Bar3DChart(BYTE type, long length, void* poResult);
private: int ReadCT_BarDir(BYTE type, long length, void* poResult);
private: int ReadCT_BarGrouping(BYTE type, long length, void* poResult);
private: int ReadCT_BarSer(BYTE type, long length, void* poResult);
private: int ReadCT_Shape(BYTE type, long length, void* poResult);
private: int ReadCT_Overlap(BYTE type, long length, void* poResult);
private: int ReadCT_BarChart(BYTE type, long length, void* poResult);
private: int ReadCT_HoleSize(BYTE type, long length, void* poResult);
private: int ReadCT_DoughnutChart(BYTE type, long length, void* poResult);
private: int ReadCT_FirstSliceAng(BYTE type, long length, void* poResult);
private: int ReadCT_Pie3DChart(BYTE type, long length, void* poResult);
private: int ReadCT_PieChart(BYTE type, long length, void* poResult);
private: int ReadCT_ScatterSer(BYTE type, long length, void* poResult);
private: int ReadCT_ScatterStyle(BYTE type, long length, void* poResult);
private: int ReadCT_ScatterChart(BYTE type, long length, void* poResult);
private: int ReadCT_RadarSer(BYTE type, long length, void* poResult);
private: int ReadCT_RadarStyle(BYTE type, long length, void* poResult);
private: int ReadCT_RadarChart(BYTE type, long length, void* poResult);
private: int ReadCT_StockChart(BYTE type, long length, void* poResult);
private: int ReadCT_LineSer(BYTE type, long length, void* poResult);
private: int ReadCT_UpDownBars(BYTE type, long length, void* poResult);
private: int ReadCT_UpDownBar(BYTE type, long length, void* poResult);
private: int ReadCT_Line3DChart(BYTE type, long length, void* poResult);
private: int ReadCT_Grouping(BYTE type, long length, void* poResult);
private: int ReadCT_LineChart(BYTE type, long length, void* poResult);
private: int ReadCT_Area3DChart(BYTE type, long length, void* poResult);
private: int ReadCT_AreaSer(BYTE type, long length, void* poResult);
private: int ReadCT_AreaChart(BYTE type, long length, void* poResult);
private: int ReadCT_PlotArea(BYTE type, long length, void* poResult);
private: int ReadCT_Thickness(BYTE type, long length, void* poResult);
private: int ReadCT_Surface(BYTE type, long length, void* poResult);
private: int ReadCT_Perspective(BYTE type, long length, void* poResult);
private: int ReadCT_DepthPercent(BYTE type, long length, void* poResult);
private: int ReadCT_RotY(BYTE type, long length, void* poResult);
private: int ReadCT_HPercent(BYTE type, long length, void* poResult);
private: int ReadCT_RotX(BYTE type, long length, void* poResult);
private: int ReadCT_View3D(BYTE type, long length, void* poResult);
private: int ReadCT_PivotFmt(BYTE type, long length, void* poResult);
private: int ReadCT_pivotFmts(BYTE type, long length, void* poResult);
private: int ReadCT_Chart(BYTE type, long length, void* poResult);
private: int ReadCT_Protection(BYTE type, long length, void* poResult);
private: int ReadCT_PivotSource(BYTE type, long length, void* poResult);
private: int ReadCT_Style1(BYTE type, long length, void* poResult);
private: int ReadCT_Style(BYTE type, long length, void* poResult);
private: int ReadCT_TextLanguageID(BYTE type, long length, void* poResult);
private: int ReadAlternateContent(BYTE type, long length, void* poResult);
private: int ReadAlternateContentChoice(BYTE type, long length, void* poResult);
private: int ReadAlternateContentFallback(BYTE type, long length, void* poResult);
};
class BinaryChartWriter
{
BinaryCommonWriter m_oBcw;
NSBinPptxRW::CDrawingConverter* m_pOfficeDrawingConverter;
public:
BinaryChartWriter(NSBinPptxRW::CBinaryFileWriter &oCBufferedStream, NSBinPptxRW::CDrawingConverter* pOfficeDrawingConverter);
private: void GetRecordBinary(int nType, CString& sXml, int nRecordType);
private: void GetTxBodyBinary(int nType, CString& sXml);
public: void WriteCT_extLst(CT_extLst& oVal);
public: void WriteCT_ChartSpace(OOX::Spreadsheet::CChartSpace& ChartSpace);
public: void WriteCT_Boolean(CT_Boolean& oVal);
public: void WriteCT_RelId(CT_RelId& oVal);
public: void WriteCT_PageSetup(CT_PageSetup& oVal);
public: void WriteCT_PageMargins(CT_PageMargins& oVal);
public: void WriteCT_HeaderFooter(CT_HeaderFooter& oVal);
public: void WriteCT_PrintSettings(CT_PrintSettings& oVal);
public: void WriteCT_ExternalData(CT_ExternalData& oVal);
public: void WriteCT_DispBlanksAs(CT_DispBlanksAs& oVal);
public: void WriteCT_LegendEntry(CT_LegendEntry& oVal);
public: void WriteCT_UnsignedInt(CT_UnsignedInt& oVal);
public: void WriteCT_Extension(CT_Extension& oVal);
public: void WriteCT_LegendPos(CT_LegendPos& oVal);
public: void WriteCT_Legend(CT_Legend& oVal);
public: void WriteCT_Layout(CT_Layout& oVal);
public: void WriteCT_ManualLayout(CT_ManualLayout& oVal);
public: void WriteCT_LayoutTarget(CT_LayoutTarget& oVal);
public: void WriteCT_LayoutMode(CT_LayoutMode& oVal);
public: void WriteCT_Double(CT_Double& oVal);
public: void WriteCT_DTable(CT_DTable& oVal);
public: void WriteCT_SerAx(CT_SerAx& oVal);
public: void WriteCT_Scaling(CT_Scaling& oVal);
public: void WriteCT_LogBase(CT_LogBase& oVal);
public: void WriteCT_Orientation(CT_Orientation& oVal);
public: void WriteCT_AxPos(CT_AxPos& oVal);
public: void WriteCT_ChartLines(CT_ChartLines& oVal);
public: void WriteCT_Title(CT_Title& oVal);
public: void WriteCT_Tx(CT_Tx& oVal);
public: void WriteCT_StrRef(CT_StrRef& oVal);
public: void WriteCT_StrData(CT_StrData& oVal);
public: void WriteCT_StrVal(CT_StrVal& oVal);
public: void WriteCT_NumFmt(CT_NumFmt& oVal);
public: void WriteCT_TickMark(CT_TickMark& oVal);
public: void WriteCT_TickLblPos(CT_TickLblPos& oVal);
public: void WriteCT_Crosses(CT_Crosses& oVal);
public: void WriteCT_Skip(CT_Skip& oVal);
public: void WriteCT_TimeUnit(CT_TimeUnit& oVal);
public: void WriteCT_DateAx(CT_DateAx& oVal);
public: void WriteCT_LblOffset(CT_LblOffset& oVal);
public: void WriteCT_AxisUnit(CT_AxisUnit& oVal);
public: void WriteCT_LblAlgn(CT_LblAlgn& oVal);
public: void WriteCT_CatAx(CT_CatAx& oVal);
public: void WriteCT_DispUnitsLbl(CT_DispUnitsLbl& oVal);
public: void WriteCT_BuiltInUnit(CT_BuiltInUnit& oVal);
public: void WriteCT_DispUnits(CT_DispUnits& oVal);
public: void WriteCT_CrossBetween(CT_CrossBetween& oVal);
public: void WriteCT_ValAx(CT_ValAx& oVal);
public: void WriteCT_SizeRepresents(CT_SizeRepresents& oVal);
public: void WriteCT_BubbleScale(CT_BubbleScale& oVal);
public: void WriteCT_BubbleSer(CT_BubbleSer& oVal);
public: void WriteCT_SerTx(CT_SerTx& oVal);
public: void WriteCT_DPt(CT_DPt& oVal);
public: void WriteCT_Marker(CT_Marker& oVal);
public: void WriteCT_MarkerStyle(CT_MarkerStyle& oVal);
public: void WriteCT_MarkerSize(CT_MarkerSize& oVal);
public: void WriteCT_PictureOptions(CT_PictureOptions& oVal);
public: void WriteCT_PictureFormat(CT_PictureFormat& oVal);
public: void WriteCT_PictureStackUnit(CT_PictureStackUnit& oVal);
public: void WriteCT_DLbls(CT_DLbls& oVal);
private: void toBin(ItemsChoiceType3 eType, void* pVal);
public: void WriteCT_DLbl(CT_DLbl& oVal);
private: void toBin(ItemsChoiceType4 eType, void* pVal);
public: void WriteCT_DLblPos(CT_DLblPos& oVal);
public: void WriteCT_Trendline(CT_Trendline& oVal);
public: void WriteCT_TrendlineType(CT_TrendlineType& oVal);
public: void WriteCT_Order(CT_Order& oVal);
public: void WriteCT_Period(CT_Period& oVal);
public: void WriteCT_TrendlineLbl(CT_TrendlineLbl& oVal);
public: void WriteCT_ErrBars(CT_ErrBars& oVal);
public: void WriteCT_ErrDir(CT_ErrDir& oVal);
public: void WriteCT_ErrBarType(CT_ErrBarType& oVal);
public: void WriteCT_ErrValType(CT_ErrValType& oVal);
public: void WriteCT_NumDataSource(CT_NumDataSource& oVal);
public: void WriteCT_NumData(CT_NumData& oVal);
public: void WriteCT_NumVal(CT_NumVal& oVal);
public: void WriteCT_NumRef(CT_NumRef& oVal);
public: void WriteCT_AxDataSource(CT_AxDataSource& oVal);
public: void WriteCT_MultiLvlStrRef(CT_MultiLvlStrRef& oVal);
public: void WriteCT_lvl(CT_lvl& oVal);
public: void WriteCT_MultiLvlStrData(CT_MultiLvlStrData& oVal);
public: void WriteCT_BubbleChart(CT_BubbleChart& oVal);
public: void WriteCT_bandFmts(CT_bandFmts& oVal);
public: void WriteCT_Surface3DChart(CT_Surface3DChart& oVal);
public: void WriteCT_SurfaceSer(CT_SurfaceSer& oVal);
public: void WriteCT_BandFmt(CT_BandFmt& oVal);
public: void WriteCT_SurfaceChart(CT_SurfaceChart& oVal);
public: void WriteCT_SecondPieSize(CT_SecondPieSize& oVal);
public: void WriteCT_SplitType(CT_SplitType& oVal);
public: void WriteCT_OfPieType(CT_OfPieType& oVal);
public: void WriteCT_custSplit(CT_custSplit& oVal);
public: void WriteCT_OfPieChart(CT_OfPieChart& oVal);
public: void WriteCT_PieSer(CT_PieSer& oVal);
public: void WriteCT_GapAmount(CT_GapAmount& oVal);
public: void WriteCT_Bar3DChart(CT_Bar3DChart& oVal);
public: void WriteCT_BarDir(CT_BarDir& oVal);
public: void WriteCT_BarGrouping(CT_BarGrouping& oVal);
public: void WriteCT_BarSer(CT_BarSer& oVal);
public: void WriteCT_Shape(CT_Shape& oVal);
public: void WriteCT_Overlap(CT_Overlap& oVal);
public: void WriteCT_BarChart(CT_BarChart& oVal);
public: void WriteCT_HoleSize(CT_HoleSize& oVal);
public: void WriteCT_DoughnutChart(CT_DoughnutChart& oVal);
public: void WriteCT_FirstSliceAng(CT_FirstSliceAng& oVal);
public: void WriteCT_Pie3DChart(CT_Pie3DChart& oVal);
public: void WriteCT_PieChart(CT_PieChart& oVal);
public: void WriteCT_ScatterSer(CT_ScatterSer& oVal);
public: void WriteCT_ScatterStyle(CT_ScatterStyle& oVal);
public: void WriteCT_ScatterChart(CT_ScatterChart& oVal);
public: void WriteCT_RadarSer(CT_RadarSer& oVal);
public: void WriteCT_RadarStyle(CT_RadarStyle& oVal);
public: void WriteCT_RadarChart(CT_RadarChart& oVal);
public: void WriteCT_StockChart(CT_StockChart& oVal);
public: void WriteCT_LineSer(CT_LineSer& oVal);
public: void WriteCT_UpDownBars(CT_UpDownBars& oVal);
public: void WriteCT_UpDownBar(CT_UpDownBar& oVal);
public: void WriteCT_Line3DChart(CT_Line3DChart& oVal);
public: void WriteCT_Grouping(CT_Grouping& oVal);
public: void WriteCT_LineChart(CT_LineChart& oVal);
public: void WriteCT_Area3DChart(CT_Area3DChart& oVal);
public: void WriteCT_AreaSer(CT_AreaSer& oVal);
public: void WriteCT_AreaChart(CT_AreaChart& oVal);
public: void WriteCT_PlotArea(CT_PlotArea& oVal);
private: void toBin(ItemsChoiceType5 eType, void* pVal);
private: void toBin(ItemsChoiceType6 eType, void* pVal);
public: void WriteCT_Thickness(CT_Thickness& oVal);
public: void WriteCT_Surface(CT_Surface& oVal);
public: void WriteCT_Perspective(CT_Perspective& oVal);
public: void WriteCT_DepthPercent(CT_DepthPercent& oVal);
public: void WriteCT_RotY(CT_RotY& oVal);
public: void WriteCT_HPercent(CT_HPercent& oVal);
public: void WriteCT_RotX(CT_RotX& oVal);
public: void WriteCT_View3D(CT_View3D& oVal);
public: void WriteCT_PivotFmt(CT_PivotFmt& oVal);
public: void WriteCT_pivotFmts(CT_pivotFmts& oVal);
public: void WriteCT_Chart(CT_Chart& oVal);
public: void WriteCT_Protection(CT_Protection& oVal);
public: void WriteCT_PivotSource(CT_PivotSource& oVal);
public: void WriteCT_Style1(CT_Style1& oVal);
public: void WriteCT_Style(CT_Style& oVal);
public: void WriteCT_TextLanguageID(CT_TextLanguageID& oVal);
public: void WriteAlternateContent(AlternateContent& oVal);
public: void WriteAlternateContentChoice(AlternateContentChoice& oVal);
public: void WriteAlternateContentFallback(AlternateContentFallback& oVal);
};
}
#endif // #ifndef CHART_FROM_TO_BINARY
//#include "stdafx.h"
#include "CommonWriter.h"
#include "../Common/BinReaderWriterDefines.h"
namespace BinXlsxRW {
BinaryCommonWriter::BinaryCommonWriter(NSBinPptxRW::CBinaryFileWriter &oCBufferedStream):m_oStream(oCBufferedStream)
{
}
int BinaryCommonWriter::WriteItemStart(BYTE type)
{
//type
m_oStream.WriteBYTE(type);
return WriteItemWithLengthStart();
}
void BinaryCommonWriter::WriteItemEnd(int nStart)
{
WriteItemWithLengthEnd(nStart);
}
int BinaryCommonWriter::WriteItemWithLengthStart()
{
//
int nStartPos = m_oStream.GetPosition();
m_oStream.Skip(4);
return nStartPos;
}
void BinaryCommonWriter::WriteItemWithLengthEnd(int nStart)
{
//Length
int nEnd = m_oStream.GetPosition();
m_oStream.SetPosition(nStart);
m_oStream.WriteLONG(nEnd - nStart - 4);
m_oStream.SetPosition(nEnd);
}
void BinaryCommonWriter::WriteColor(const OOX::Spreadsheet::CColor& color, OOX::Spreadsheet::CIndexedColors* pIndexedColors, OOX::CTheme* theme)
{
if(color.m_oAuto.IsInit() && color.m_oAuto->ToBool())
{
m_oStream.WriteBYTE(c_oSer_ColorObjectType::Type);
m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
m_oStream.WriteBYTE(c_oSer_ColorType::Auto);
}
else
{
bool bEmpty = true;
SimpleTypes::Spreadsheet::CHexColor oRgbColor;
if(color.m_oIndexed.IsInit())
{
int nIndex = (int)color.m_oIndexed->GetValue();
if(NULL != pIndexedColors && nIndex < pIndexedColors->m_arrItems.size())
{
OOX::Spreadsheet::CRgbColor* pRgbColor = pIndexedColors->m_arrItems[nIndex];
if(pRgbColor->m_oRgb.IsInit())
{
bEmpty = false;
oRgbColor = pRgbColor->m_oRgb.get();
}
}
else
{
unsigned char ucA;
unsigned char ucR;
unsigned char ucG;
unsigned char ucB;
if(OOX::Spreadsheet::CIndexedColors::GetDefaultRGBAByIndex(nIndex, ucR, ucG, ucB, ucA))
{
bEmpty = false;
oRgbColor.Set_A(ucA);
oRgbColor.Set_R(ucR);
oRgbColor.Set_G(ucG);
oRgbColor.Set_B(ucB);
}
}
}
else if(color.m_oRgb.IsInit())
{
bEmpty = false;
oRgbColor = color.m_oRgb.get();
}
if(color.m_oThemeColor.IsInit())
{
m_oStream.WriteBYTE(c_oSer_ColorObjectType::Theme);
m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
m_oStream.WriteBYTE((BYTE)color.m_oThemeColor->GetValue());
}
if(color.m_oTint.IsInit())
{
m_oStream.WriteBYTE(c_oSer_ColorObjectType::Tint);
m_oStream.WriteBYTE(c_oSerPropLenType::Double);
m_oStream.WriteDoubleReal(color.m_oTint->GetValue());
}
if(!bEmpty)
{
m_oStream.WriteBYTE(c_oSer_ColorObjectType::Rgb);
m_oStream.WriteBYTE(c_oSerPropLenType::Long);
m_oStream.WriteLONG(oRgbColor.ToInt());
}
}
}
void BinaryCommonWriter::WriteBytesArray(BYTE* pData, long nDataSize)
{
int nCurPos = WriteItemWithLengthStart();
m_oStream.WriteBYTEArray(pData, nDataSize);
WriteItemWithLengthEnd(nCurPos);
}
}
\ No newline at end of file
#ifndef COMMON_WRITER
#define COMMON_WRITER
#include "../../ASCOfficePPTXFile/Editor/BinaryFileReaderWriter.h"
#include "../../Common/DocxFormat/Source/XlsxFormat/Xlsx.h"
namespace BinXlsxRW {
class BinaryCommonWriter
{
public:
NSBinPptxRW::CBinaryFileWriter &m_oStream;
BinaryCommonWriter(NSBinPptxRW::CBinaryFileWriter &oCBufferedStream);
int WriteItemStart(BYTE type);
void WriteItemEnd(int nStart);
int WriteItemWithLengthStart();
void WriteItemWithLengthEnd(int nStart);
void WriteColor(const OOX::Spreadsheet::CColor& color, OOX::Spreadsheet::CIndexedColors* pIndexedColors, OOX::CTheme* theme);
void WriteBytesArray(BYTE* pData, long nDataSize);
};
}
#endif // #ifndef COMMON_WRITER
\ No newline at end of file
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by XlsxSerializerCom.rc
//
#define IDS_PROJNAME 100
#define IDR_XLSXSERIALIZERCOM 101
#define IDB_DEFAULT_XLSX_THEME 201
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 201
#define _APS_NEXT_COMMAND_VALUE 32768
#define _APS_NEXT_CONTROL_VALUE 201
#define _APS_NEXT_SYMED_VALUE 102
#endif
#endif
#ifndef BINARY_COMMON_READER
#define BINARY_COMMON_READER
#include "../../ASCOfficePPTXFile/Editor/BinaryFileReaderWriter.h"
#include "../../XlsxSerializerCom/Common/BinReaderWriterDefines.h"
namespace BinXlsxRW {
template <typename CallbackType >
class Binary_CommonReader
{
protected:
NSBinPptxRW::CBinaryFileReader& m_oBufferedStream;
typedef int (CallbackType::*funcArg)(BYTE type, long length, void* arg);
public:
Binary_CommonReader(NSBinPptxRW::CBinaryFileReader& poBufferedStream):m_oBufferedStream(poBufferedStream)
{
}
int ReadTable(funcArg fReadFunction, void* poFuncObj, void* arg = NULL)
{
int res = c_oSerConstants::ReadOk;
//stLen
res = m_oBufferedStream.Peek(4) == false ? c_oSerConstants::ErrorStream : c_oSerConstants::ReadOk;
if(c_oSerConstants::ReadOk != res)
return res;
long stLen = m_oBufferedStream.GetLong();
// get
res = m_oBufferedStream.Peek(stLen) == false ? c_oSerConstants::ErrorStream : c_oSerConstants::ReadOk;
if(c_oSerConstants::ReadOk != res)
return res;
return Read1(stLen, fReadFunction, poFuncObj, arg);
}
int Read1(long stLen, funcArg fReadFunction, void* poFuncObj, void* arg = NULL)
{
int res = c_oSerConstants::ReadOk;
long stCurPos = 0;
long start_pos = m_oBufferedStream.GetPos();
while(stCurPos < stLen)
{
//stItem
BYTE type = m_oBufferedStream.GetUChar();
ULONG length = m_oBufferedStream.GetULong();
if (length + stCurPos > stLen)
{
// -
m_oBufferedStream.Seek(start_pos + stLen);
return c_oSerConstants::ReadOk;
}
res = (((CallbackType*)poFuncObj)->*fReadFunction)(type, length, arg);
if(res == c_oSerConstants::ReadUnknown && length > 0)
{
m_oBufferedStream.GetPointer(length);
res = c_oSerConstants::ReadOk;
}
else if(res != c_oSerConstants::ReadOk)
return res;
stCurPos += length + 5;
}
return res;
}
int Read2(long stLen, funcArg fReadFunction, void* poFuncObj, void* arg = NULL)
{
int res = c_oSerConstants::ReadOk;
long stCurPos = 0;
while(stCurPos < stLen)
{
//stItem
BYTE type = m_oBufferedStream.GetUChar();
long lenType = m_oBufferedStream.GetUChar();
int nCurPosShift = 2;
int nRealLen;
switch(lenType)
{
case c_oSerPropLenType::Null: nRealLen = 0;break;
case c_oSerPropLenType::Byte: nRealLen = 1;break;
case c_oSerPropLenType::Short: nRealLen = 2;break;
case c_oSerPropLenType::Three: nRealLen = 3;break;
case c_oSerPropLenType::Long: nRealLen = 4;break;
case c_oSerPropLenType::Double: nRealLen = 8;break;
case c_oSerPropLenType::Variable:
nRealLen = m_oBufferedStream.GetLong();
nCurPosShift += 4;
break;
default:return c_oSerConstants::ErrorUnknown;
}
res = (((CallbackType*)poFuncObj)->*fReadFunction)(type, nRealLen, arg);
if(res == c_oSerConstants::ReadUnknown)
{
m_oBufferedStream.GetPointer(nRealLen);
res = c_oSerConstants::ReadOk;
}
else if(res != c_oSerConstants::ReadOk)
return res;
stCurPos += nRealLen + nCurPosShift;
}
return res;
}
};
}
#endif // #ifndef BINARY_COMMON_READER
This source diff could not be displayed because it is too large. You can view the blob instead.
#include "CSVWriter.h"
#ifndef CP_UTF8
#define CP_UTF8 65001
#endif
namespace CSVWriter
{
void WriteFile(NSFile::CFileBinary *pFile, WCHAR **pWriteBuffer, INT &nCurrentIndex, CString &sWriteString, UINT &nCodePage, BOOL bIsEnd)
{
if (NULL == pFile || NULL == pWriteBuffer)
return;
INT nCountChars = sWriteString.GetLength();
if (0 == nCountChars && !bIsEnd)
return;
const INT c_nSize = 1048576; // 1024 * 1024
const INT nSizeWchar = sizeof(WCHAR);
if (NULL == *pWriteBuffer)
{
*pWriteBuffer = new WCHAR[c_nSize];
memset(*pWriteBuffer, 0, nSizeWchar * c_nSize);
nCurrentIndex = 0;
}
if (nCountChars + nCurrentIndex > c_nSize || bIsEnd)
{
// Буффер заполнился, пишем
if (nCodePage == CP_UTF16)
{
pFile->WriteFile((BYTE*)*pWriteBuffer, sizeof (WCHAR) * nCurrentIndex);
}
else
{
//todo
#if defined(_WIN32) || defined (_WIN64)
INT nSize = WideCharToMultiByte(nCodePage, 0, *pWriteBuffer, nCurrentIndex, NULL, NULL, NULL, NULL);
CHAR *pString = new CHAR [nSize];
memset(pString, 0, sizeof (CHAR) * nSize);
WideCharToMultiByte (nCodePage, 0, *pWriteBuffer, -1, pString, nSize, NULL, NULL);
pFile->WriteFile((BYTE*)pString, sizeof (CHAR) * nSize);
RELEASEARRAYOBJECTS(pString);
#else
BYTE* pUtf8 = NULL;
long nUtf8Size;
NSFile::CUtf8Converter::GetUtf8StringFromUnicode(*pWriteBuffer, nCurrentIndex, pUtf8, nUtf8Size);
pFile->WriteFile(pUtf8, nUtf8Size);
RELEASEARRAYOBJECTS(pUtf8);
#endif
}
memset(*pWriteBuffer, 0, nSizeWchar * c_nSize);
nCurrentIndex = 0;
}
if (!bIsEnd)
{
memcpy(*pWriteBuffer + nCurrentIndex, sWriteString.GetBuffer(), nCountChars * nSizeWchar);
nCurrentIndex += nCountChars;
}
}
void WriteFromXlsxToCsv(CString &sFileDst, OOX::Spreadsheet::CXlsx &oXlsx, UINT nCodePage, const WCHAR wcDelimiter, BOOL bJSON)
{
NSFile::CFileBinary oFile;
oFile.CreateFileW(string2std_string(sFileDst));
// Нужно записать шапку
if (CP_UTF8 == nCodePage)
{
BYTE arUTF8[3] = {0xEF, 0xBB, 0xBF};
oFile.WriteFile(arUTF8, 3);
}
else if (CP_UTF16 == nCodePage)
{
BYTE arUTF16[2] = {0xFF, 0xFE};
oFile.WriteFile(arUTF16, 2);
}
else if (CP_unicodeFFFE == nCodePage)
{
BYTE arBigEndian[2] = {0xFE, 0xFF};
oFile.WriteFile(arBigEndian, 2);
}
CString sNewLineN = _T("\n");
LONG lActiveSheet = 0;
INT nCurrentIndex = 0;
WCHAR *pWriteBuffer = NULL;
CString sSheetRId = _T("Sheet1"); // Читаем не по rId, а по имени листа
OOX::Spreadsheet::CWorkbook *pWorkbook = oXlsx.GetWorkbook();
if (NULL != pWorkbook)
{
// Get active sheet
if (pWorkbook->m_oBookViews.IsInit() && 0 < pWorkbook->m_oBookViews->m_arrItems.size())
{
if (pWorkbook->m_oBookViews->m_arrItems[0]->m_oActiveTab.IsInit())
{
lActiveSheet = pWorkbook->m_oBookViews->m_arrItems[0]->m_oActiveTab->GetValue();
if (0 > lActiveSheet)
lActiveSheet = 0;
}
}
// Get active sheet rId (для конвертации в CSV нужно использовать name, т.к. это наш бинарник из js-скриптов и еще нет rId
// А для json-а нужно пользовать rId, т.к. при открытии они используются
if (pWorkbook->m_oSheets.IsInit() && 0 <= pWorkbook->m_oSheets->m_arrItems.size())
{
OOX::Spreadsheet::CSheet *pSheet;
if (lActiveSheet <= pWorkbook->m_oSheets->m_arrItems.size())
pSheet = pWorkbook->m_oSheets->m_arrItems[lActiveSheet];
else
pSheet = pWorkbook->m_oSheets->m_arrItems[0];
sSheetRId = bJSON ? pSheet->m_oRid->GetValue() : pSheet->m_oName.get2();
}
std::map<CString, OOX::Spreadsheet::CWorksheet*> &arrWorksheets = oXlsx.GetWorksheets();
std::map<CString, OOX::Spreadsheet::CWorksheet*>::const_iterator pPair = arrWorksheets.find(sSheetRId);
if (pPair != arrWorksheets.end())
{
OOX::Spreadsheet::CWorksheet *pWorksheet = pPair->second;
if (NULL != pWorksheet && pWorksheet->m_oSheetData.IsInit())
{
OOX::Spreadsheet::CSharedStrings *pSharedStrings = oXlsx.GetSharedStrings();
CString sDelimiter = _T(""); sDelimiter += wcDelimiter;
CString sEscape = _T("\"\n");
sEscape += wcDelimiter;
CString sEndJson = CString(_T("]"));
CString sQuote = _T("\"");
CString sDoubleQuote = _T("\"\"");
CString sBkt = CString(_T("["));
CString sBktComma = _T(",[");
if (bJSON)
CSVWriter::WriteFile(&oFile, &pWriteBuffer, nCurrentIndex, sBkt, nCodePage);
INT nRowCurrent = 1;
for (INT i = 0; i < pWorksheet->m_oSheetData->m_arrItems.size(); ++i)
{
OOX::Spreadsheet::CRow *pRow = static_cast<OOX::Spreadsheet::CRow *>(pWorksheet->m_oSheetData->m_arrItems[i]);
INT nRow = pRow->m_oR.IsInit() ? pRow->m_oR->GetValue() : 0 == i ? nRowCurrent : nRowCurrent + 1;
if (bJSON)
CSVWriter::WriteFile(&oFile, &pWriteBuffer, nCurrentIndex, (0 == i ? sBkt: sBktComma), nCodePage);
else
{
while (nRow > nRowCurrent)
{
// Write new line
++nRowCurrent;
WriteFile(&oFile, &pWriteBuffer, nCurrentIndex, sNewLineN, nCodePage);
}
}
INT nColCurrent = 1;
BOOL bIsWriteCell = FALSE; // Нужно только для записи JSON-а
for (INT j = 0; j < pRow->m_arrItems.size(); ++j)
{
INT nRowTmp = 0;
INT nCol = 0;
if (!OOX::Spreadsheet::CWorksheet::parseRef(pRow->m_arrItems[j]->m_oRef.get2(), nRowTmp, nCol))
nCol = 0 == j ? nColCurrent : nColCurrent + 1;
while (nCol > nColCurrent)
{
if (bJSON && FALSE == bIsWriteCell)
{
// Запишем пустые строки (для JSON-а)
WriteFile(&oFile, &pWriteBuffer, nCurrentIndex, sDoubleQuote, nCodePage);
}
// Write delimiter
++nColCurrent;
WriteFile(&oFile, &pWriteBuffer, nCurrentIndex, sDelimiter, nCodePage);
bIsWriteCell = FALSE;
}
OOX::Spreadsheet::CCell *pCell = static_cast<OOX::Spreadsheet::CCell *>(pRow->m_arrItems[j]);
// Get cell value
CString sCellValue = _T("");
if (pCell->m_oValue.IsInit())
{
if (pCell->m_oType.IsInit() && SimpleTypes::Spreadsheet::celltypeNumber != pCell->m_oType->GetValue())
{
int nValue = _wtoi(pCell->m_oValue->ToString());
if (0 <= nValue && nValue < pSharedStrings->m_arrItems.size())
{
OOX::Spreadsheet::CSi *pSi = static_cast<OOX::Spreadsheet::CSi *>(pSharedStrings->m_arrItems[nValue]);
if (NULL != pSi && pSi->m_arrItems.size() > 0)
if(NULL != pSi && pSi->m_arrItems.size() > 0)
{
OOX::Spreadsheet::WritingElement* pWe = pSi->m_arrItems[0];
if(OOX::Spreadsheet::et_t == pWe->getType())
{
OOX::Spreadsheet::CText* pText = static_cast<OOX::Spreadsheet::CText*>(pWe);
sCellValue = pText->m_sText;
}
}
}
}
else
{
sCellValue = pCell->m_oValue->ToString();
}
}
// Escape cell value
if (bJSON || -1 != sCellValue.FindOneOf(sEscape))
{
sCellValue.Replace(sQuote, sDoubleQuote);
sCellValue = sQuote + sCellValue + sQuote;
}
// Write cell value
WriteFile(&oFile, &pWriteBuffer, nCurrentIndex, sCellValue, nCodePage);
bIsWriteCell = TRUE;
}
if (bJSON)
WriteFile(&oFile, &pWriteBuffer, nCurrentIndex, sEndJson, nCodePage);
}
if (bJSON)
{
WriteFile(&oFile, &pWriteBuffer, nCurrentIndex, sEndJson, nCodePage);
WriteFile(&oFile, &pWriteBuffer, nCurrentIndex, sEndJson, nCodePage, TRUE);
}
}
}
}
// Теперь мы пишем как MS Excel (новую строку записываем в файл)
if (!bJSON)
{
WriteFile(&oFile, &pWriteBuffer, nCurrentIndex, sNewLineN, nCodePage);
WriteFile(&oFile, &pWriteBuffer, nCurrentIndex, sNewLineN, nCodePage, TRUE);
}
RELEASEARRAYOBJECTS(pWriteBuffer);
oFile.CloseFile();
}
}
#ifndef CSV_WRITER
#define CSV_WRITER
#define CP_UTF16 1200
#define CP_unicodeFFFE 1201
#if defined(_WIN32) || defined (_WIN64)
#include <atlbase.h>
#include <atlstr.h>
#else
#include "../../Common/DocxFormat/Source/Base/ASCString.h"
#endif
#include "../../DesktopEditor/common/File.h"
#include "../../Common/DocxFormat/Source/XlsxFormat/Xlsx.h"
namespace CSVWriter
{
void WriteFile(NSFile::CFileBinary *pFile, WCHAR **pWriteBuffer, INT &nCurrentIndex, CString &sWriteString, UINT &nCodePage, BOOL bIsEnd = FALSE);
void WriteFromXlsxToCsv(CString &sFileDst, OOX::Spreadsheet::CXlsx &oXlsx, UINT nCodePage, const WCHAR wcDelimiter, BOOL bJSON);
}
#endif //CSV_WRITER
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
// XlsxSerializerCom.cpp : Implementation of DLL Exports.
#include "stdafx.h"
#include "resource.h"
#include "ASCOfficeXlsxSerizer.h"
// The module attribute causes DllMain, DllRegisterServer and DllUnregisterServer to be automatically implemented for you
[ module(dll, uuid = "{E4E17295-6FF8-4bac-B4C2-E17D72111035}",
name = "XlsxSerializerCom",
helpstring = "XlsxSerializerCom 1.0 Type Library",
resource_name = "IDR_XLSXSERIALIZERCOM") ]
class CXlsxSerializerComModule
{
public:
// Override CAtlDllModuleT members
};
//Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#define COMPONENT_NAME "XlsxSerializerCom"
#include "winres.h"
#include "version.h"
#include "../Common/FileInfo.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS)
LANGUAGE 25, 1
#pragma code_page(1251)
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
BEGIN
"#include ""winres.h""\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
#ifndef _MAC
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION INTVER
PRODUCTVERSION INTVER
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x2L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904e4"
BEGIN
VALUE "CompanyName", COMPANY_NAME
VALUE "FileDescription", FILE_DESCRIPTION_ACTIVEX
VALUE "FileVersion", STRVER
VALUE "InternalName", FILE_DESCRIPTION_ACTIVEX
VALUE "LegalCopyright", LEGAL_COPYRIGHT
VALUE "LegalTrademarks", COMPANY_NAME
VALUE "OriginalFilename", COMPONENT_FILE_NAME_DLL
VALUE "ProductName", FILE_DESCRIPTION_ACTIVEX
VALUE "ProductVersion", STRVER
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x0409, 1252
END
END
#endif // !_MAC
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE
BEGIN
IDS_PROJNAME "XlsxSerializerCom"
END
IDR_XLSXSERIALIZERCOM REGISTRY "XlsxSerializerCom.rgs"
////////////////////////////////////////////////////////////////////////////
#endif
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
HKCR
{
NoRemove AppID
{
'%APPID%' = s 'XlsxSerializerCom'
'XlsxSerializerCom.DLL'
{
val AppID = s '%APPID%'
}
}
}

Microsoft Visual Studio Solution File, Format Version 9.00
# Visual Studio 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XlsxSerializerCom", "XlsxSerializerCom.vcproj", "{87476A4D-6A42-44E9-A947-42B8E8613070}"
ProjectSection(ProjectDependencies) = postProject
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53} = {D02A88E6-5B2B-4A15-A4F6-C057F698FC53}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DocxFormat", "..\Common\DocxFormat\Projects\DocxFormat2005.vcproj", "{A100103A-353E-45E8-A9B8-90B87CC5C0B0}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PPTXFormat", "..\ASCOfficePPTXFile\PPTXLib\PPTXFormat.vcproj", "{36636678-AE25-4BE6-9A34-2561D1BCF302}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ASCOfficeDocxFile2", "..\ASCOfficeDocxFile2\ASCOfficeDocxFile2_staticLib.vcproj", "{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}"
ProjectSection(ProjectDependencies) = postProject
{36636678-AE25-4BE6-9A34-2561D1BCF302} = {36636678-AE25-4BE6-9A34-2561D1BCF302}
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6} = {3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}
{C739151F-5384-41DF-A1A6-F089E2C1AD56} = {C739151F-5384-41DF-A1A6-F089E2C1AD56}
{DC24710E-8DF2-4A7A-B7C3-2313E294143C} = {DC24710E-8DF2-4A7A-B7C3-2313E294143C}
{A100103A-353E-45E8-A9B8-90B87CC5C0B0} = {A100103A-353E-45E8-A9B8-90B87CC5C0B0}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ASCHTMLRenderer", "..\ASCHTMLRenderer\ASCHTMLRendererLib.vcproj", "{DC24710E-8DF2-4A7A-B7C3-2313E294143C}"
ProjectSection(ProjectDependencies) = postProject
{0588563C-F05C-428C-B21A-DD74756628B3} = {0588563C-F05C-428C-B21A-DD74756628B3}
{9A037A69-D1DF-4505-AB2A-6CB3641C476E} = {9A037A69-D1DF-4505-AB2A-6CB3641C476E}
{40A69F40-063E-43FD-8543-455495D8733E} = {40A69F40-063E-43FD-8543-455495D8733E}
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239} = {764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD} = {617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}
{BC52A07C-A797-423D-8C4F-8678805BBB36} = {BC52A07C-A797-423D-8C4F-8678805BBB36}
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2} = {37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B} = {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}
{818753F2-DBB9-4D3B-898A-A604309BE470} = {818753F2-DBB9-4D3B-898A-A604309BE470}
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D} = {FFDA5DA1-BB65-4695-B678-BE59B4A1355D}
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540} = {9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7} = {43A0E60E-5C4A-4C09-A29B-7683F503BBD7}
{DF861D33-9BC1-418C-82B1-581F590FE169} = {DF861D33-9BC1-418C-82B1-581F590FE169}
{C739151F-5384-41DF-A1A6-F089E2C1AD56} = {C739151F-5384-41DF-A1A6-F089E2C1AD56}
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81} = {7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "font_engine", "..\DesktopEditor\fontengine\font_engine_vs2005.vcproj", "{C739151F-5384-41DF-A1A6-F089E2C1AD56}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cximage", "..\DesktopEditor\cximage\CxImage\cximage_vs2005.vcproj", "{BC52A07C-A797-423D-8C4F-8678805BBB36}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "agg2d", "..\DesktopEditor\agg-2.4\agg_vs2005.vcproj", "{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "graphics", "..\DesktopEditor\graphics\graphics_vs2005.vcproj", "{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "raster", "..\DesktopEditor\raster\raster_vs2005.vcproj", "{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "freetype", "..\DesktopEditor\freetype-2.5.2\builds\windows\vc2005\freetype.vcproj", "{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}"
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}") = "png", "..\DesktopEditor\cximage\png\png_vs2005.vcproj", "{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}"
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}") = "tiff", "..\DesktopEditor\cximage\tiff\Tiff_vs2005.vcproj", "{0588563C-F05C-428C-B21A-DD74756628B3}"
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}") = "jbig", "..\DesktopEditor\cximage\jbig\jbig_vs2005.vcproj", "{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}"
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}") = "libdcr", "..\DesktopEditor\cximage\raw\libdcr_vs2005.vcproj", "{DF861D33-9BC1-418C-82B1-581F590FE169}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "..\DesktopEditor\cximage\zlib\zlib_vs2005.vcproj", "{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libpsd", "..\DesktopEditor\cximage\libpsd\libpsd_vs2005.vcproj", "{9A037A69-D1DF-4505-AB2A-6CB3641C476E}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug Multithreaded|Win32 = Debug Multithreaded|Win32
Debug Multithreaded|x64 = Debug Multithreaded|x64
Debug Singlethreaded|Win32 = Debug Singlethreaded|Win32
Debug Singlethreaded|x64 = Debug Singlethreaded|x64
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Release Multithreaded|Win32 = Release Multithreaded|Win32
Release Multithreaded|x64 = Release Multithreaded|x64
Release Singlethreaded|Win32 = Release Singlethreaded|Win32
Release Singlethreaded|x64 = Release Singlethreaded|x64
Release|Win32 = Release|Win32
Release|x64 = Release|x64
ReleaseASC|Win32 = ReleaseASC|Win32
ReleaseASC|x64 = ReleaseASC|x64
ReleaseOpenSource|Win32 = ReleaseOpenSource|Win32
ReleaseOpenSource|x64 = ReleaseOpenSource|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
{87476A4D-6A42-44E9-A947-42B8E8613070}.Debug Multithreaded|Win32.ActiveCfg = Debug|Win32
{87476A4D-6A42-44E9-A947-42B8E8613070}.Debug Multithreaded|Win32.Build.0 = Debug|Win32
{87476A4D-6A42-44E9-A947-42B8E8613070}.Debug Multithreaded|x64.ActiveCfg = Debug|Win32
{87476A4D-6A42-44E9-A947-42B8E8613070}.Debug Singlethreaded|Win32.ActiveCfg = Debug|Win32
{87476A4D-6A42-44E9-A947-42B8E8613070}.Debug Singlethreaded|Win32.Build.0 = Debug|Win32
{87476A4D-6A42-44E9-A947-42B8E8613070}.Debug Singlethreaded|x64.ActiveCfg = Debug|Win32
{87476A4D-6A42-44E9-A947-42B8E8613070}.Debug|Win32.ActiveCfg = Debug|Win32
{87476A4D-6A42-44E9-A947-42B8E8613070}.Debug|Win32.Build.0 = Debug|Win32
{87476A4D-6A42-44E9-A947-42B8E8613070}.Debug|x64.ActiveCfg = Debug|Win32
{87476A4D-6A42-44E9-A947-42B8E8613070}.Release Multithreaded|Win32.ActiveCfg = ReleaseOpenSource|Win32
{87476A4D-6A42-44E9-A947-42B8E8613070}.Release Multithreaded|Win32.Build.0 = ReleaseOpenSource|Win32
{87476A4D-6A42-44E9-A947-42B8E8613070}.Release Multithreaded|x64.ActiveCfg = ReleaseOpenSource|Win32
{87476A4D-6A42-44E9-A947-42B8E8613070}.Release Singlethreaded|Win32.ActiveCfg = ReleaseOpenSource|Win32
{87476A4D-6A42-44E9-A947-42B8E8613070}.Release Singlethreaded|Win32.Build.0 = ReleaseOpenSource|Win32
{87476A4D-6A42-44E9-A947-42B8E8613070}.Release Singlethreaded|x64.ActiveCfg = ReleaseOpenSource|Win32
{87476A4D-6A42-44E9-A947-42B8E8613070}.Release|Win32.ActiveCfg = Release|Win32
{87476A4D-6A42-44E9-A947-42B8E8613070}.Release|Win32.Build.0 = Release|Win32
{87476A4D-6A42-44E9-A947-42B8E8613070}.Release|x64.ActiveCfg = Release|Win32
{87476A4D-6A42-44E9-A947-42B8E8613070}.ReleaseASC|Win32.ActiveCfg = ReleaseOpenSource|Win32
{87476A4D-6A42-44E9-A947-42B8E8613070}.ReleaseASC|Win32.Build.0 = ReleaseOpenSource|Win32
{87476A4D-6A42-44E9-A947-42B8E8613070}.ReleaseASC|x64.ActiveCfg = ReleaseOpenSource|Win32
{87476A4D-6A42-44E9-A947-42B8E8613070}.ReleaseOpenSource|Win32.ActiveCfg = ReleaseOpenSource|Win32
{87476A4D-6A42-44E9-A947-42B8E8613070}.ReleaseOpenSource|Win32.Build.0 = ReleaseOpenSource|Win32
{87476A4D-6A42-44E9-A947-42B8E8613070}.ReleaseOpenSource|x64.ActiveCfg = ReleaseOpenSource|Win32
{87476A4D-6A42-44E9-A947-42B8E8613070}.Unicode Debug|Win32.ActiveCfg = Debug|Win32
{87476A4D-6A42-44E9-A947-42B8E8613070}.Unicode Debug|Win32.Build.0 = Debug|Win32
{87476A4D-6A42-44E9-A947-42B8E8613070}.Unicode Debug|x64.ActiveCfg = Debug|Win32
{87476A4D-6A42-44E9-A947-42B8E8613070}.Unicode Release|Win32.ActiveCfg = Release|Win32
{87476A4D-6A42-44E9-A947-42B8E8613070}.Unicode Release|Win32.Build.0 = Release|Win32
{87476A4D-6A42-44E9-A947-42B8E8613070}.Unicode Release|x64.ActiveCfg = Release|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Debug Multithreaded|Win32.ActiveCfg = Debug|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Debug Multithreaded|Win32.Build.0 = Debug|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Debug Multithreaded|x64.ActiveCfg = Debug|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Debug Singlethreaded|Win32.ActiveCfg = Debug|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Debug Singlethreaded|Win32.Build.0 = Debug|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Debug Singlethreaded|x64.ActiveCfg = Debug|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Debug|Win32.ActiveCfg = Debug|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Debug|Win32.Build.0 = Debug|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Debug|x64.ActiveCfg = Debug|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Release Multithreaded|Win32.ActiveCfg = ReleaseOpenSource|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Release Multithreaded|Win32.Build.0 = ReleaseOpenSource|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Release Multithreaded|x64.ActiveCfg = ReleaseOpenSource|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Release Singlethreaded|Win32.ActiveCfg = ReleaseOpenSource|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Release Singlethreaded|Win32.Build.0 = ReleaseOpenSource|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Release Singlethreaded|x64.ActiveCfg = ReleaseOpenSource|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Release|Win32.ActiveCfg = Release|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Release|Win32.Build.0 = Release|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Release|x64.ActiveCfg = Release|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.ReleaseASC|Win32.ActiveCfg = ReleaseOpenSource|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.ReleaseASC|Win32.Build.0 = ReleaseOpenSource|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.ReleaseASC|x64.ActiveCfg = ReleaseOpenSource|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.ReleaseOpenSource|Win32.ActiveCfg = ReleaseOpenSource|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.ReleaseOpenSource|Win32.Build.0 = ReleaseOpenSource|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.ReleaseOpenSource|x64.ActiveCfg = ReleaseOpenSource|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Unicode Debug|Win32.ActiveCfg = Debug|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Unicode Debug|Win32.Build.0 = Debug|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Unicode Debug|x64.ActiveCfg = Debug|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Unicode Release|Win32.ActiveCfg = Release|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Unicode Release|Win32.Build.0 = Release|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Unicode Release|x64.ActiveCfg = Release|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Debug Multithreaded|Win32.ActiveCfg = Debug|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Debug Multithreaded|Win32.Build.0 = Debug|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Debug Multithreaded|x64.ActiveCfg = Debug|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Debug Singlethreaded|Win32.ActiveCfg = Debug|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Debug Singlethreaded|Win32.Build.0 = Debug|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Debug Singlethreaded|x64.ActiveCfg = Debug|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Debug|Win32.ActiveCfg = Debug|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Debug|Win32.Build.0 = Debug|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Debug|x64.ActiveCfg = Debug|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Release Multithreaded|Win32.ActiveCfg = Release|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Release Multithreaded|Win32.Build.0 = Release|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Release Multithreaded|x64.ActiveCfg = Release|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Release Singlethreaded|Win32.ActiveCfg = Release|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Release Singlethreaded|Win32.Build.0 = Release|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Release Singlethreaded|x64.ActiveCfg = Release|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Release|Win32.ActiveCfg = Release|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Release|Win32.Build.0 = Release|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Release|x64.ActiveCfg = Release|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.ReleaseASC|Win32.ActiveCfg = Release|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.ReleaseASC|Win32.Build.0 = Release|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.ReleaseASC|x64.ActiveCfg = Release|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Unicode Debug|Win32.ActiveCfg = Debug|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Unicode Debug|Win32.Build.0 = Debug|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Unicode Debug|x64.ActiveCfg = Debug|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Unicode Release|Win32.ActiveCfg = Release|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Unicode Release|Win32.Build.0 = Release|Win32
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Unicode Release|x64.ActiveCfg = Release|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.Debug Multithreaded|Win32.ActiveCfg = Debug|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.Debug Multithreaded|Win32.Build.0 = Debug|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.Debug Multithreaded|x64.ActiveCfg = Debug|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.Debug Singlethreaded|Win32.ActiveCfg = Debug|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.Debug Singlethreaded|Win32.Build.0 = Debug|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.Debug Singlethreaded|x64.ActiveCfg = Debug|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.Debug|Win32.ActiveCfg = Debug|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.Debug|Win32.Build.0 = Debug|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.Debug|x64.ActiveCfg = Debug|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.Release Multithreaded|Win32.ActiveCfg = ReleaseOpenSource|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.Release Multithreaded|Win32.Build.0 = ReleaseOpenSource|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.Release Multithreaded|x64.ActiveCfg = ReleaseOpenSource|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.Release Singlethreaded|Win32.ActiveCfg = ReleaseOpenSource|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.Release Singlethreaded|Win32.Build.0 = ReleaseOpenSource|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.Release Singlethreaded|x64.ActiveCfg = ReleaseOpenSource|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.Release|Win32.ActiveCfg = Release|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.Release|Win32.Build.0 = Release|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.Release|x64.ActiveCfg = Release|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.ReleaseASC|Win32.ActiveCfg = ReleaseASC|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.ReleaseASC|Win32.Build.0 = ReleaseASC|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.ReleaseASC|x64.ActiveCfg = ReleaseASC|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.ReleaseOpenSource|Win32.ActiveCfg = ReleaseOpenSource|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.ReleaseOpenSource|Win32.Build.0 = ReleaseOpenSource|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.ReleaseOpenSource|x64.ActiveCfg = ReleaseOpenSource|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.Unicode Debug|Win32.ActiveCfg = Debug|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.Unicode Debug|Win32.Build.0 = Debug|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.Unicode Debug|x64.ActiveCfg = Debug|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.Unicode Release|Win32.ActiveCfg = Release|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.Unicode Release|Win32.Build.0 = Release|Win32
{D02A88E6-5B2B-4A15-A4F6-C057F698FC53}.Unicode Release|x64.ActiveCfg = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Debug Multithreaded|Win32.ActiveCfg = Debug|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Debug Multithreaded|Win32.Build.0 = Debug|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Debug Multithreaded|x64.ActiveCfg = Debug|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Debug Singlethreaded|Win32.ActiveCfg = Debug|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Debug Singlethreaded|Win32.Build.0 = Debug|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Debug Singlethreaded|x64.ActiveCfg = Debug|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Debug|Win32.ActiveCfg = Debug|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Debug|Win32.Build.0 = Debug|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Debug|x64.ActiveCfg = Debug|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Release Multithreaded|Win32.ActiveCfg = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Release Multithreaded|Win32.Build.0 = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Release Multithreaded|x64.ActiveCfg = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Release Singlethreaded|Win32.ActiveCfg = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Release Singlethreaded|Win32.Build.0 = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Release Singlethreaded|x64.ActiveCfg = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Release|Win32.ActiveCfg = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Release|Win32.Build.0 = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Release|x64.ActiveCfg = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.ReleaseASC|Win32.ActiveCfg = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.ReleaseASC|Win32.Build.0 = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.ReleaseASC|x64.ActiveCfg = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Unicode Debug|Win32.ActiveCfg = Debug|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Unicode Debug|Win32.Build.0 = Debug|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Unicode Debug|x64.ActiveCfg = Debug|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Unicode Release|Win32.ActiveCfg = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Unicode Release|Win32.Build.0 = Release|Win32
{DC24710E-8DF2-4A7A-B7C3-2313E294143C}.Unicode Release|x64.ActiveCfg = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Debug Multithreaded|Win32.ActiveCfg = Debug|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Debug Multithreaded|Win32.Build.0 = Debug|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Debug Multithreaded|x64.ActiveCfg = Debug|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Debug Singlethreaded|Win32.ActiveCfg = Debug|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Debug Singlethreaded|Win32.Build.0 = Debug|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Debug Singlethreaded|x64.ActiveCfg = Debug|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Debug|Win32.ActiveCfg = Debug|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Debug|Win32.Build.0 = Debug|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Debug|x64.ActiveCfg = Debug|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Release Multithreaded|Win32.ActiveCfg = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Release Multithreaded|Win32.Build.0 = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Release Multithreaded|x64.ActiveCfg = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Release Singlethreaded|Win32.ActiveCfg = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Release Singlethreaded|Win32.Build.0 = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Release Singlethreaded|x64.ActiveCfg = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Release|Win32.ActiveCfg = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Release|Win32.Build.0 = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Release|x64.ActiveCfg = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.ReleaseASC|Win32.ActiveCfg = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.ReleaseASC|Win32.Build.0 = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.ReleaseASC|x64.ActiveCfg = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Unicode Debug|Win32.ActiveCfg = Debug|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Unicode Debug|Win32.Build.0 = Debug|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Unicode Debug|x64.ActiveCfg = Debug|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Unicode Release|Win32.ActiveCfg = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Unicode Release|Win32.Build.0 = Release|Win32
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Unicode Release|x64.ActiveCfg = Release|Win32
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Debug Multithreaded|x64.Build.0 = Debug|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Debug Singlethreaded|x64.Build.0 = Debug|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 Multithreaded|Win32.ActiveCfg = Release|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Release Multithreaded|x64.ActiveCfg = Release|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Release Multithreaded|x64.Build.0 = Release|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Release Singlethreaded|x64.ActiveCfg = Release|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Release Singlethreaded|x64.Build.0 = Release|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}.ReleaseASC|Win32.ActiveCfg = Release|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.ReleaseASC|x64.ActiveCfg = Release|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.ReleaseASC|x64.Build.0 = Release|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.ReleaseOpenSource|Win32.ActiveCfg = Release|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
{BC52A07C-A797-423D-8C4F-8678805BBB36}.ReleaseOpenSource|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
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Debug Multithreaded|Win32.ActiveCfg = Debug|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Debug Multithreaded|Win32.Build.0 = Debug|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Debug Multithreaded|x64.ActiveCfg = Debug|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Debug Singlethreaded|Win32.ActiveCfg = Debug|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Debug Singlethreaded|Win32.Build.0 = Debug|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Debug Singlethreaded|x64.ActiveCfg = Debug|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Debug|Win32.ActiveCfg = Debug|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Debug|Win32.Build.0 = Debug|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Debug|x64.ActiveCfg = Debug|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Release Multithreaded|Win32.ActiveCfg = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Release Multithreaded|Win32.Build.0 = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Release Multithreaded|x64.ActiveCfg = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Release Singlethreaded|Win32.ActiveCfg = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Release Singlethreaded|Win32.Build.0 = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Release Singlethreaded|x64.ActiveCfg = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Release|Win32.ActiveCfg = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Release|Win32.Build.0 = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Release|x64.ActiveCfg = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.ReleaseASC|Win32.ActiveCfg = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.ReleaseASC|Win32.Build.0 = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.ReleaseASC|x64.ActiveCfg = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Unicode Debug|Win32.ActiveCfg = Debug|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Unicode Debug|Win32.Build.0 = Debug|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Unicode Debug|x64.ActiveCfg = Debug|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Unicode Release|Win32.ActiveCfg = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Unicode Release|Win32.Build.0 = Release|Win32
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Unicode Release|x64.ActiveCfg = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Debug Multithreaded|Win32.ActiveCfg = Debug|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Debug Multithreaded|Win32.Build.0 = Debug|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Debug Multithreaded|x64.ActiveCfg = Debug|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Debug Singlethreaded|Win32.ActiveCfg = Debug|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Debug Singlethreaded|Win32.Build.0 = Debug|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Debug Singlethreaded|x64.ActiveCfg = Debug|Win32
{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|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Release Multithreaded|Win32.ActiveCfg = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Release Multithreaded|Win32.Build.0 = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Release Multithreaded|x64.ActiveCfg = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Release Singlethreaded|Win32.ActiveCfg = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Release Singlethreaded|Win32.Build.0 = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Release Singlethreaded|x64.ActiveCfg = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Release|Win32.ActiveCfg = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Release|Win32.Build.0 = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Release|x64.ActiveCfg = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.ReleaseASC|Win32.ActiveCfg = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.ReleaseASC|Win32.Build.0 = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.ReleaseASC|x64.ActiveCfg = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
{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|Win32
{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|Win32
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Debug Multithreaded|x64.Build.0 = Debug|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Debug Singlethreaded|x64.Build.0 = Debug|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 Multithreaded|Win32.ActiveCfg = Release|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Release Multithreaded|x64.ActiveCfg = Release|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Release Multithreaded|x64.Build.0 = Release|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Release Singlethreaded|x64.ActiveCfg = Release|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Release Singlethreaded|x64.Build.0 = Release|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}.ReleaseASC|Win32.ActiveCfg = Release|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.ReleaseASC|x64.ActiveCfg = Release|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.ReleaseASC|x64.Build.0 = Release|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.ReleaseOpenSource|Win32.ActiveCfg = Release|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.ReleaseOpenSource|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
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Multithreaded|Win32.ActiveCfg = Debug Multithreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Multithreaded|Win32.Build.0 = Debug Multithreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Multithreaded|x64.ActiveCfg = Debug Multithreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Singlethreaded|Win32.ActiveCfg = Debug Singlethreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Singlethreaded|Win32.Build.0 = Debug Singlethreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Singlethreaded|x64.ActiveCfg = Debug Singlethreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|Win32.ActiveCfg = Debug|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|Win32.Build.0 = Debug|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|x64.ActiveCfg = Debug|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Multithreaded|Win32.ActiveCfg = Release Multithreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Multithreaded|Win32.Build.0 = Release Multithreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Multithreaded|x64.ActiveCfg = Release Multithreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Singlethreaded|Win32.ActiveCfg = Release Singlethreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Singlethreaded|Win32.Build.0 = Release Singlethreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Singlethreaded|x64.ActiveCfg = Release Singlethreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|Win32.ActiveCfg = Release|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|Win32.Build.0 = Release|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|x64.ActiveCfg = Release|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.ReleaseASC|Win32.ActiveCfg = Release Singlethreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.ReleaseASC|Win32.Build.0 = Release Singlethreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.ReleaseASC|x64.ActiveCfg = Release Singlethreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.ReleaseOpenSource|Win32.ActiveCfg = Release Singlethreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.ReleaseOpenSource|Win32.Build.0 = Release Singlethreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.ReleaseOpenSource|x64.ActiveCfg = Release Singlethreaded|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Unicode Debug|Win32.ActiveCfg = Debug|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Unicode Debug|Win32.Build.0 = Debug|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Unicode Debug|x64.ActiveCfg = Debug|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Unicode Release|Win32.ActiveCfg = Release|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Unicode Release|Win32.Build.0 = Release|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Unicode Release|x64.ActiveCfg = Release|Win32
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Debug Multithreaded|x64.Build.0 = Debug|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Debug Singlethreaded|x64.Build.0 = Debug|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 Multithreaded|Win32.ActiveCfg = Release|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Release Multithreaded|x64.ActiveCfg = Release|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Release Multithreaded|x64.Build.0 = Release|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Release Singlethreaded|x64.ActiveCfg = Release|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Release Singlethreaded|x64.Build.0 = Release|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}.ReleaseASC|Win32.ActiveCfg = Release|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.ReleaseASC|x64.ActiveCfg = Release|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.ReleaseASC|x64.Build.0 = Release|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.ReleaseOpenSource|Win32.ActiveCfg = Release|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.ReleaseOpenSource|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
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Debug Multithreaded|x64.Build.0 = Debug|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Debug Singlethreaded|x64.Build.0 = Debug|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 Multithreaded|Win32.ActiveCfg = Release|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Release Multithreaded|x64.ActiveCfg = Release|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Release Multithreaded|x64.Build.0 = Release|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Release Singlethreaded|x64.ActiveCfg = Release|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Release Singlethreaded|x64.Build.0 = Release|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}.ReleaseASC|Win32.ActiveCfg = Release|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.ReleaseASC|x64.ActiveCfg = Release|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.ReleaseASC|x64.Build.0 = Release|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.ReleaseOpenSource|Win32.ActiveCfg = Release|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.ReleaseOpenSource|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
{818753F2-DBB9-4D3B-898A-A604309BE470}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.Debug Multithreaded|x64.Build.0 = Debug|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.Debug Singlethreaded|x64.Build.0 = Debug|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 Multithreaded|Win32.ActiveCfg = Release|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.Release Multithreaded|x64.ActiveCfg = Release|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.Release Multithreaded|x64.Build.0 = Release|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.Release Singlethreaded|x64.ActiveCfg = Release|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.Release Singlethreaded|x64.Build.0 = Release|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}.ReleaseASC|Win32.ActiveCfg = Release|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.ReleaseASC|x64.ActiveCfg = Release|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.ReleaseASC|x64.Build.0 = Release|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.ReleaseOpenSource|Win32.ActiveCfg = Release|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
{818753F2-DBB9-4D3B-898A-A604309BE470}.ReleaseOpenSource|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
{0588563C-F05C-428C-B21A-DD74756628B3}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.Debug Multithreaded|x64.Build.0 = Debug|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.Debug Singlethreaded|x64.Build.0 = Debug|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 Multithreaded|Win32.ActiveCfg = Release|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.Release Multithreaded|x64.ActiveCfg = Release|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.Release Multithreaded|x64.Build.0 = Release|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.Release Singlethreaded|x64.ActiveCfg = Release|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.Release Singlethreaded|x64.Build.0 = Release|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}.ReleaseASC|Win32.ActiveCfg = Release|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.ReleaseASC|x64.ActiveCfg = Release|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.ReleaseASC|x64.Build.0 = Release|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.ReleaseOpenSource|Win32.ActiveCfg = Release|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
{0588563C-F05C-428C-B21A-DD74756628B3}.ReleaseOpenSource|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
{40A69F40-063E-43FD-8543-455495D8733E}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
{40A69F40-063E-43FD-8543-455495D8733E}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
{40A69F40-063E-43FD-8543-455495D8733E}.Debug Multithreaded|x64.Build.0 = Debug|x64
{40A69F40-063E-43FD-8543-455495D8733E}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
{40A69F40-063E-43FD-8543-455495D8733E}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
{40A69F40-063E-43FD-8543-455495D8733E}.Debug Singlethreaded|x64.Build.0 = Debug|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 Multithreaded|Win32.ActiveCfg = Release|x64
{40A69F40-063E-43FD-8543-455495D8733E}.Release Multithreaded|x64.ActiveCfg = Release|x64
{40A69F40-063E-43FD-8543-455495D8733E}.Release Multithreaded|x64.Build.0 = Release|x64
{40A69F40-063E-43FD-8543-455495D8733E}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
{40A69F40-063E-43FD-8543-455495D8733E}.Release Singlethreaded|x64.ActiveCfg = Release|x64
{40A69F40-063E-43FD-8543-455495D8733E}.Release Singlethreaded|x64.Build.0 = Release|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}.ReleaseASC|Win32.ActiveCfg = Release|x64
{40A69F40-063E-43FD-8543-455495D8733E}.ReleaseASC|x64.ActiveCfg = Release|x64
{40A69F40-063E-43FD-8543-455495D8733E}.ReleaseASC|x64.Build.0 = Release|x64
{40A69F40-063E-43FD-8543-455495D8733E}.ReleaseOpenSource|Win32.ActiveCfg = Release|x64
{40A69F40-063E-43FD-8543-455495D8733E}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
{40A69F40-063E-43FD-8543-455495D8733E}.ReleaseOpenSource|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
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Debug Multithreaded|x64.Build.0 = Debug|x64
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Debug Singlethreaded|x64.Build.0 = Debug|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 Multithreaded|Win32.ActiveCfg = Release|x64
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Release Multithreaded|x64.ActiveCfg = Release|x64
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Release Multithreaded|x64.Build.0 = Release|x64
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Release Singlethreaded|x64.ActiveCfg = Release|x64
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Release Singlethreaded|x64.Build.0 = Release|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}.ReleaseASC|Win32.ActiveCfg = Release|x64
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.ReleaseASC|x64.ActiveCfg = Release|x64
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.ReleaseASC|x64.Build.0 = Release|x64
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.ReleaseOpenSource|Win32.ActiveCfg = Release|x64
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.ReleaseOpenSource|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
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Debug Multithreaded|Win32.ActiveCfg = Debug|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Debug Multithreaded|Win32.Build.0 = Debug|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Debug Multithreaded|x64.ActiveCfg = Debug|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Debug Singlethreaded|Win32.ActiveCfg = Debug|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Debug Singlethreaded|Win32.Build.0 = Debug|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Debug Singlethreaded|x64.ActiveCfg = Debug|Win32
{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|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Release Multithreaded|Win32.ActiveCfg = Release|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Release Multithreaded|Win32.Build.0 = Release|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Release Multithreaded|x64.ActiveCfg = Release|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Release Singlethreaded|Win32.ActiveCfg = Release|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Release Singlethreaded|Win32.Build.0 = Release|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Release Singlethreaded|x64.ActiveCfg = Release|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Release|Win32.ActiveCfg = Release|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Release|Win32.Build.0 = Release|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.Release|x64.ActiveCfg = Release|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.ReleaseASC|Win32.ActiveCfg = Release|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.ReleaseASC|Win32.Build.0 = Release|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.ReleaseASC|x64.ActiveCfg = Release|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
{3F3CB5A1-BB01-49C1-9342-4A69E30F9EF6}.ReleaseOpenSource|x64.ActiveCfg = Release|Win32
{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|Win32
{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|Win32
{DF861D33-9BC1-418C-82B1-581F590FE169}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.Debug Multithreaded|x64.Build.0 = Debug|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.Debug Singlethreaded|x64.Build.0 = Debug|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 Multithreaded|Win32.ActiveCfg = Release|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.Release Multithreaded|x64.ActiveCfg = Release|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.Release Multithreaded|x64.Build.0 = Release|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.Release Singlethreaded|x64.ActiveCfg = Release|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.Release Singlethreaded|x64.Build.0 = Release|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}.ReleaseASC|Win32.ActiveCfg = Release|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.ReleaseASC|x64.ActiveCfg = Release|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.ReleaseASC|x64.Build.0 = Release|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.ReleaseOpenSource|Win32.ActiveCfg = Release|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
{DF861D33-9BC1-418C-82B1-581F590FE169}.ReleaseOpenSource|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
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Debug Multithreaded|x64.Build.0 = Debug|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Debug Singlethreaded|x64.Build.0 = Debug|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Debug|Win32.ActiveCfg = Debug|Win32
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Debug|Win32.Build.0 = Debug|Win32
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Debug|x64.ActiveCfg = Debug|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Debug|x64.Build.0 = Debug|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Release Multithreaded|Win32.ActiveCfg = Release|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Release Multithreaded|x64.ActiveCfg = Release|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Release Multithreaded|x64.Build.0 = Release|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Release Singlethreaded|x64.ActiveCfg = Release|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Release Singlethreaded|x64.Build.0 = Release|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Release|Win32.ActiveCfg = Release|Win32
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Release|Win32.Build.0 = Release|Win32
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Release|x64.ActiveCfg = Release|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Release|x64.Build.0 = Release|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.ReleaseASC|Win32.ActiveCfg = Release|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.ReleaseASC|x64.ActiveCfg = Release|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.ReleaseASC|x64.Build.0 = Release|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.ReleaseOpenSource|Win32.ActiveCfg = Release|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.ReleaseOpenSource|x64.Build.0 = Release|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Unicode Debug|Win32.ActiveCfg = Unicode Debug|Win32
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Unicode Debug|Win32.Build.0 = Unicode Debug|Win32
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Unicode Debug|x64.ActiveCfg = Unicode Debug|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Unicode Debug|x64.Build.0 = Unicode Debug|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Unicode Release|Win32.ActiveCfg = Unicode Release|Win32
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Unicode Release|Win32.Build.0 = Unicode Release|Win32
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Unicode Release|x64.ActiveCfg = Unicode Release|x64
{7B53D2C7-1B4A-4A53-A7D3-E25B92470B81}.Unicode Release|x64.Build.0 = Unicode Release|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Debug Multithreaded|x64.Build.0 = Debug|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Debug Singlethreaded|x64.Build.0 = Debug|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 Multithreaded|Win32.ActiveCfg = Release|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Release Multithreaded|x64.ActiveCfg = Release|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Release Multithreaded|x64.Build.0 = Release|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Release Singlethreaded|x64.ActiveCfg = Release|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Release Singlethreaded|x64.Build.0 = Release|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}.ReleaseASC|Win32.ActiveCfg = Release|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.ReleaseASC|x64.ActiveCfg = Release|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.ReleaseASC|x64.Build.0 = Release|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.ReleaseOpenSource|Win32.ActiveCfg = Release|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.ReleaseOpenSource|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
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(DPCodeReviewSolutionGUID) = preSolution
DPCodeReviewSolutionGUID = {00000000-0000-0000-0000-000000000000}
EndGlobalSection
EndGlobal
<?xml version="1.0" encoding="windows-1251"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8,00"
Name="XlsxSerializerCom"
ProjectGUID="{87476A4D-6A42-44E9-A947-42B8E8613070}"
RootNamespace="XlsxSerializerCom"
Keyword="AtlProj"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
UseOfATL="1"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
CommandLine=""
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="false"
TargetEnvironment="1"
GenerateStublessProxies="true"
TypeLibraryName="$(IntDir)/XlsxSerializerCom.tlb"
HeaderFileName="XlsxSerializerCom.h"
DLLDataFileName=""
InterfaceIdentifierFileName="XlsxSerializerCom_i.c"
ProxyFileName="XlsxSerializerCom_p.c"
ValidateParameters="false"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\Common;..\..\Common;..\..\AVSImageStudio3\Common"
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG;_USRDLL;_ATL_ATTRIBUTES;_USE_XMLLITE_READER_;USE_LITE_READER;USE_AVSOFFICESTUDIO_XMLUTILS"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="2"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="1033"
AdditionalIncludeDirectories="$(IntDir)"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
RegisterOutput="true"
IgnoreImportLibrary="true"
LinkIncremental="2"
AdditionalLibraryDirectories="&quot;$(SolutionDir)/../../Common/DocxFormat/Lib/Debug&quot;"
MergedIDLBaseFileName="_XlsxSerializerCom.idl"
GenerateDebugInformation="true"
SubSystem="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine=""
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
UseOfATL="1"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
CommandLine="..\Redist\VersionControl.exe &quot;$(ProjectDir)\version.h&quot;"
ExcludedFromBuild="true"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="false"
TargetEnvironment="1"
GenerateStublessProxies="true"
TypeLibraryName="$(IntDir)/XlsxSerializerCom.tlb"
HeaderFileName="XlsxSerializerCom.h"
DLLDataFileName=""
InterfaceIdentifierFileName="XlsxSerializerCom_i.c"
ProxyFileName="XlsxSerializerCom_p.c"
ValidateParameters="false"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
AdditionalIncludeDirectories="..\..\..\..\Common;..\..\Common;..\..\AVSImageStudio3\Common;&quot;../DesktopEditor/freetype-2.5.2/include&quot;"
PreprocessorDefinitions="WIN32;_WINDOWS;_USRDLL;_ATL_ATTRIBUTES;_USE_XMLLITE_READER_;USE_LITE_READER;USE_AVSOFFICESTUDIO_XMLUTILS"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="2"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="1033"
AdditionalIncludeDirectories="$(IntDir)"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
RegisterOutput="true"
IgnoreImportLibrary="true"
LinkIncremental="1"
MergedIDLBaseFileName="_XlsxSerializerCom.idl"
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ImportLibrary="$(OutDir)/XlsxSerializerCom.lib"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
Description="Copy to redist"
CommandLine="copy $(TargetPath) ..\Redist\XlsxSerializerCom.dll"
ExcludedFromBuild="false"
/>
</Configuration>
<Configuration
Name="ReleaseOpenSource|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
UseOfATL="1"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
CommandLine="..\Redist\VersionControl.exe &quot;$(ProjectDir)\version.h&quot;"
ExcludedFromBuild="true"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="false"
TargetEnvironment="1"
GenerateStublessProxies="true"
TypeLibraryName="$(IntDir)/XlsxSerializerCom.tlb"
HeaderFileName="XlsxSerializerCom.h"
DLLDataFileName=""
InterfaceIdentifierFileName="XlsxSerializerCom_i.c"
ProxyFileName="XlsxSerializerCom_p.c"
ValidateParameters="false"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
AdditionalIncludeDirectories="..\..\..\..\Common;..\..\Common;..\..\AVSImageStudio3\Common"
PreprocessorDefinitions="WIN32;_WINDOWS;_USRDLL;_ATL_ATTRIBUTES;_USE_XMLLITE_READER_;USE_LITE_READER;USE_AVSOFFICESTUDIO_XMLUTILS;BUILD_CONFIG_OPENSOURCE_VERSION"
RuntimeLibrary="2"
UsePrecompiledHeader="2"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="1033"
AdditionalIncludeDirectories="$(IntDir)"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
RegisterOutput="false"
IgnoreImportLibrary="true"
LinkIncremental="1"
MergedIDLBaseFileName="_XlsxSerializerCom.idl"
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
Description="copy to Redist"
CommandLine="copy $(TargetPath) ..\Redist\XlsxSerializerCom.dll"
ExcludedFromBuild="false"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{63524EC3-B16E-4d25-881C-BACAEE1F4D24}"
>
<File
RelativePath=".\stdafx.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"
/>
</FileConfiguration>
<FileConfiguration
Name="ReleaseOpenSource|Win32"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"
/>
</FileConfiguration>
</File>
<File
RelativePath=".\XlsxSerializerCom.cpp"
>
</File>
</Filter>
<Filter
Name="Header Files"
>
<File
RelativePath=".\ASCOfficeXlsxSerizer.h"
>
</File>
<File
RelativePath=".\Resource.h"
>
</File>
<File
RelativePath=".\stdafx.h"
>
</File>
<File
RelativePath=".\version.h"
>
</File>
</Filter>
<Filter
Name="Reader"
>
<File
RelativePath=".\Reader\BinaryWriter.h"
>
</File>
<File
RelativePath=".\Reader\ChartFromToBinary.h"
>
</File>
<File
RelativePath=".\Reader\CommonWriter.h"
>
</File>
<File
RelativePath=".\Reader\CSVReader.h"
>
</File>
</Filter>
<Filter
Name="Common"
>
<File
RelativePath=".\Common\BinReaderWriterDefines.h"
>
</File>
<File
RelativePath="..\ASCOfficePPTXFile\Editor\BinReaderWriterDefines.h"
>
</File>
<File
RelativePath=".\Common\Common.h"
>
</File>
</Filter>
<Filter
Name="Writer"
>
<File
RelativePath=".\Writer\BinaryCommonReader.h"
>
</File>
<File
RelativePath=".\Writer\BinaryReader.h"
>
</File>
<File
RelativePath=".\Writer\CSVWriter.h"
>
</File>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{764D3D92-FBD6-4c5d-A785-208F6FE895CE}"
>
<File
RelativePath=".\XlsxSerializerCom.rc"
>
</File>
<File
RelativePath=".\XlsxSerializerCom.rgs"
>
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
// stdafx.cpp : source file that includes just the standard includes
// AVSOfficeDocxFile2.pch will be the pre-compiled header
// stdafx.obj will contain the pre-compiled type information
#include "stdafx.h"
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently,
// but are changed infrequently
#pragma once
#ifndef STRICT
#define STRICT
#endif
// Modify the following defines if you have to target a platform prior to the ones specified below.
// Refer to MSDN for the latest info on corresponding values for different platforms.
#ifndef WINVER // Allow use of features specific to Windows 95 and Windows NT 4 or later.
#define WINVER 0x0400 // Change this to the appropriate value to target Windows 98 and Windows 2000 or later.
#endif
#ifndef _WIN32_WINNT // Allow use of features specific to Windows NT 4 or later.
#define _WIN32_WINNT 0x0400 // Change this to the appropriate value to target Windows 2000 or later.
#endif
#ifndef _WIN32_WINDOWS // Allow use of features specific to Windows 98 or later.
#define _WIN32_WINDOWS 0x0410 // Change this to the appropriate value to target Windows Me or later.
#endif
#ifndef _WIN32_IE // Allow use of features specific to IE 4.0 or later.
#define _WIN32_IE 0x0400 // Change this to the appropriate value to target IE 5.0 or later.
#endif
#define _ATL_APARTMENT_THREADED
#define _ATL_NO_AUTOMATIC_NAMESPACE
#define _CRT_SECURE_NO_DEPRECATE
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit
// turns off ATL's hiding of some common and often safely ignored warning messages
#define _ATL_ALL_WARNINGS
#include <windows.h>
#include <atlbase.h>
#include <atlcom.h>
#include <atlwin.h>
#include <atltypes.h>
#include <atlctl.h>
#include <atlhost.h>
#include <atlcoll.h>
using namespace ATL;
#include "../Common/ASCUtils.h"
#include "../Common/Config.h"
#include <Gdiplus.h>
#pragma comment(lib, "gdiplus.lib")
using namespace Gdiplus;
#import "../Redist/ASCFontConverter.dll" named_guids raw_interfaces_only rename_namespace("Fonts")
#pragma once
//1
//0
//1
//122
#define INTVER 1,0,1,122
#define STRVER "1,0,1,122\0"
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