$INCLUDE "RAPIDQ.INC"
$APPTYPE GUI
$TYPECHECK OFF
$ESCAPECHARS ON


DECLARE SUB Free_Objects(Action AS INTEGER)
DECLARE SUB SaveSheet

CREATE ExcelWnd AS QFORM
	Width=600: Height = 400
	Center
    OnClose=Free_Objects
	CREATE MainMenu AS QMAINMENU
		CREATE FileMenu AS QMENUITEM					'***** FILE  MENUS ********
			Caption = "  &File"
		CREATE AddXmodelMnu AS QMENUITEM
				Caption = "Save (RapidQ takes over)":		OnClick =SaveSheet
		END CREATE
		END CREATE
	END CREATE
END CREATE

SUB MyMouseDown(Button%, X%, Y%, Shift%) 
Showmessage "mouse clicked"'str$(X%)
END SUB


DIM var1 AS VARIANT, var2 AS VARIANT, var3 AS VARIANT
DIM ExcelApp AS QOLEOBJECT

DIM OLECheckBox AS QOLECONTAINER
	OLECheckBox.Parent = ExcelWnd
	OLECheckBox.Left = 620: OLECheckBox.Top = 2
	OLECheckBox.OnMouseDown = MyMouseDown
DIM ExcelSheet AS QOLECONTAINER
	ExcelSheet.Parent = ExcelWnd
	ExcelSheet.Width=580
	ExcelSheet.Height=380
    ExcelSheet.Top = 15
'    ExcelSheet.Align=alClient
'	ExcelSheet.SizeMode=smClip ' Ignore/d.
	ExcelSheet.BorderStyle=bsSizeable ' bsSizeable only, otherwise Lock- Out.
	' Keep the Object invisible until we have created the Object, otherwise refresh problems
	ExcelSheet.AutoShow=0
ExcelApp.CreateObject("Excel.Application") 'also("Excel.AddIn")
DEFINT lpMo = CODEPTR(MyMouseDown)\
ExcelApp.OnDoubleClick = "Run a macro"
ExcelSheet.CreateObject("Excel.Sheet")

'var1=Range("A2").Select

DEFSTR mMethod = "ActiveDialog" '"worksheets" '"workbooks"
DEFINT iid = 0
iid = Excelapp.GetIDofName(mMethod)
IF iid = -1 THEN
	 Showmessage "no support for " + mMethod + " statement"
ELSE
	Showmessage "ID of " + mMethod + " is " + HEX$(iid)
END IF

DEFINT workbk = Excelapp.GetObject("workbooks"): showmessage str$(workbk) : workbk = Excelapp.GetObject("Excel.Sheet"):  showmessage str$(workbk): workbk = Excelapp.GetObject("workbooks.Open"): showmessage str$(workbk)



'DIM v as variant
'
'Excelapp.Invoke("ActiveWorkbook")

'"FileOpen", "C:\Rapidq\examples\OLE\test.xls")
'Excelapp.Calculate
'mMethod = Excelapp.Version
'showmessage mMethod
Excelapp.Cells(2,5) ="23"			'row, column in spreadsheet
Excelapp.Cells(3,5) ="2"			'row, column in spreadsheet
Excelapp.Cells(6,7)= "=Sum(D1:E1)"	'quick way to enter in formula
Excelapp.Cells(1,5) ="aaa"			'same -- row column format
DEFINT theVal = Excelapp.Cells(3,5)
Showmessage "the val = "+str$(TheVal)
showmessage str$( Excelapp.Cells(2,5))

'Excelapp.SelectRange("A1:B12")
'ExcelSheet.ActiveCell = "A2"

ExcelSheet.Show 					' Now show the Object.
'once shown, the parent is active now widgets go on form.
OLECheckBox.CreateObject("Forms.MultiPage.1") '("Forms.CheckBox.1") '("Forms.OptionButton.1")
ExcelWnd.ShowModal

SUB SaveSheet
DEFSTR myName ="c:\extemp.xls"

    ExcelSheet.Saveas (myName)
'    ExcelSheet.SaveAs ("c:\extemp.xls")
'    ExcelSheet.Saveas ("c:\exxol.xls", ,,,,)

'("SaveAs", _
'    v_Filename as VARIANT, _ ' [VT_VARIANT] 
'    v_FileFormat as VARIANT, _ ' [VT_VARIANT] 
'    v_Password as VARIANT, _ ' [VT_VARIANT] 
'    v_WriteResPassword as VARIANT, _ ' [VT_VARIANT] 
'    v_ReadOnlyRecommended as VARIANT, _ ' [VT_VARIANT] 
'    v_CreateBackup as VARIANT) ' [VT_VARIANT] 

END SUB

SUB Free_Objects(Action AS INTEGER)
 ExcelSheet.Free
 OLECheckBox.Free
 ExcelApp.Free
END SUB
