@GedB: Nice work. I'm still improving the interface generator, but I will finish it soon. If you want to use XML you can look at
. I've posted code to do transformnode and browse an xml file.
@fweil: I got the Excel Interface to work. There is a problem to pass a VARIANT to the methods in the interface, but I found a workaround. I hope that there will come a solution for this.
Code: Select all
IncludeFile "Variant_inc.pb"
#CLSCTX_INPROC_SERVER = 1
#CLSCTX_INPROC_HANDLER = 2
#CLSCTX_LOCAL_SERVER = 4
#CLSCTX_REMOTE_SERVER = 16
lcid.l = GetUserDefaultLCID_() ; don't know the exact meaning and value for this, but this works
Interface _Application Extends IDispatch
get_Application(a.l) ;
get_Creator(a.l) ;
get_Parent(a.l) ;
get_ActiveCell(a.l) ;
get_ActiveChart(a.l) ;
get_ActiveDialog(a.l) ;
get_ActiveMenuBar(a.l) ;
get_ActivePrinter(a.l,b.l) ;
put_ActivePrinter(a.l,b.l) ;
get_ActiveSheet(a.l) ;
get_ActiveWindow(a.l) ;
get_ActiveWorkbook(a.l) ;
get_AddIns(a.l) ;
get_Assistant(a.l) ;
Calculate(a.l) ;
get_Cells(a.l) ;
get_Charts(a.l) ;
get_Columns(a.l) ;
get_CommandBars(a.l) ;
get_DDEAppReturnCode(a.l,b.l) ;
DDEExecute(a.l,b.l,c.l) ;
DDEInitiate(a.l,b.l,c.l,d.l) ;
DDEPoke(a.l,b.l,c.l,d.l) ;
DDERequest(a.l,b.l,c.l,d.l) ;
DDETerminate(a.l,b.l) ;
get_DialogSheets(a.l) ;
Evaluate(a.l,b.l,c.l) ;
_Evaluate(a.l,b.l,c.l) ;
ExecuteExcel4Macro(a.l,b.l,c.l) ;
Intersect(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l,i.l,j.l,k.l,l.l,m.l,n.l,o.l,p.l,q.l,r.l,s.l,t.l,u.l,v.l,w.l,x.l,y.l,z.l,a.l,b.l,c.l,d.l,e.l,f.l) ;
get_MenuBars(a.l) ;
get_Modules(a.l) ;
get_Names(a.l) ;
get_Range(a.l,b.l,c.l) ;
get_Rows(a.l) ;
Run(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l,i.l,j.l,k.l,l.l,m.l,n.l,o.l,p.l,q.l,r.l,s.l,t.l,u.l,v.l,w.l,x.l,y.l,z.l,a.l,b.l,c.l,d.l,e.l,f.l) ;
_Run2(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l,i.l,j.l,k.l,l.l,m.l,n.l,o.l,p.l,q.l,r.l,s.l,t.l,u.l,v.l,w.l,x.l,y.l,z.l,a.l,b.l,c.l,d.l,e.l,f.l,g.l) ;
get_Selection(a.l,b.l) ;
SendKeys(a.l,b.l,c.l) ;
get_Sheets(a.l) ;
get_ShortcutMenus(a.l,b.l) ;
get_ThisWorkbook(a.l,b.l) ;
get_Toolbars(a.l) ;
Union(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l,i.l,j.l,k.l,l.l,m.l,n.l,o.l,p.l,q.l,r.l,s.l,t.l,u.l,v.l,w.l,x.l,y.l,z.l,a.l,b.l,c.l,d.l,e.l,f.l) ;
get_Windows(a.l) ;
get_Workbooks(a.l) ;
get_WorksheetFunction(a.l) ;
get_Worksheets(a.l) ;
get_Excel4IntlMacroSheets(a.l) ;
get_Excel4MacroSheets(a.l) ;
ActivateMicrosoftApp(a.l,b.l) ;
AddChartAutoFormat(a.l,b.l,c.l,d.l) ;
AddCustomList(a.l,b.l,c.l) ;
get_AlertBeforeOverwriting(a.l,b.l) ;
put_AlertBeforeOverwriting(a.l,b.l) ;
get_AltStartupPath(a.l,b.l) ;
put_AltStartupPath(a.l,b.l) ;
get_AskToUpdateLinks(a.l,b.l) ;
put_AskToUpdateLinks(a.l,b.l) ;
get_EnableAnimations(a.l,b.l) ;
put_EnableAnimations(a.l,b.l) ;
get_AutoCorrect(a.l) ;
get_Build(a.l,b.l) ;
get_CalculateBeforeSave(a.l,b.l) ;
put_CalculateBeforeSave(a.l,b.l) ;
get_Calculation(a.l,b.l) ;
put_Calculation(a.l,b.l) ;
get_Caller(a.l,b.l,c.l) ;
get_CanPlaySounds(a.l,b.l) ;
get_CanRecordSounds(a.l,b.l) ;
get_Caption(a.l) ;
put_Caption(a.l) ;
get_CellDragAndDrop(a.l,b.l) ;
put_CellDragAndDrop(a.l,b.l) ;
CentimetersToPoints(a.l,b.l,c.l) ;
CheckSpelling(a.l,b.l,c.l,d.l,e.l) ;
get_ClipboardFormats(a.l,b.l,c.l) ;
get_DisplayClipboardWindow(a.l,b.l) ;
put_DisplayClipboardWindow(a.l,b.l) ;
get_ColorButtons(a.l) ;
put_ColorButtons(a.l) ;
get_CommandUnderlines(a.l,b.l) ;
put_CommandUnderlines(a.l,b.l) ;
get_ConstrainNumeric(a.l,b.l) ;
put_ConstrainNumeric(a.l,b.l) ;
ConvertFormula(a.l,b.l,c.l,d.l,e.l,f.l,g.l) ;
get_CopyObjectsWithCells(a.l,b.l) ;
put_CopyObjectsWithCells(a.l,b.l) ;
get_Cursor(a.l,b.l) ;
put_Cursor(a.l,b.l) ;
get_CustomListCount(a.l,b.l) ;
get_CutCopyMode(a.l,b.l) ;
put_CutCopyMode(a.l,b.l) ;
get_DataEntryMode(a.l,b.l) ;
put_DataEntryMode(a.l,b.l) ;
Dummy1(a.l,b.l,c.l,d.l,e.l) ;
Dummy2(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l,i.l) ;
Dummy3(a.l) ;
Dummy4(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l,i.l,j.l,k.l,l.l,m.l,n.l,o.l,p.l) ;
Dummy5(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l,i.l,j.l,k.l,l.l,m.l,n.l) ;
Dummy6(a.l) ;
Dummy7(a.l) ;
Dummy8(a.l,b.l) ;
Dummy9(a.l) ;
Dummy10(a.l,b.l) ;
Dummy11() ;
get__Default(a.l) ;
get_DefaultFilePath(a.l,b.l) ;
put_DefaultFilePath(a.l,b.l) ;
DeleteChartAutoFormat(a.l,b.l) ;
DeleteCustomList(a.l,b.l) ;
get_Dialogs(a.l) ;
get_DisplayAlerts(a.l,b.l) ;
put_DisplayAlerts(a.l,b.l) ;
get_DisplayFormulaBar(a.l,b.l) ;
put_DisplayFormulaBar(a.l,b.l) ;
get_DisplayFullScreen(a.l,b.l) ;
put_DisplayFullScreen(a.l,b.l) ;
get_DisplayNoteIndicator(a.l) ;
put_DisplayNoteIndicator(a.l) ;
get_DisplayCommentIndicator(a.l) ;
put_DisplayCommentIndicator(a.l) ;
get_DisplayExcel4Menus(a.l,b.l) ;
put_DisplayExcel4Menus(a.l,b.l) ;
get_DisplayRecentFiles(a.l) ;
put_DisplayRecentFiles(a.l) ;
get_DisplayScrollBars(a.l,b.l) ;
put_DisplayScrollBars(a.l,b.l) ;
get_DisplayStatusBar(a.l,b.l) ;
put_DisplayStatusBar(a.l,b.l) ;
DoubleClick(a.l) ;
get_EditDirectlyInCell(a.l,b.l) ;
put_EditDirectlyInCell(a.l,b.l) ;
get_EnableAutoComplete(a.l) ;
put_EnableAutoComplete(a.l) ;
get_EnableCancelKey(a.l,b.l) ;
put_EnableCancelKey(a.l,b.l) ;
get_EnableSound(a.l) ;
put_EnableSound(a.l) ;
get_EnableTipWizard(a.l,b.l) ;
put_EnableTipWizard(a.l,b.l) ;
get_FileConverters(a.l,b.l,c.l,d.l) ;
get_FileSearch(a.l) ;
get_FileFind(a.l) ;
_FindFile(a.l) ;
get_FixedDecimal(a.l,b.l) ;
put_FixedDecimal(a.l,b.l) ;
get_FixedDecimalPlaces(a.l,b.l) ;
put_FixedDecimalPlaces(a.l,b.l) ;
GetCustomListContents(a.l,b.l,c.l) ;
GetCustomListNum(a.l,b.l,c.l) ;
GetOpenFilename(a.l,b.l,c.l,d.l,e.l,f.l,g.l) ;
GetSaveAsFilename(a.l,b.l,c.l,d.l,e.l,f.l,g.l) ;
Goto(a.l,b.l,c.l) ;
get_Height(a.l,b.l) ;
put_Height(a.l,b.l) ;
Help(a.l,b.l,c.l) ;
get_IgnoreRemoteRequests(a.l,b.l) ;
put_IgnoreRemoteRequests(a.l,b.l) ;
InchesToPoints(a.l,b.l,c.l) ;
InputBox(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l,i.l,j.l) ;
get_Interactive(a.l,b.l) ;
put_Interactive(a.l,b.l) ;
get_International(a.l,b.l,c.l) ;
get_Iteration(a.l,b.l) ;
put_Iteration(a.l,b.l) ;
get_LargeButtons(a.l) ;
put_LargeButtons(a.l) ;
get_Left(a.l,b.l) ;
put_Left(a.l,b.l) ;
get_LibraryPath(a.l,b.l) ;
MacroOptions(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l,i.l,j.l,k.l) ;
MailLogoff(a.l) ;
MailLogon(a.l,b.l,c.l,d.l) ;
get_MailSession(a.l,b.l) ;
get_MailSystem(a.l,b.l) ;
get_MathCoprocessorAvailable(a.l,b.l) ;
get_MaxChange(a.l,b.l) ;
put_MaxChange(a.l,b.l) ;
get_MaxIterations(a.l,b.l) ;
put_MaxIterations(a.l,b.l) ;
get_MemoryFree(a.l,b.l) ;
get_MemoryTotal(a.l,b.l) ;
get_MemoryUsed(a.l,b.l) ;
get_MouseAvailable(a.l,b.l) ;
get_MoveAfterReturn(a.l,b.l) ;
put_MoveAfterReturn(a.l,b.l) ;
get_MoveAfterReturnDirection(a.l,b.l) ;
put_MoveAfterReturnDirection(a.l,b.l) ;
get_RecentFiles(a.l) ;
get_Name(a.l) ;
NextLetter(a.l,b.l) ;
get_NetworkTemplatesPath(a.l,b.l) ;
get_ODBCErrors(a.l) ;
get_ODBCTimeout(a.l) ;
put_ODBCTimeout(a.l) ;
get_OnCalculate(a.l,b.l) ;
put_OnCalculate(a.l,b.l) ;
get_OnData(a.l,b.l) ;
put_OnData(a.l,b.l) ;
get_OnDoubleClick(a.l,b.l) ;
put_OnDoubleClick(a.l,b.l) ;
get_OnEntry(a.l,b.l) ;
put_OnEntry(a.l,b.l) ;
OnKey(a.l,b.l,c.l) ;
OnRepeat(a.l,b.l,c.l) ;
get_OnSheetActivate(a.l,b.l) ;
put_OnSheetActivate(a.l,b.l) ;
get_OnSheetDeactivate(a.l,b.l) ;
put_OnSheetDeactivate(a.l,b.l) ;
OnTime(a.l,b.l,c.l,d.l,e.l) ;
OnUndo(a.l,b.l,c.l) ;
get_OnWindow(a.l,b.l) ;
put_OnWindow(a.l,b.l) ;
get_OperatingSystem(a.l,b.l) ;
get_OrganizationName(a.l,b.l) ;
get_Path(a.l,b.l) ;
get_PathSeparator(a.l,b.l) ;
get_PreviousSelections(a.l,b.l,c.l) ;
get_PivotTableSelection(a.l) ;
put_PivotTableSelection(a.l) ;
get_PromptForSummaryInfo(a.l,b.l) ;
put_PromptForSummaryInfo(a.l,b.l) ;
Quit() ;
RecordMacro(a.l,b.l,c.l) ;
get_RecordRelative(a.l,b.l) ;
get_ReferenceStyle(a.l,b.l) ;
put_ReferenceStyle(a.l,b.l) ;
get_RegisteredFunctions(a.l,b.l,c.l,d.l) ;
RegisterXLL(a.l,b.l,c.l) ;
Repeat(a.l) ;
ResetTipWizard(a.l) ;
get_RollZoom(a.l) ;
put_RollZoom(a.l) ;
Save(a.l,b.l) ;
SaveWorkspace(a.l,b.l) ;
get_ScreenUpdating(a.l,b.l) ;
put_ScreenUpdating(a.l,b.l) ;
SetDefaultChart(a.l,b.l) ;
get_SheetsInNewWorkbook(a.l,b.l) ;
put_SheetsInNewWorkbook(a.l,b.l) ;
get_ShowChartTipNames(a.l) ;
put_ShowChartTipNames(a.l) ;
get_ShowChartTipValues(a.l) ;
put_ShowChartTipValues(a.l) ;
get_StandardFont(a.l,b.l) ;
put_StandardFont(a.l,b.l) ;
get_StandardFontSize(a.l,b.l) ;
put_StandardFontSize(a.l,b.l) ;
get_StartupPath(a.l,b.l) ;
get_StatusBar(a.l,b.l) ;
put_StatusBar(a.l,b.l) ;
get_TemplatesPath(a.l,b.l) ;
get_ShowToolTips(a.l) ;
put_ShowToolTips(a.l) ;
get_Top(a.l,b.l) ;
put_Top(a.l,b.l) ;
get_DefaultSaveFormat(a.l) ;
put_DefaultSaveFormat(a.l) ;
get_TransitionMenuKey(a.l,b.l) ;
put_TransitionMenuKey(a.l,b.l) ;
get_TransitionMenuKeyAction(a.l,b.l) ;
put_TransitionMenuKeyAction(a.l,b.l) ;
get_TransitionNavigKeys(a.l,b.l) ;
put_TransitionNavigKeys(a.l,b.l) ;
Undo(a.l) ;
get_UsableHeight(a.l,b.l) ;
get_UsableWidth(a.l,b.l) ;
get_UserControl(a.l) ;
put_UserControl(a.l) ;
get_UserName(a.l,b.l) ;
put_UserName(a.l,b.l) ;
get_Value(a.l) ;
get_VBE(a.l) ;
get_Version(a.l,b.l) ;
get_Visible(a.l,b.l) ;
put_Visible(a.l,b.l) ;
Volatile(a.l,b.l) ;
_Wait(a.l,b.l) ;
get_Width(a.l,b.l) ;
put_Width(a.l,b.l) ;
get_WindowsForPens(a.l,b.l) ;
get_WindowState(a.l,b.l) ;
put_WindowState(a.l,b.l) ;
get_UILanguage(a.l,b.l) ;
put_UILanguage(a.l,b.l) ;
get_DefaultSheetDirection(a.l,b.l) ;
put_DefaultSheetDirection(a.l,b.l) ;
get_CursorMovement(a.l,b.l) ;
put_CursorMovement(a.l,b.l) ;
get_ControlCharacters(a.l,b.l) ;
put_ControlCharacters(a.l,b.l) ;
_WSFunction(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l,i.l,j.l,k.l,l.l,m.l,n.l,o.l,p.l,q.l,r.l,s.l,t.l,u.l,v.l,w.l,x.l,y.l,z.l,a.l,b.l,c.l,d.l,e.l,f.l) ;
get_EnableEvents(a.l) ;
put_EnableEvents(a.l) ;
get_DisplayInfoWindow(a.l) ;
put_DisplayInfoWindow(a.l) ;
Wait(a.l,b.l,c.l) ;
get_ExtendList(a.l) ;
put_ExtendList(a.l) ;
get_OLEDBErrors(a.l) ;
GetPhonetic(a.l,b.l) ;
get_COMAddIns(a.l) ;
get_DefaultWebOptions(a.l) ;
get_ProductCode(a.l) ;
get_UserLibraryPath(a.l) ;
get_AutoPercentEntry(a.l) ;
put_AutoPercentEntry(a.l) ;
get_LanguageSettings(a.l) ;
get_Dummy101(a.l) ;
Dummy12(a.l,b.l) ;
get_AnswerWizard(a.l) ;
CalculateFull() ;
FindFile(a.l,b.l) ;
get_CalculationVersion(a.l) ;
get_ShowWindowsInTaskbar(a.l) ;
put_ShowWindowsInTaskbar(a.l) ;
get_FeatureInstall(a.l) ;
put_FeatureInstall(a.l) ;
get_Ready(a.l) ;
Dummy13(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l,i.l,j.l,k.l,l.l,m.l,n.l,o.l,p.l,q.l,r.l,s.l,t.l,u.l,v.l,w.l,x.l,y.l,z.l,a.l,b.l,c.l,d.l,e.l) ;
get_FindFormat(a.l) ;
put_FindFormat(a.l) ;
get_ReplaceFormat(a.l) ;
put_ReplaceFormat(a.l) ;
get_UsedObjects(a.l) ;
get_CalculationState(a.l) ;
get_CalculationInterruptKey(a.l) ;
put_CalculationInterruptKey(a.l) ;
get_Watches(a.l) ;
get_DisplayFunctionToolTips(a.l) ;
put_DisplayFunctionToolTips(a.l) ;
get_AutomationSecurity(a.l) ;
put_AutomationSecurity(a.l) ;
get_FileDialog(a.l,b.l) ;
Dummy14() ;
CalculateFullRebuild() ;
get_DisplayPasteOptions(a.l) ;
put_DisplayPasteOptions(a.l) ;
get_DisplayInsertOptions(a.l) ;
put_DisplayInsertOptions(a.l) ;
get_GenerateGetPivotData(a.l) ;
put_GenerateGetPivotData(a.l) ;
get_AutoRecover(a.l) ;
get_Hwnd(a.l) ;
get_Hinstance(a.l) ;
CheckAbort(a.l) ;
get_ErrorCheckingOptions(a.l) ;
get_AutoFormatAsYouTypeReplaceHyperlinks(a.l) ;
put_AutoFormatAsYouTypeReplaceHyperlinks(a.l) ;
get_SmartTagRecognizers(a.l) ;
get_NewWorkbook(a.l) ;
get_SpellingOptions(a.l) ;
get_Speech(a.l) ;
get_MapPaperSize(a.l) ;
put_MapPaperSize(a.l) ;
get_ShowStartupDialog(a.l) ;
put_ShowStartupDialog(a.l) ;
get_DecimalSeparator(a.l) ;
put_DecimalSeparator(a.l) ;
get_ThousandsSeparator(a.l) ;
put_ThousandsSeparator(a.l) ;
get_UseSystemSeparators(a.l) ;
put_UseSystemSeparators(a.l) ;
get_ThisCell(a.l) ;
get_RTD(a.l) ;
get_DisplayDocumentActionTaskPane(a.l) ;
put_DisplayDocumentActionTaskPane(a.l) ;
DisplayXMLSourcePane(a.l) ;
get_ArbitraryXMLSupportAvailable(a.l) ;
Support(a.l,b.l,c.l,d.l) ;
EndInterface
Interface Workbooks Extends IDispatch
get_Application(a.l) ;
get_Creator(a.l) ;
get_Parent(a.l) ;
Add(a.l,a.l,a.l,a.l,b.l,c.l) ; I changed this one to pass a VARIANT
Close(a.l) ;
get_Count(a.l) ;
get_Item(a.l,b.l) ;
get__NewEnum(a.l) ;
_Open(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l,i.l,j.l,k.l,l.l,m.l,n.l,o.l) ;
__OpenText(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l,i.l,j.l,k.l,l.l,m.l,n.l,o.l) ;
get__Default(a.l,b.l) ;
_OpenText(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l,i.l,j.l,k.l,l.l,m.l,n.l,o.l,p.l,q.l) ;
Open(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l,i.l,j.l,k.l,l.l,m.l,n.l,o.l,p.l,q.l) ;
OpenText(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l,i.l,j.l,k.l,l.l,m.l,n.l,o.l,p.l,q.l,r.l,s.l) ;
OpenDatabase(a.l,b.l,c.l,d.l,e.l,f.l) ;
CheckOut(a.l) ;
CanCheckOut(a.l,b.l) ;
_OpenXML(a.l,b.l,c.l) ;
OpenXML(a.l,b.l,c.l,d.l) ;
EndInterface
Interface _Workbook Extends IDispatch
get_Application(a.l) ;
get_Creator(a.l) ;
get_Parent(a.l) ;
get_AcceptLabelsInFormulas(a.l) ;
put_AcceptLabelsInFormulas(a.l) ;
Activate(a.l) ;
get_ActiveChart(a.l) ;
get_ActiveSheet(a.l) ;
get_Author(a.l,b.l) ;
put_Author(a.l,b.l) ;
get_AutoUpdateFrequency(a.l) ;
put_AutoUpdateFrequency(a.l) ;
get_AutoUpdateSaveChanges(a.l) ;
put_AutoUpdateSaveChanges(a.l) ;
get_ChangeHistoryDuration(a.l) ;
put_ChangeHistoryDuration(a.l) ;
get_BuiltinDocumentProperties(a.l) ;
ChangeFileAccess(a.l,b.l,c.l,d.l) ;
ChangeLink(a.l,b.l,c.l,d.l) ;
get_Charts(a.l) ;
Close(a.l,b.l,c.l,d.l) ;
get_CodeName(a.l) ;
get__CodeName(a.l) ;
put__CodeName(a.l) ;
get_Colors(a.l,b.l,c.l) ;
put_Colors(a.l,b.l,c.l) ;
get_CommandBars(a.l) ;
get_Comments(a.l,b.l) ;
put_Comments(a.l,b.l) ;
get_ConflictResolution(a.l) ;
put_ConflictResolution(a.l) ;
get_Container(a.l) ;
get_CreateBackup(a.l,b.l) ;
get_CustomDocumentProperties(a.l) ;
get_Date1904(a.l,b.l) ;
put_Date1904(a.l,b.l) ;
DeleteNumberFormat(a.l,b.l) ;
get_DialogSheets(a.l) ;
get_DisplayDrawingObjects(a.l,b.l) ;
put_DisplayDrawingObjects(a.l,b.l) ;
ExclusiveAccess(a.l,b.l) ;
get_FileFormat(a.l,b.l) ;
ForwardMailer(a.l) ;
get_FullName(a.l,b.l) ;
get_HasMailer(a.l,b.l) ;
put_HasMailer(a.l,b.l) ;
get_HasPassword(a.l,b.l) ;
get_HasRoutingSlip(a.l,b.l) ;
put_HasRoutingSlip(a.l,b.l) ;
get_IsAddin(a.l) ;
put_IsAddin(a.l) ;
get_Keywords(a.l,b.l) ;
put_Keywords(a.l,b.l) ;
LinkInfo(a.l,b.l,c.l,d.l,e.l,f.l) ;
LinkSources(a.l,b.l,c.l) ;
get_Mailer(a.l) ;
MergeWorkbook(a.l) ;
get_Modules(a.l) ;
get_MultiUserEditing(a.l,b.l) ;
get_Name(a.l) ;
get_Names(a.l) ;
NewWindow(a.l,b.l) ;
get_OnSave(a.l,b.l) ;
put_OnSave(a.l,b.l) ;
get_OnSheetActivate(a.l,b.l) ;
put_OnSheetActivate(a.l,b.l) ;
get_OnSheetDeactivate(a.l,b.l) ;
put_OnSheetDeactivate(a.l,b.l) ;
OpenLinks(a.l,b.l,c.l,d.l) ;
get_Path(a.l,b.l) ;
get_PersonalViewListSettings(a.l) ;
put_PersonalViewListSettings(a.l) ;
get_PersonalViewPrintSettings(a.l) ;
put_PersonalViewPrintSettings(a.l) ;
PivotCaches(a.l) ;
Post(a.l,b.l) ;
get_PrecisionAsDisplayed(a.l,b.l) ;
put_PrecisionAsDisplayed(a.l,b.l) ;
_PrintOut(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l) ;
PrintPreview(a.l,b.l) ;
_Protect(a.l,b.l,c.l) ;
ProtectSharing(a.l,b.l,c.l,d.l,e.l,f.l) ;
get_ProtectStructure(a.l) ;
get_ProtectWindows(a.l) ;
get_ReadOnly(a.l,b.l) ;
get__ReadOnlyRecommended(a.l,b.l) ;
RefreshAll() ;
Reply(a.l) ;
ReplyAll(a.l) ;
RemoveUser(a.l) ;
get_RevisionNumber(a.l,b.l) ;
Route(a.l) ;
get_Routed(a.l,b.l) ;
get_RoutingSlip(a.l) ;
RunAutoMacros(a.l,b.l) ;
Save(a.l) ;
_SaveAs(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l,i.l,j.l,k.l,l.l) ;
SaveCopyAs(a.l,b.l) ;
get_Saved(a.l,b.l) ;
put_Saved(a.l,b.l) ;
get_SaveLinkValues(a.l,b.l) ;
put_SaveLinkValues(a.l,b.l) ;
SendMail(a.l,b.l,c.l,d.l) ;
SendMailer(a.l,b.l,c.l) ;
SetLinkOnData(a.l,b.l,c.l) ;
get_Sheets(a.l) ;
get_ShowConflictHistory(a.l,b.l) ;
put_ShowConflictHistory(a.l,b.l) ;
get_Styles(a.l) ;
get_Subject(a.l,b.l) ;
put_Subject(a.l,b.l) ;
get_Title(a.l,b.l) ;
put_Title(a.l,b.l) ;
Unprotect(a.l,b.l) ;
UnprotectSharing(a.l) ;
UpdateFromFile(a.l) ;
UpdateLink(a.l,b.l,c.l) ;
get_UpdateRemoteReferences(a.l,b.l) ;
put_UpdateRemoteReferences(a.l,b.l) ;
get_UserControl(a.l) ;
put_UserControl(a.l) ;
get_UserStatus(a.l,b.l) ;
get_CustomViews(a.l) ;
get_Windows(a.l) ;
get_Worksheets(a.l) ;
get_WriteReserved(a.l,b.l) ;
get_WriteReservedBy(a.l,b.l) ;
get_Excel4IntlMacroSheets(a.l) ;
get_Excel4MacroSheets(a.l) ;
get_TemplateRemoveExtData(a.l) ;
put_TemplateRemoveExtData(a.l) ;
HighlightChangesOptions(a.l,b.l,c.l) ;
get_HighlightChangesOnScreen(a.l) ;
put_HighlightChangesOnScreen(a.l) ;
get_KeepChangeHistory(a.l) ;
put_KeepChangeHistory(a.l) ;
get_ListChangesOnNewSheet(a.l) ;
put_ListChangesOnNewSheet(a.l) ;
PurgeChangeHistoryNow(a.l,b.l) ;
AcceptAllChanges(a.l,b.l,c.l) ;
RejectAllChanges(a.l,b.l,c.l) ;
PivotTableWizard(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l,i.l,j.l,k.l,l.l,m.l,n.l,o.l,p.l,q.l) ;
ResetColors() ;
get_VBProject(a.l) ;
FollowHyperlink(a.l,b.l,c.l,d.l,e.l,f.l,g.l) ;
AddToFavorites() ;
get_IsInplace(a.l) ;
PrintOut(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l,i.l) ;
WebPagePreview() ;
get_PublishObjects(a.l) ;
get_WebOptions(a.l) ;
ReloadAs(a.l) ;
get_HTMLProject(a.l) ;
get_EnvelopeVisible(a.l) ;
put_EnvelopeVisible(a.l) ;
get_CalculationVersion(a.l) ;
Dummy17(a.l) ;
sblt(a.l) ;
get_VBASigned(a.l) ;
get_ShowPivotTableFieldList(a.l) ;
put_ShowPivotTableFieldList(a.l) ;
get_UpdateLinks(a.l) ;
put_UpdateLinks(a.l) ;
BreakLink(a.l,b.l) ;
Dummy16() ;
SaveAs(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l,i.l,j.l,k.l,l.l,m.l) ;
get_EnableAutoRecover(a.l) ;
put_EnableAutoRecover(a.l) ;
get_RemovePersonalInformation(a.l) ;
put_RemovePersonalInformation(a.l) ;
get_FullNameURLEncoded(a.l,b.l) ;
CheckIn(a.l,b.l,c.l) ;
CanCheckIn(a.l) ;
SendForReview(a.l,b.l,c.l,d.l) ;
ReplyWithChanges(a.l) ;
EndReview() ;
get_Password(a.l) ;
put_Password(a.l) ;
get_WritePassword(a.l) ;
put_WritePassword(a.l) ;
get_PasswordEncryptionProvider(a.l) ;
get_PasswordEncryptionAlgorithm(a.l) ;
get_PasswordEncryptionKeyLength(a.l) ;
SetPasswordEncryptionOptions(a.l,b.l,c.l,d.l) ;
get_PasswordEncryptionFileProperties(a.l) ;
get_ReadOnlyRecommended(a.l) ;
put_ReadOnlyRecommended(a.l) ;
Protect(a.l,b.l,c.l) ;
get_SmartTagOptions(a.l) ;
RecheckSmartTags() ;
get_Permission(a.l) ;
get_SharedWorkspace(a.l) ;
get_Sync(a.l) ;
SendFaxOverInternet(a.l,b.l,c.l) ;
get_XmlNamespaces(a.l) ;
get_XmlMaps(a.l) ;
XmlImport(a.l,b.l,c.l,d.l,e.l) ;
get_SmartDocument(a.l) ;
get_DocumentLibraryVersions(a.l) ;
get_InactiveListBorderVisible(a.l) ;
put_InactiveListBorderVisible(a.l) ;
get_DisplayInkComments(a.l) ;
put_DisplayInkComments(a.l) ;
XmlImportXml(a.l,b.l,c.l,d.l,e.l) ;
SaveAsXMLData(a.l,b.l) ;
ToggleFormsDesign() ;
EndInterface
Global oExcel._Application
Global oWorkbooks.Workbooks
Global oWorkbook._Workbook
Global None.VARIANT
None\vt = #VT_ERROR
None\scode = #DISP_E_PARAMNOTFOUND
Debug SizeOf(None)
Structure MyDummy
array.l[4]
EndStructure
*pDummy.MyDummy = None
Debug *pDummy\array[0]
Procedure.s Uni2Ansi(unicodestr.l)
lenA = WideCharToMultiByte_(#CP_ACP, 0, unicodestr, -1, 0, 0, 0, 0);
ansistr.s = Space(lenA)
If (lenA > 0)
WideCharToMultiByte_(#CP_ACP, 0, unicodestr, -1, @ansistr, lenA, 0, 0);
EndIf
ProcedureReturn ansistr
EndProcedure
Procedure.l Ansi2Uni(ansistr.s)
lenA.l = Len(ansistr)
lenW = MultiByteToWideChar_(#CP_ACP, 0, ansistr, lenA, 0, 0)
If (lenW > 0) ; Check whether conversion was successful
unicodestr = SysAllocStringLen_(0, lenW)
MultiByteToWideChar_(#CP_ACP, 0, ansistr, lenA, unicodestr, lenW)
result = unicodestr
SysFreeString_(unicodestr)
ProcedureReturn result
Else
ProcedureReturn 0
EndIf
EndProcedure
;- Start program
OnErrorGoto(?Error)
OleInitialize_(0)
If CoCreateInstance_(?CLSID_xlApplication,0,#CLSCTX_LOCAL_SERVER,?IID_xlApplication,@oExcel)<>0
MessageRequester("Warning:","Couldn't init oExcel",0)
End
EndIf
Debug oExcel
oExcel\put_Caption(Ansi2Uni("Excel from PureBasic"))
;VariantChangeType_( @Variant.VARIANT, *oVarDesc\union,0,#VT_INT)
oExcel\put_Visible(lcid,#True)
oExcel\get_Workbooks(@oWorkbooks)
Debug oWorkbooks
If oWorkbooks\Add(*pDummy\array[0],*pDummy\array[1],*pDummy\array[2], *pDummy\array[3], lcid, @oWorkbook) = #S_OK
Debug oWorkbook
Delay(5000) ; Wait for 5 seconds
Else
SetErrorNumber(err)
EndIf
;- End program
Finish:
oExcel\Quit()
If oWorkbook
oWorkbook\Release()
EndIf
If oWorkbooks
oWorkbooks\Release()
EndIf
oExcel\Release()
OleUninitialize_()
End
;- Error handler
Error:
error.s = Space(500)
error = GetErrorDescription()
CRLF.s = Chr(13)+Chr(10)
msg.s = ""
msg = Str(GetErrorLineNR()) + ":" + error + " (" + Hex(GetErrorNumber()) + " )" + CRLF
msg = msg + "Severitycode " + Bin((err >> 30) & $0003) + " " + CRLF
msg = msg + "Facilitycode " + Str((err >> 16) & $0FFF) + " " + CRLF
msg = msg + "Errorcode " + Str(err & $FFFF)
MessageRequester("Error", msg, 0)
Goto Finish
End
DataSection
CLSID_xlApplication: ;{00024500-0000-0000-C000-000000000046}
Data.l $00024500
Data.w $0000,$0000
Data.b $C0,$00,$00,$00,$00,$00,$00,$46
EndDataSection
DataSection
IID_xlApplication: ;{000208D5-0000-0000-C000-000000000046}
Data.l $000208D5
Data.w $0000,$0000
Data.b $C0,$00,$00,$00,$00,$00,$00,$46
EndDataSection