Files
Sun1602/Tools/CrashInfomationReport/CrashReport/XLAutomation.h
T
2022-10-26 12:25:11 +08:00

87 lines
3.1 KiB
C++

// XLAutomation.h: interface for the CXLAutomation class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_XLAUTOMATION_H__E020CE95_7428_4BEF_A24C_48CE9323C450__INCLUDED_)
#define AFX_XLAUTOMATION_H__E020CE95_7428_4BEF_A24C_48CE9323C450__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CXLAutomation
{
#define MAX_DISP_ARGS 10
#define DISPARG_NOFREEVARIANT 0x01
#define DISP_FREEARGS 0x02
#define DISP_NOSHOWEXCEPTIONS 0x03
#define xlWorksheet -4167
#define xl3DPie -4102
#define xlRows 1
#define xlXYScatter -4169
#define xlXYScatterLines 74
#define xlXYScatterSmoothNoMarkers 73
#define xlXYScatterSmooth 72
#define xlXYScatterLinesNoMarkers 75
#define xlColumns 2
#define xlNormal -4143
#define xlUp -4162
public:
BOOL OpenExcelFile(CString szFileName);
BOOL InsertPictureToWorksheet(BYTE* pImage, int Column, int Row, double dPicWidth, double dPicHeight);
BOOL PlaceImageToClipboard(BYTE* pImage);
BOOL InsertPictureToWorksheet(CString szFileName, int Column, int Row, double dPicWidth, double dPicHeight);
CString GetCellValueCString(int nColumn, int nRow);
BOOL SaveAs(CString szFileName, int nFileFormat, CString szPassword, CString szWritePassword, BOOL bReadOnly, BOOL bBackUp);
BOOL DeleteRow(long nRow);
BOOL ReleaseExcel();
BOOL PasteStringToWorksheet(CString pDataBuffer);
BOOL UpdatePlotRange(int nYColumn);
BOOL AddArgumentCStringArray(LPOLESTR lpszArgName,WORD wFlags, LPOLESTR *paszStrings, int iCount);
BOOL SetRangeValueDouble(LPOLESTR lpszRef, double d);
BOOL CreateXYChart(int nYColumn);
BOOL SetCellsValueToString(double Column, double Row, CString szStr);
BOOL AddArgumentOLEString(LPOLESTR lpszArgName, WORD wFlags, LPOLESTR lpsz);
BOOL AddArgumentCString(LPOLESTR lpszArgName, WORD wFlags, CString szStr);
BOOL CreateWorkSheet();
BOOL AddArgumentDouble(LPOLESTR lpszArgName, WORD wFlags, double d);
BOOL AddArgumentBool(LPOLESTR lpszArgName, WORD wFlags, BOOL b);
BOOL AddArgumentInt2(LPOLESTR lpszArgName, WORD wFlags, int i);
BOOL AddArgumentDispatch(LPOLESTR lpszArgName, WORD wFlags, IDispatch * pdisp);
void AddArgumentCommon(LPOLESTR lpszArgName, WORD wFlags, VARTYPE vt);
BOOL InitOLE();
CXLAutomation();
CXLAutomation::CXLAutomation(BOOL bVisible);
virtual ~CXLAutomation();
BOOL SetExcelVisible(BOOL bVisible);
protected:
void ShowException(LPOLESTR szMember, HRESULT hr, EXCEPINFO *pexcep, unsigned int uiArgErr);
void ReleaseDispatch();
void ReleaseVariant(VARIANTARG *pvarg);
void ClearAllArgs();
void ClearVariant(VARIANTARG *pvarg);
int m_iArgCount;
int m_iNamedArgCount;
VARIANTARG m_aVargs[MAX_DISP_ARGS];
DISPID m_aDispIds[MAX_DISP_ARGS + 1]; // one extra for the member name
LPOLESTR m_alpszArgNames[MAX_DISP_ARGS + 1]; // used to hold the argnames for GetIDs
WORD m_awFlags[MAX_DISP_ARGS];
BOOL ExlInvoke(IDispatch *pdisp, LPOLESTR szMember, VARIANTARG * pvargReturn,
WORD wInvokeAction, WORD wFlags);
IDispatch* m_pdispExcelApp;
IDispatch *m_pdispWorkbook;
IDispatch *m_pdispWorksheet;
IDispatch *m_pdispActiveChart;
BOOL StartExcel();
};
#endif // !defined(AFX_XLAUTOMATION_H__E020CE95_7428_4BEF_A24C_48CE9323C450__INCLUDED_)