INTELLIGENT WORK FORUMS
FOR COMPUTER PROFESSIONALS

Log In

Come Join Us!

Are you a
Computer / IT professional?
Join Tek-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!

*Tek-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Jobs

Usefull Functions & Procedures

Export a cursor / table to pptx format (MsOffice 2007+) without automation by vgulielmus
Posted: 9 Dec 14

The copytopptx procedure export an opened cursor / table to pptx format.
No automation is used and no need for Ms Office or other Office package to be installed.

CODE --> Foxpro

* demo *
CLOSE DATABASES ALL 
CLEAR ALL 

USE (HOME(2)+'data\customer')
DO copytopptx WITH 'customer','3',.T.,"company,contact,MAXORDAMT"
USE IN customer

**********************************************************************************
**********************************************************************************
* PROCEDURE copytopptx                                                           *
* Version 1.2                                                                    *
* export a cursor / table to pptx format                                         *
* no need for MsOffice to be installed                                           *
*                                                                                *
* Parameters                                                                     *
* cCur		name of the table / cursor                                       *
* lcFileName	optional, name of the docx                                       *
* llHead	optional, .T. first row of exported table contain column names   *
* lcFFields	optional, list (subset) of fields to be outputed                 *
**********************************************************************************
**********************************************************************************
PROCEDURE copytopptx
* Version 1.2
# DEFINE theLanguage "ro-RO"
# DEFINE theNoOfRows 12   && nbumber of rows / slide
# DEFINE theSildeTitle "Page" && tile of the slides

LPARAMETERS cCur,lcFileName,llHead,lcFFields

DECLARE INTEGER ShellExecute IN SHELL32.DLL INTEGER nWinHandle,STRING cOperation,STRING cFileName,STRING cParameters,STRING cDirectory,INTEGER nShowWindow
DECLARE Sleep IN kernel32 INTEGER

LOCAL lcMyPath,lcDir,loerr as Exception
LOCAL lnRowsNo,lnColsNo,laFields[1,5],lnCurRow,lnCurCol,lnTime,ltTime,lcSetDec,lnColsNoAll,laFieldsAll[1],lnII,lSetTalk,lnFFields,laFFields[1]
LOCAL lcValue,lcType,lnDec,cMax,ldValue
LOCAL lcCurr,llLeftCurr,llBelow7
LOCAL lnFHSh,lcLenStr,lcLenIdx,lnCountbefore,lcField,lcCurRow,ofile,lcSource,lcZipFileName,oShell,oFolder,lcColWidth,lnSlideNo,lntheNoOfRows,lnCurSlide

IF PCOUNT() < 1 
	MESSAGEBOX("Nothing to export",48,"No pptx generated")
	RETURN
ELSE
	IF VARTYPE(m.cCur) $ "CV"
		IF !USED(m.cCur)
			USE (m.cCur)
		ENDIF
	ELSE
		MESSAGEBOX("Not a cursor/table name",48,"No pptx generated")
		RETURN
	ENDIF
ENDIF
IF PCOUNT() < 2 
	lcFileName = FORCEEXT(SYS(2015),"pptx")
ELSE
	IF VARTYPE(m.lcFileName) $ "CV"
		lcFileName = FORCEEXT(m.lcFileName,"pptx")
	ELSE
		lcFileName = FORCEEXT(SYS(2015),"pptx")
	ENDIF
ENDIF
IF PCOUNT() < 3
	llHead = .F.
ELSE
	IF VARTYPE(m.llHead) <> "L"
		llHead = .F.
	ENDIF
ENDIF

IF FILE(FORCEEXT(m.lcFileName,"pptx"))
	IF MESSAGEBOX(FORCEEXT(m.lcFileName,"pptx")+" already exist."+CHR(13)+"Overwrite?",4+48) = 7
		RETURN
	ELSE
		ERASE (FORCEEXT(m.lcFileName,"pptx")) RECYCLE
	ENDIF
ENDIF
IF PCOUNT()<4
	lcFFields = ""
ELSE
	IF VARTYPE(m.lcFFields) <> "C"
		lcFFields = ""
	ELSE
		lnFFields = ALINES(laFFields,m.lcFFields,1+4,",")
	ENDIF
ENDIF

lSetTalk = SET("Talk")
SET TALK OFF 
lnColsNoAll=AFIELDS(m.laFieldsAll,m.cCur)
lnColsNo = 0

FOR lnCurCol = 1 TO m.lnColsNoAll
	IF m.laFieldsAll[m.lnCurCol,2] $ "NFYBIDTLCVM"
		IF !EMPTY(m.lcFFields)
			IF ASCAN(m.laFFields,laFieldsAll[m.lnCurCol,1],1,-1,-1,1+2+4)=0
				LOOP
			ENDIF
		ENDIF
		lnColsNo = m.lnColsNo + 1
		DIMENSION laFields[m.lnColsNo,5]
		laFields[m.lnColsNo,1] = laFieldsAll[m.lnCurCol,1]
		laFields[m.lnColsNo,2] = laFieldsAll[m.lnCurCol,2]
		laFields[m.lnColsNo,3] = laFieldsAll[m.lnCurCol,3]
		laFields[m.lnColsNo,4] = laFieldsAll[m.lnCurCol,4]
		laFields[m.lnColsNo,5] = IIF(m.lnColsNo<=26,[],CHR(64+FLOOR((m.lnColsNo-1)/26)))+CHR(65+MOD(m.lnColsNo-1,26))
	ELSE
		LOOP
	ENDIF
NEXT
lcColWidth = LTRIM(STR(FLOOR(8229600 / m.lnColsNo)))

SELECT (m.cCur)
COUNT TO m.lnRowsNo
lnRowsNo = m.lnRowsNo + IIF(m.llHead,1,0) 
lntheNoOfRows = theNoOfRows + IIF(m.llHead,0,1) && number of rows / slide
lnSlideNo = CEILING(m.lnRowsNo / m.lntheNoOfRows)


lcCurr = CHRTRAN(ALLTRIM(TRANSFORM(0,"@$")),"0"+IIF(SET("Decimals")>0,SET("Point")+REPLICATE("0",SET("Decimals")),""),"")
llLeftCurr = SET("Currency")=="LEFT"

lcMyPath=''
IF !EMPTY(JUSTPATH(m.lcFileName))
	lcMyPath=ADDBS(JUSTPATH(m.lcFileName)) 
	SET DEFAULT TO (m.lcMyPath)
ELSE
	lcMyPath = ADDBS(JUSTPATH(FULLPATH(m.lcFileName)))
ENDIF

lcDir=gen_dirs()
gen_Content_Types(m.lcDir,m.lnSlideNo)
gen_rels(ADDBS(m.lcDir+[_rels]))
gen_app(ADDBS(m.lcDir+[docProps]),m.lnSlideNo)
gen_core(ADDBS(m.lcDir+[docProps]))
gen_presentation(ADDBS(m.lcDir+[ppt]),m.lnSlideNo)
gen_presProps(ADDBS(m.lcDir+[ppt]))
gen_tableStyles(ADDBS(m.lcDir+[ppt]))
gen_viewProps(ADDBS(m.lcDir+[ppt]))
gen_pptrels(ADDBS(ADDBS(m.lcDir+[ppt])+[_rels]),m.lnSlideNo)
gen_slideLayoutsrels(ADDBS(ADDBS(ADDBS(m.lcDir+[ppt])+[slideLayouts])+[_rels]))
gen_slideLayouts(ADDBS(ADDBS(m.lcDir+[ppt])+[slideLayouts]))
gen_slideMastersrels(ADDBS(ADDBS(ADDBS(m.lcDir+[ppt])+[slideMasters])+[_rels]))
gen_slideMasters(ADDBS(ADDBS(m.lcDir+[ppt])+[slideMasters]))
gen_slidesrels(ADDBS(ADDBS(ADDBS(m.lcDir+[ppt])+[slides])+[_rels]),m.lnSlideNo)
gen_theme(ADDBS(ADDBS(m.lcDir+[ppt])+[theme]))

SELECT (m.cCur)
GO TOP

FOR lnCurSlide = 1 TO m.lnSlideNo
	* Begin document
	lnFHSh = FCREATE(ADDBS(ADDBS(m.lcDir+[ppt])+[slides]) + [slide] + LTRIM(STR(m.lnCurSlide)) + [.xml])
	IF m.lnFHSh < 0
		MESSAGEBOX([Cannot create slide] + LTRIM(STR(m.lnCurSlide)) + [.xml],16,'Abort')
		RETURN
	ENDIF
	FWRITE(m.lnFHSh,[<?xml version="1.0" encoding="UTF-8" standalone="yes"?>]+CHR(10))
	FWRITE(m.lnFHSh,[<p:sld xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" ])
	FWRITE(m.lnFHSh,[xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main">])
	FWRITE(m.lnFHSh,[<p:cSld>])
	FWRITE(m.lnFHSh,[<p:spTree>])
	FWRITE(m.lnFHSh,[<p:nvGrpSpPr>])
	FWRITE(m.lnFHSh,[<p:cNvPr id="1" name=""/>])
	FWRITE(m.lnFHSh,[<p:cNvGrpSpPr/>])
	FWRITE(m.lnFHSh,[<p:nvPr/>])
	FWRITE(m.lnFHSh,[</p:nvGrpSpPr>])
	FWRITE(m.lnFHSh,[<p:grpSpPr>])
	FWRITE(m.lnFHSh,[<a:xfrm>])
	FWRITE(m.lnFHSh,[<a:off x="0" y="0"/>])
	FWRITE(m.lnFHSh,[<a:ext cx="0" cy="0"/>])
	FWRITE(m.lnFHSh,[<a:chOff x="0" y="0"/>])
	FWRITE(m.lnFHSh,[<a:chExt cx="0" cy="0"/>])
	FWRITE(m.lnFHSh,[</a:xfrm>])
	FWRITE(m.lnFHSh,[</p:grpSpPr>])
	FWRITE(m.lnFHSh,[<p:sp>])
	FWRITE(m.lnFHSh,[<p:nvSpPr>])
	FWRITE(m.lnFHSh,[<p:cNvPr id="] + LTRIM(STR(m.lnCurSlide * 2)) + [" name="Title ] + LTRIM(STR(m.lnCurSlide * 2 - 1)) + ["/>])
	FWRITE(m.lnFHSh,[<p:cNvSpPr>])
	FWRITE(m.lnFHSh,[<a:spLocks noGrp="1"/>])
	FWRITE(m.lnFHSh,[</p:cNvSpPr>])
	FWRITE(m.lnFHSh,[<p:nvPr>])
	FWRITE(m.lnFHSh,[<p:ph type="title"/>])
	FWRITE(m.lnFHSh,[</p:nvPr>])
	FWRITE(m.lnFHSh,[</p:nvSpPr>])
	FWRITE(m.lnFHSh,[<p:spPr/>])
	FWRITE(m.lnFHSh,[<p:txBody>])
	FWRITE(m.lnFHSh,[<a:bodyPr/>])
	FWRITE(m.lnFHSh,[<a:lstStyle/>])
	FWRITE(m.lnFHSh,[<a:p>])
	FWRITE(m.lnFHSh,[<a:r>])
	FWRITE(m.lnFHSh,[<a:rPr lang="] + theLanguage + [" dirty="0" smtClean="0"/>])
	FWRITE(m.lnFHSh,[<a:t>] + theSildeTitle + LTRIM(STR(m.lnCurSlide)) + [</a:t>])
	FWRITE(m.lnFHSh,[</a:r>])
	FWRITE(m.lnFHSh,[<a:endParaRPr lang="] + theLanguage + [" dirty="0"/>])
	FWRITE(m.lnFHSh,[</a:p>])
	FWRITE(m.lnFHSh,[</p:txBody>])
	FWRITE(m.lnFHSh,[</p:sp>])


	FWRITE(m.lnFHSh,[<p:graphicFrame>])
	FWRITE(m.lnFHSh,[<p:nvGraphicFramePr>])
	FWRITE(m.lnFHSh,[<p:cNvPr id="] + IIF(m.lnCurSlide = 3,"2","6") + [" name="Content Placeholder 5"/>])
	FWRITE(m.lnFHSh,[<p:cNvGraphicFramePr>])
	FWRITE(m.lnFHSh,[<a:graphicFrameLocks noGrp="1"/>])
	FWRITE(m.lnFHSh,[</p:cNvGraphicFramePr>])
	FWRITE(m.lnFHSh,[<p:nvPr>])
	FWRITE(m.lnFHSh,[<p:ph idx="1"/>])
	FWRITE(m.lnFHSh,[</p:nvPr>])
	FWRITE(m.lnFHSh,[</p:nvGraphicFramePr>])
	FWRITE(m.lnFHSh,[<p:xfrm>])
	FWRITE(m.lnFHSh,[<a:off x="457200" y="1600200"/>])
	FWRITE(m.lnFHSh,[<a:ext cx="8229600" cy="5359400"/>])
	FWRITE(m.lnFHSh,[</p:xfrm>])
	FWRITE(m.lnFHSh,[<a:graphic>])
	FWRITE(m.lnFHSh,[<a:graphicData uri="http://schemas.openxmlformats.org/drawingml/2006/table">])
	FWRITE(m.lnFHSh,[<a:tbl>])
	FWRITE(m.lnFHSh,[<a:tblPr firstRow="1" bandRow="1">])
	FWRITE(m.lnFHSh,[<a:tableStyleId>{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}</a:tableStyleId>])
	FWRITE(m.lnFHSh,[</a:tblPr>])
	FWRITE(m.lnFHSh,[<a:tblGrid>])
	FOR lnCurCol = 1 TO m.lnColsNo
		FWRITE(m.lnFHSh,[<a:gridCol w="] + m.lcColWidth + ["/>])
	NEXT
	FWRITE(m.lnFHSh,[</a:tblGrid>])

	IF m.llHead
		FWRITE(m.lnFHSh,[<a:tr h="370840">])
		FOR lnCurCol = 1 TO m.lnColsNo
			FWRITE(m.lnFHSh,[<a:tc>])
			FWRITE(m.lnFHSh,[<a:txBody>])
			FWRITE(m.lnFHSh,[<a:bodyPr/>])
			FWRITE(m.lnFHSh,[<a:lstStyle/>])
			FWRITE(m.lnFHSh,[<a:p>])
			FWRITE(m.lnFHSh,[<a:r>])
			FWRITE(m.lnFHSh,[<a:rPr lang="] + theLanguage + [" dirty="0" smtClean="0"/>])
			FWRITE(m.lnFHSh,[<a:t>] + m.laFields[m.lnCurCol,1] + [</a:t>])
			FWRITE(m.lnFHSh,[</a:r>])
			FWRITE(m.lnFHSh,[<a:endParaRPr lang="] + theLanguage + [" dirty="0"/>])
			FWRITE(m.lnFHSh,[</a:p>])
			FWRITE(m.lnFHSh,[</a:txBody>])
			FWRITE(m.lnFHSh,[<a:tcPr/>])
			FWRITE(m.lnFHSh,[</a:tc>])
		NEXT
		FWRITE(m.lnFHSh,[</a:tr>])
	ENDIF

	lcSetDec = SET("Decimals")
	SET DECIMALS TO 13
	SELECT (m.cCur)
	SCAN NEXT m.lntheNoOfRows
		FWRITE(m.lnFHSh,[<a:tr h="370840">])
		FOR lnCurCol = 1 TO m.lnColsNo
			lcValue = EVALUATE(m.laFields[m.lnCurCol,1])
			lcType = m.laFields[m.lnCurCol,2]
			lnDec = m.laFields[m.lnCurCol,4]
			IF ISNULL(m.lcValue)
				lcValue = ''
				lcType = 'C'
			ENDIF
			DO CASE
			CASE m.lcType $ "CV" && character
				lcValue = htmspec(RTRIM(m.lcValue))
			CASE m.lcType == "I" && integer
				lcValue = LTRIM(STR(m.lcValue))
			CASE m.lcType $ "NF" && number, float
				lcValue = LTRIM(STR(m.lcValue,m.laFields[m.lnCurCol,3],m.lnDec))
			CASE m.lcType == "D" && date
					lcValue = DTOC(m.lcValue)
			CASE m.lcType == "T" && time
				lcValue = TTOC(m.lcValue)
			CASE m.lcType == "L" && boolean
				lcValue = IIF(m.lcValue ,'True','False')
			CASE m.lcType == "Y" && currency
				IF m.llLeftCurr
					lcValue = m.lcCurr + LTRIM(STR(m.lcValue,21,4))
				ELSE
					lcValue = LTRIM(STR(m.lcValue,21,4)) + ' ' + m.lcCurr
				ENDIF
			CASE m.lcType == "B" && double
				lcValue = LTRIM(STR(m.lcValue,21,m.lnDec))
			CASE m.lcType == "M" && memo
				lcValue = htmspec(RTRIM(m.lcValue))
			ENDCASE
			FWRITE(m.lnFHSh,[<a:tc>])
			FWRITE(m.lnFHSh,[<a:txBody>])
			FWRITE(m.lnFHSh,[<a:bodyPr/>])
			FWRITE(m.lnFHSh,[<a:lstStyle/>])
			FWRITE(m.lnFHSh,[<a:p>])
			FWRITE(m.lnFHSh,[<a:r>])
			FWRITE(m.lnFHSh,[<a:rPr lang="] + theLanguage + [" dirty="0" smtClean="0"/>])
			FWRITE(m.lnFHSh,[<a:t>] + m.lcValue + [</a:t>])
			FWRITE(m.lnFHSh,[</a:r>])
			FWRITE(m.lnFHSh,[<a:endParaRPr lang="] + theLanguage + [" dirty="0"/>])
			FWRITE(m.lnFHSh,[</a:p>])
			FWRITE(m.lnFHSh,[</a:txBody>])
			FWRITE(m.lnFHSh,[<a:tcPr/>])
			FWRITE(m.lnFHSh,[</a:tc>])
		NEXT
		FWRITE(m.lnFHSh,[</a:tr>])
	ENDSCAN
	IF !EOF()
		SKIP
	ENDIF

	* End document
	FWRITE(m.lnFHSh,[</a:tbl>])
	FWRITE(m.lnFHSh,[</a:graphicData>])
	FWRITE(m.lnFHSh,[</a:graphic>])
	FWRITE(m.lnFHSh,[</p:graphicFrame>])
	FWRITE(m.lnFHSh,[</p:spTree>])
	FWRITE(m.lnFHSh,[</p:cSld>])
	FWRITE(m.lnFHSh,[<p:clrMapOvr>])
	FWRITE(m.lnFHSh,[<a:masterClrMapping/>])
	FWRITE(m.lnFHSh,[</p:clrMapOvr>])
	FWRITE(m.lnFHSh,[</p:sld>])
	FCLOSE(m.lnFHSh)
NEXT
*****

SET DECIMALS TO &lcSetDec 

lcSource = m.lcMyPath + m.lcDir &&"<< fully qualified path name to some folder >>"
lcZipFileName = m.lcMyPath + FORCEEXT(m.lcFileName,'zip') &&"<< fully qualified path name to some zip file >>"

TRY
	IF FILE(m.lcZipFileName)
		ERASE (m.lcZipFileName)
	ENDIF
CATCH TO m.loerr
ENDTRY

TRY
	IF FILE(m.lcFileName)
		ERASE (m.lcFileName)
	ENDIF
CATCH TO m.loerr
ENDTRY

STRTOFILE(CHR( 80 )+CHR( 75 )+CHR( 5 )+CHR( 6 )+REPLICATE( CHR(0), 18 ), m.lcZipFileName)
oShell = CREATEOBJECT("shell.application")
oFolder = m.oShell.NameSpace( m.lcSource ).items

llBelow7 = OS(3)<'6' OR OS(3)='6' AND OS(4)<'1'
IF m.llBelow7 && Win XP
	TRY
		FOR EACH ofile IN m.oFolder
			lnCountbefore = m.oShell.NameSpace( m.lcSource ).items.count
			oShell.NameSpace( m.lcZipFileName ).movehere( m.ofile )
			sleep(100)
		ENDFOR
	CATCH TO loErr
	ENDTRY

	llErr = .T.
	DO WHILE llErr
		TRY
			llErr = .F.
			RENAME (m.lcZipFileName) TO (FORCEEXT(m.lcZipFileName,"pptx"))
		CATCH
			llErr = .T.
			sleep(100)
		ENDTRY
	ENDDO
	DO cleanup WITH m.lcDir
ELSE && WIN 7
	TRY
		FOR EACH ofile IN m.oFolder
			lnCountbefore = m.oShell.NameSpace( m.lcSource ).items.count
			oShell.NameSpace( m.lcZipFileName ).movehere( m.ofile )
			sleep(100)
			DO WHILE m.lnCountbefore = m.oShell.NameSpace( m.lcSource ).items.count
				sleep(100)
			ENDDO
		ENDFOR
	CATCH TO loErr
	ENDTRY

	TRY 
		RD (m.lcDir)
	CATCH TO m.loErr
	ENDTRY

	RENAME (m.lcZipFileName) TO (FORCEEXT(m.lcZipFileName,"pptx"))
ENDIF

ShellExecute(0,"Open",FORCEEXT(m.lcZipFileName,"pptx"),"","",1)

SET TALK &lSetTalk

**********************
* Special characters *
**********************
FUNCTION htmspec
	LPARAMETERS cStr
	LOCAL lni,lcStrF,lcChar,lnChar,lcStrF2
	lcStrF = m.cStr
	IF AT(CHR(38),m.lcStrF)>0
		lcStrF = STRTRAN(m.lcStrF,CHR(38),'&')
	ENDIF
	IF AT('>',m.lcStrF)>0
		lcStrF = STRTRAN(m.lcStrF,'>','>')
	ENDIF
	IF AT('<',m.lcStrF)>0
		lcStrF = STRTRAN(m.lcStrF,'<','<')
	ENDIF

	lcStrF2 = ''
	FOR lni=1 TO LEN(m.lcStrF)
		lcChar = SUBSTR(m.lcStrF,m.lni,1)
		lnChar = ASC(m.lcChar)
		lcStrF2 = m.lcStrF2 + IIF(m.lnChar < 128 , m.lcChar , [&#]+STR(m.lnChar,3)+[;])
	NEXT
	RETURN m.lcStrF2
ENDFUNC

**********************
* For OS below Win 7 *
**********************
PROCEDURE cleanup
	LPARAMETERS lcDir
	LOCAL lSetSafety
	lSetSafety = SET("Safety")
	SET SAFETY OFF
	ERASE (ADDBS(ADDBS(ADDBS(m.lcDir+[ppt])+[slides])+[_rels]) + "*.*")
	RD (ADDBS(ADDBS(ADDBS(m.lcDir+[ppt])+[slides])+[_rels]))
	ERASE (ADDBS(ADDBS(m.lcDir+[ppt])+[slides]) + "*.*")
	RD (ADDBS(ADDBS(m.lcDir+[ppt])+[slides]))
	ERASE (ADDBS(ADDBS(ADDBS(m.lcDir+[ppt])+[slideMasters])+[_rels]) + "*.*")
	RD (ADDBS(ADDBS(ADDBS(m.lcDir+[ppt])+[slideMasters])+[_rels]))
	ERASE (ADDBS(ADDBS(m.lcDir+[ppt])+[slideMasters]) + "*.*")
	RD (ADDBS(ADDBS(m.lcDir+[ppt])+[slideMasters]))
	ERASE (ADDBS(ADDBS(ADDBS(m.lcDir+[ppt])+[slideLayouts])+[_rels]) + "*.*")
	RD (ADDBS(ADDBS(ADDBS(m.lcDir+[ppt])+[slideLayouts])+[_rels]))
	ERASE (ADDBS(ADDBS(m.lcDir+[ppt])+[slideLayouts]) + "*.*")
	RD (ADDBS(ADDBS(m.lcDir+[ppt])+[slideLayouts]))
	ERASE (ADDBS(ADDBS(m.lcDir+[ppt])+[theme]) + "*.*")
	RD (ADDBS(ADDBS(m.lcDir+[ppt])+[theme]))
	ERASE (ADDBS(ADDBS(m.lcDir+[ppt])+[_rels]) + "*.*")
	RD (ADDBS(ADDBS(m.lcDir+[ppt])+[_rels]))
	ERASE (ADDBS(m.lcDir+[ppt]) + "*.*")
	RD (ADDBS(m.lcDir+[ppt]))
	ERASE (ADDBS(m.lcDir+[docProps]) + "*.*")
	RD (ADDBS(m.lcDir+[docProps]))
	ERASE (ADDBS(m.lcDir+[_rels]) + "*.*")
	RD (ADDBS(m.lcDir+[_rels]))
	ERASE (m.lcDir + "*.*")
	RD (m.lcDir)
	SET SAFETY &lSetSafety
ENDPROC

**********************
* Generate temp dirs *
**********************
FUNCTION gen_dirs
	LOCAL lcDir
	lcDir=ADDBS(SYS(2015))
	MD (m.lcDir)
	MD (ADDBS(m.lcDir+[_rels]))
	MD (ADDBS(m.lcDir+[docProps]))
	MD (ADDBS(m.lcDir+[ppt]))
	MD (ADDBS(ADDBS(m.lcDir+[ppt])+[_rels]))
	MD (ADDBS(ADDBS(m.lcDir+[ppt])+[slideLayouts]))
	MD (ADDBS(ADDBS(ADDBS(m.lcDir+[ppt])+[slideLayouts])+[_rels]))
	MD (ADDBS(ADDBS(m.lcDir+[ppt])+[slideMasters]))
	MD (ADDBS(ADDBS(ADDBS(m.lcDir+[ppt])+[slideMasters])+[_rels]))
	MD (ADDBS(ADDBS(m.lcDir+[ppt])+[slides]))
	MD (ADDBS(ADDBS(ADDBS(m.lcDir+[ppt])+[slides])+[_rels]))
	MD (ADDBS(ADDBS(m.lcDir+[ppt])+[theme]))
RETURN m.lcDir

********************************
* Generate [Content_Types].xml *
********************************
PROCEDURE gen_Content_Types
	LPARAMETERS lcDir,lnSlideNo
	LOCAL lnF,lni
	lnF = FCREATE(m.lcDir+"[Content_Types].xml")
	IF m.lnF < 0
		MESSAGEBOX('Cannot create [Content_Types].xml',16,'Abort')
		RETURN TO MASTER
	ENDIF
	FWRITE(m.lnF,[<?xml version="1.0" encoding="UTF-8" standalone="yes"?>])
	FWRITE(m.lnF,[<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">])
	FWRITE(m.lnF,[<Default ContentType="application/xml" Extension="xml"/>])
	FWRITE(m.lnF,[<Default ContentType="application/vnd.openxmlformats-package.relationships+xml" Extension="rels"/>])
	FWRITE(m.lnF,[<Override ContentType="application/vnd.openxmlformats-officedocument.extended-properties+xml" PartName="/docProps/app.xml"/>])
	FWRITE(m.lnF,[<Override ContentType="application/vnd.openxmlformats-package.core-properties+xml" PartName="/docProps/core.xml"/>])
	FWRITE(m.lnF,[<Override ContentType="application/vnd.openxmlformats-officedocument.theme+xml" PartName="/ppt/theme/theme1.xml"/>])
	FWRITE(m.lnF,[<Override ContentType="application/vnd.openxmlformats-officedocument.presentationml.slideMaster+xml" PartName="/ppt/slideMasters/slideMaster1.xml"/>])
	FWRITE(m.lnF,[<Override ContentType="application/vnd.openxmlformats-officedocument.presentationml.slideLayout+xml" PartName="/ppt/slideLayouts/slideLayout1.xml"/>])
	FWRITE(m.lnF,[<Override ContentType="application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml" PartName="/ppt/presentation.xml"/>])
	FWRITE(m.lnF,[<Override ContentType="application/vnd.openxmlformats-officedocument.presentationml.tableStyles+xml" PartName="/ppt/tableStyles.xml"/>])
	FWRITE(m.lnF,[<Override ContentType="application/vnd.openxmlformats-officedocument.presentationml.viewProps+xml" PartName="/ppt/viewProps.xml"/>])
	FWRITE(m.lnF,[<Override ContentType="application/vnd.openxmlformats-officedocument.presentationml.presProps+xml" PartName="/ppt/presProps.xml"/>])
	FOR lni = 1 TO m.lnSlideNo
		FWRITE(m.lnF,[<Override ContentType="application/vnd.openxmlformats-officedocument.presentationml.slide+xml" PartName="/ppt/slides/slide] + LTRIM(STR(m.lni)) + [.xml"/>])
	NEXT
	FWRITE(m.lnF,[</Types>])
	FCLOSE(m.lnF)
ENDPROC

************************
* Generate _rels\.rels *
************************
PROCEDURE gen_rels
	LPARAMETERS lcDir
	LOCAL lnF
	lnF = FCREATE(m.lcDir+".rels")
	IF m.lnF < 0
		MESSAGEBOX('Cannot create .rels',16,'Abort')
		RETURN TO MASTER
	ENDIF
	FWRITE(m.lnF,[<?xml version="1.0" encoding="UTF-8" standalone="yes"?>]+CHR(10))
	FWRITE(m.lnF,[<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">])
	FWRITE(m.lnF,[<Relationship Target="docProps/core.xml" Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Id="rId3"/>])
	FWRITE(m.lnF,[<Relationship Target="ppt/presentation.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Id="rId1"/>])
	FWRITE(m.lnF,[<Relationship Target="docProps/app.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Id="rId4"/>]+CHR(10))
	FWRITE(m.lnF,[</Relationships>])
	FCLOSE(m.lnF)
ENDPROC

*****************************
* Generate docProps\app.xml *
*****************************
PROCEDURE gen_app
	LPARAMETERS lcDir,lnSlideNo
	LOCAL lnF,lni
	lnF = FCREATE(m.lcDir+"app.xml")
	IF m.lnF < 0
		MESSAGEBOX('Cannot create app.xml',16,'Abort')
		RETURN TO MASTER
	ENDIF
	FWRITE(m.lnF,[<?xml version="1.0" encoding="UTF-8" standalone="yes"?>]+CHR(10))
	FWRITE(m.lnF,[<Properties xmlns="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties" xmlns:vt="http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes">])
		FWRITE(m.lnF,[<TotalTime>0</TotalTime>])
		FWRITE(m.lnF,[<Application>copytopptx</Application>])
		FWRITE(m.lnF,[<PresentationFormat>On-screen Show (4:3)</PresentationFormat>])
		FWRITE(m.lnF,[<Slides>] + LTRIM(STR(m.lnSlideNo)) + [</Slides>])
		FWRITE(m.lnF,[<Notes>0</Notes>])
		FWRITE(m.lnF,[<HiddenSlides>0</HiddenSlides>])
		FWRITE(m.lnF,[<MMClips>0</MMClips>])
		FWRITE(m.lnF,[<ScaleCrop>false</ScaleCrop>])
		FWRITE(m.lnF,[<HeadingPairs>])
			FWRITE(m.lnF,[<vt:vector baseType="variant" size="4">])
				FWRITE(m.lnF,[<vt:variant>])
					FWRITE(m.lnF,[<vt:lpstr>Theme</vt:lpstr>])
				FWRITE(m.lnF,[</vt:variant>])
			FWRITE(m.lnF,[<vt:variant>])
				FWRITE(m.lnF,[<vt:i4>1</vt:i4>])
			FWRITE(m.lnF,[</vt:variant>])
			FWRITE(m.lnF,[<vt:variant>])
				FWRITE(m.lnF,[<vt:lpstr>Slide Titles</vt:lpstr>])
			FWRITE(m.lnF,[</vt:variant>])
			FWRITE(m.lnF,[<vt:variant>])
				FWRITE(m.lnF,[<vt:i4>] + LTRIM(STR(m.lnSlideNo)) + [</vt:i4>])
			FWRITE(m.lnF,[</vt:variant>])
			FWRITE(m.lnF,[</vt:vector>])
		FWRITE(m.lnF,[</HeadingPairs>])
		FWRITE(m.lnF,[<TitlesOfParts>])
			FWRITE(m.lnF,[<vt:vector baseType="lpstr" size="] + LTRIM(STR(m.lnSlideNo +1)) + [">])
				FWRITE(m.lnF,[<vt:lpstr>Office Theme</vt:lpstr>])
				FOR lni = 1 TO m.lnSlideNo
					FWRITE(m.lnF,[<vt:lpstr>] + theSildeTitle + LTRIM(STR(m.lni)) + [</vt:lpstr>])
				NEXT
			FWRITE(m.lnF,[</vt:vector>])
		FWRITE(m.lnF,[</TitlesOfParts>])
		FWRITE(m.lnF,[<AppVersion>1.0000</AppVersion>])
	FWRITE(m.lnF,[</Properties>])
	FCLOSE(m.lnF)
ENDPROC

******************************
* Generate docProps\core.xml *
******************************
PROCEDURE gen_core
	LPARAMETERS lcDir
	LOCAL lnF
	lnF = FCREATE(m.lcDir+"core.xml")
	IF m.lnF < 0
		MESSAGEBOX('Cannot create core.xml',16,'Abort')
		RETURN TO MASTER
	ENDIF
	FWRITE(m.lnF,[<?xml version="1.0" encoding="UTF-8" standalone="yes"?>]+CHR(10))
	FWRITE(m.lnF,[<cp:coreProperties xmlns:cp="http://schemas.openxmlformats.org/package/2006/metadata/core-properties" xmlns:dc="http://purl.org/dc/elements/1.1/" ])
		FWRITE(m.lnF,[xmlns:dcterms="http://purl.org/dc/terms/" xmlns:dcmitype="http://purl.org/dc/dcmitype/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">])
	FWRITE(m.lnF,[<dc:title>] + theSildeTitle + [1</dc:title>])
	FWRITE(m.lnF,[<dcterms:created xsi:type="dcterms:W3CDTF">]+TTOC(DATETIME(),3)+[</dcterms:created>])
	FWRITE(m.lnF,[</cp:coreProperties>])
	FCLOSE(m.lnF)
ENDPROC

********************************************
* Generate ppt\_rels\presentation.xml.rels *
********************************************
PROCEDURE gen_pptrels
	LPARAMETERS lcDir,lnSlideNo
	LOCAL lnF,lni
	lnF = FCREATE(m.lcDir+"presentation.xml.rels")
	IF m.lnF < 0
		MESSAGEBOX('Cannot create presentation.xml.rels',16,'Abort')
		RETURN TO MASTER
	ENDIF
	FWRITE(m.lnF,[<?xml version="1.0" encoding="UTF-8" standalone="yes"?>]+CHR(10))
	FWRITE(m.lnF,[<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">])

	FWRITE(m.lnF,[<Relationship Target="tableStyles.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/tableStyles" Id="rId4"/>])
	FWRITE(m.lnF,[<Relationship Target="slideMasters/slideMaster1.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideMaster" Id="rId1"/>])
	FWRITE(m.lnF,[<Relationship Target="theme/theme1.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme" Id="rId5"/>])
	FWRITE(m.lnF,[<Relationship Target="viewProps.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/viewProps" Id="rId3"/>])
	FWRITE(m.lnF,[<Relationship Target="presProps.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/presProps" Id="rId2"/>])
	FOR lni = 1 TO m.lnSlideNo
		FWRITE(m.lnF,[<Relationship Target="slides/slide] + LTRIM(STR(m.lni)) + [.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slide" Id="rId] + LTRIM(STR(5 + m.lni)) + ["/>])
	NEXT 
	FWRITE(m.lnF,[</Relationships>])
	FCLOSE(m.lnF)
ENDPROC

************************************************************
* Generate ppt\slideLayouts\_rels\slideLayout1.xml.rels *
************************************************************
PROCEDURE gen_slideLayoutsrels
	LPARAMETERS lcDir
	LOCAL lnF,lcStr,lcFName
	lcStr = [<?xml version="1.0" encoding="UTF-8" standalone="yes"?>]+CHR(10)
	lcStr = m.lcStr + [<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">]
		lcStr = m.lcStr + [<Relationship Target="../slideMasters/slideMaster1.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideMaster" Id="rId1"/>]
	lcStr = m.lcStr + [</Relationships>]
	lcFName = [slideLayout1.xml.rels]
	lnF = FCREATE(m.lcDir + m.lcFName)
	IF m.lnF < 0
		MESSAGEBOX('Cannot create ' + m.lcFName,16,'Abort')
		RETURN TO MASTER
	ENDIF
	FWRITE(m.lnF,m.lcStr)
	FCLOSE(m.lnF)
ENDPROC

*************************************************
* Generate ppt\slideLayouts\slideLayout1.xml *
*************************************************
PROCEDURE gen_slideLayouts
	LPARAMETERS lcDir
	LOCAL lnF
	lnF = FCREATE(m.lcDir+"slideLayout1.xml")
	IF m.lnF < 0
		MESSAGEBOX('Cannot create slideLayout1.xml',16,'Abort')
		RETURN TO MASTER
	ENDIF
	FWRITE(m.lnF,[<?xml version="1.0" encoding="UTF-8" standalone="yes"?>]+CHR(10))
	FWRITE(m.lnF,[<p:sldLayout xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" ])
		FWRITE(m.lnF,[xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main" type="obj" preserve="1">])
	FWRITE(m.lnF,[<p:cSld name="Title and Content">])
	FWRITE(m.lnF,[<p:spTree>])
	FWRITE(m.lnF,[<p:nvGrpSpPr>])
	FWRITE(m.lnF,[<p:cNvPr id="1" name=""/>])
	FWRITE(m.lnF,[<p:cNvGrpSpPr/>])
	FWRITE(m.lnF,[<p:nvPr/>])
	FWRITE(m.lnF,[</p:nvGrpSpPr>])
	FWRITE(m.lnF,[<p:grpSpPr>])
	FWRITE(m.lnF,[<a:xfrm>])
	FWRITE(m.lnF,[<a:off x="0" y="0"/>])
	FWRITE(m.lnF,[<a:ext cx="0" cy="0"/>])
	FWRITE(m.lnF,[<a:chOff x="0" y="0"/>])
	FWRITE(m.lnF,[<a:chExt cx="0" cy="0"/>])
	FWRITE(m.lnF,[</a:xfrm>])
	FWRITE(m.lnF,[</p:grpSpPr>])
	FWRITE(m.lnF,[<p:sp>])
	FWRITE(m.lnF,[<p:nvSpPr>])
	FWRITE(m.lnF,[<p:cNvPr id="2" name="Title 1"/>])
	FWRITE(m.lnF,[<p:cNvSpPr>])
	FWRITE(m.lnF,[<a:spLocks noGrp="1"/>])
	FWRITE(m.lnF,[</p:cNvSpPr>])
	FWRITE(m.lnF,[<p:nvPr>])
	FWRITE(m.lnF,[<p:ph type="title"/>])
	FWRITE(m.lnF,[</p:nvPr>])
	FWRITE(m.lnF,[</p:nvSpPr>])
	FWRITE(m.lnF,[<p:spPr/>])
	FWRITE(m.lnF,[<p:txBody>])
	FWRITE(m.lnF,[<a:bodyPr/>])
	FWRITE(m.lnF,[<a:lstStyle/>])
	FWRITE(m.lnF,[<a:p>])
	FWRITE(m.lnF,[<a:r>])
	FWRITE(m.lnF,[<a:rPr lang="en-US" smtClean="0"/>])
	FWRITE(m.lnF,[<a:t>Click to edit Master title style</a:t>])
	FWRITE(m.lnF,[</a:r>])
	FWRITE(m.lnF,[<a:endParaRPr lang="] + theLanguage + ["/>])
	FWRITE(m.lnF,[</a:p>])
	FWRITE(m.lnF,[</p:txBody>])
	FWRITE(m.lnF,[</p:sp>])
	FWRITE(m.lnF,[<p:sp>])
	FWRITE(m.lnF,[<p:nvSpPr>])
	FWRITE(m.lnF,[<p:cNvPr id="3" name="Content Placeholder 2"/>])
	FWRITE(m.lnF,[<p:cNvSpPr>])
	FWRITE(m.lnF,[<a:spLocks noGrp="1"/>])
	FWRITE(m.lnF,[</p:cNvSpPr>])
	FWRITE(m.lnF,[<p:nvPr>])
	FWRITE(m.lnF,[<p:ph idx="1"/>])
	FWRITE(m.lnF,[</p:nvPr>])
	FWRITE(m.lnF,[</p:nvSpPr>])
	FWRITE(m.lnF,[<p:spPr/>])
	FWRITE(m.lnF,[<p:txBody>])
	FWRITE(m.lnF,[<a:bodyPr/>])
	FWRITE(m.lnF,[<a:lstStyle/>])
	FWRITE(m.lnF,[<a:p>])
	FWRITE(m.lnF,[<a:pPr lvl="0"/>])
	FWRITE(m.lnF,[<a:r>])
	FWRITE(m.lnF,[<a:rPr lang="en-US" smtClean="0"/>])
	FWRITE(m.lnF,[<a:t>Click to edit Master text styles</a:t>])
	FWRITE(m.lnF,[</a:r>])
	FWRITE(m.lnF,[</a:p>])
	FWRITE(m.lnF,[<a:p>])
	FWRITE(m.lnF,[<a:pPr lvl="1"/>])
	FWRITE(m.lnF,[<a:r>])
	FWRITE(m.lnF,[<a:rPr lang="en-US" smtClean="0"/>])
	FWRITE(m.lnF,[<a:t>Second level</a:t>])
	FWRITE(m.lnF,[</a:r>])
	FWRITE(m.lnF,[</a:p>])
	FWRITE(m.lnF,[<a:p>])
	FWRITE(m.lnF,[<a:pPr lvl="2"/>])
	FWRITE(m.lnF,[<a:r>])
	FWRITE(m.lnF,[<a:rPr lang="en-US" smtClean="0"/>])
	FWRITE(m.lnF,[<a:t>Third level</a:t>])
	FWRITE(m.lnF,[</a:r>])
	FWRITE(m.lnF,[</a:p>])
	FWRITE(m.lnF,[<a:p>])
	FWRITE(m.lnF,[<a:pPr lvl="3"/>])
	FWRITE(m.lnF,[<a:r>])
	FWRITE(m.lnF,[<a:rPr lang="en-US" smtClean="0"/>])
	FWRITE(m.lnF,[<a:t>Fourth level</a:t>])
	FWRITE(m.lnF,[</a:r>])
	FWRITE(m.lnF,[</a:p>])
	FWRITE(m.lnF,[<a:p>])
	FWRITE(m.lnF,[<a:pPr lvl="4"/>])
	FWRITE(m.lnF,[<a:r>])
	FWRITE(m.lnF,[<a:rPr lang="en-US" smtClean="0"/>])
	FWRITE(m.lnF,[<a:t>Fifth level</a:t>])
	FWRITE(m.lnF,[</a:r>])
	FWRITE(m.lnF,[<a:endParaRPr lang="] + theLanguage + ["/>])
	FWRITE(m.lnF,[</a:p>])
	FWRITE(m.lnF,[</p:txBody>])
	FWRITE(m.lnF,[</p:sp>])
	FWRITE(m.lnF,[<p:sp>])
	FWRITE(m.lnF,[<p:nvSpPr>])
	FWRITE(m.lnF,[<p:cNvPr id="4" name="Date Placeholder 3"/>])
	FWRITE(m.lnF,[<p:cNvSpPr>])
	FWRITE(m.lnF,[<a:spLocks noGrp="1"/>])
	FWRITE(m.lnF,[</p:cNvSpPr>])
	FWRITE(m.lnF,[<p:nvPr>])
	FWRITE(m.lnF,[<p:ph type="dt" sz="half" idx="10"/>])
	FWRITE(m.lnF,[</p:nvPr>])
	FWRITE(m.lnF,[</p:nvSpPr>])
	FWRITE(m.lnF,[<p:spPr/>])
	FWRITE(m.lnF,[<p:txBody>])
	FWRITE(m.lnF,[<a:bodyPr/>])
	FWRITE(m.lnF,[<a:lstStyle/>])
	FWRITE(m.lnF,[<a:p>])
	FWRITE(m.lnF,[<a:fld id="{888700A0-746F-48E1-B630-3A18FF380FD8}" type="datetimeFigureOut">])
	FWRITE(m.lnF,[<a:rPr lang="] + theLanguage + [" smtClean="0"/>])
	FWRITE(m.lnF,[<a:pPr/>])
	FWRITE(m.lnF,[<a:t>] + DTOC(DATE()) + [</a:t>])
	FWRITE(m.lnF,[</a:fld>])
	FWRITE(m.lnF,[<a:endParaRPr lang="] + theLanguage + ["/>])
	FWRITE(m.lnF,[</a:p>])
	FWRITE(m.lnF,[</p:txBody>])
	FWRITE(m.lnF,[</p:sp>])
	FWRITE(m.lnF,[<p:sp>])
	FWRITE(m.lnF,[<p:nvSpPr>])
	FWRITE(m.lnF,[<p:cNvPr id="5" name="Footer Placeholder 4"/>])
	FWRITE(m.lnF,[<p:cNvSpPr>])
	FWRITE(m.lnF,[<a:spLocks noGrp="1"/>])
	FWRITE(m.lnF,[</p:cNvSpPr>])
	FWRITE(m.lnF,[<p:nvPr>])
	FWRITE(m.lnF,[<p:ph type="ftr" sz="quarter" idx="11"/>])
	FWRITE(m.lnF,[</p:nvPr>])
	FWRITE(m.lnF,[</p:nvSpPr>])
	FWRITE(m.lnF,[<p:spPr/>])
	FWRITE(m.lnF,[<p:txBody>])
	FWRITE(m.lnF,[<a:bodyPr/>])
	FWRITE(m.lnF,[<a:lstStyle/>])
	FWRITE(m.lnF,[<a:p>])
	FWRITE(m.lnF,[<a:endParaRPr lang="] + theLanguage + ["/>])
	FWRITE(m.lnF,[</a:p>])
	FWRITE(m.lnF,[</p:txBody>])
	FWRITE(m.lnF,[</p:sp>])
	FWRITE(m.lnF,[<p:sp>])
	FWRITE(m.lnF,[<p:nvSpPr>])
	FWRITE(m.lnF,[<p:cNvPr id="6" name="Slide Number Placeholder 5"/>])
	FWRITE(m.lnF,[<p:cNvSpPr>])
	FWRITE(m.lnF,[<a:spLocks noGrp="1"/>])
	FWRITE(m.lnF,[</p:cNvSpPr>])
	FWRITE(m.lnF,[<p:nvPr>])
	FWRITE(m.lnF,[<p:ph type="sldNum" sz="quarter" idx="12"/>])
	FWRITE(m.lnF,[</p:nvPr>])
	FWRITE(m.lnF,[</p:nvSpPr>])
	FWRITE(m.lnF,[<p:spPr/>])
	FWRITE(m.lnF,[<p:txBody>])
	FWRITE(m.lnF,[<a:bodyPr/>])
	FWRITE(m.lnF,[<a:lstStyle/>])
	FWRITE(m.lnF,[<a:p>])
	FWRITE(m.lnF,[<a:fld id="{66096AA0-6251-4D6F-A73C-3C0CDA5D0380}" type="slidenum">])
	FWRITE(m.lnF,[<a:rPr lang="] + theLanguage + [" smtClean="0"/>])
	FWRITE(m.lnF,[<a:pPr/>])
	FWRITE(m.lnF,[<a:t>‹#›</a:t>])
	FWRITE(m.lnF,[</a:fld>])
	FWRITE(m.lnF,[<a:endParaRPr lang="] + theLanguage + ["/>])
	FWRITE(m.lnF,[</a:p>])
	FWRITE(m.lnF,[</p:txBody>])
	FWRITE(m.lnF,[</p:sp>])
	FWRITE(m.lnF,[</p:spTree>])
	FWRITE(m.lnF,[</p:cSld>])
	FWRITE(m.lnF,[<p:clrMapOvr>])
	FWRITE(m.lnF,[<a:masterClrMapping/>])
	FWRITE(m.lnF,[</p:clrMapOvr>])
	FWRITE(m.lnF,[</p:sldLayout>])
	FCLOSE(m.lnF)
ENDPROC

*********************************************************
* Generate ppt\slideMasters\_rels\slideMaster1.xml.rels *
*********************************************************
PROCEDURE gen_slideMastersrels
	LPARAMETERS lcDir,lnSlideNo
	LOCAL lnF,lni
	lnF = FCREATE(m.lcDir+"slideMaster1.xml.rels")
	IF m.lnF < 0
		MESSAGEBOX('Cannot create slideMaster1.xml.rels',16,'Abort')
		RETURN TO MASTER
	ENDIF
	FWRITE(m.lnF,[<?xml version="1.0" encoding="UTF-8" standalone="yes"?>]+CHR(10))
	FWRITE(m.lnF,[<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">])
	FWRITE(m.lnF,[<Relationship Target="../theme/theme1.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme" Id="rId12"/>])
	FWRITE(m.lnF,[<Relationship Target="../slideLayouts/slideLayout1.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout" Id="rId1"/>])
	FWRITE(m.lnF,[</Relationships>])
	FCLOSE(m.lnF)
ENDPROC


**********************************************
* Generate ppt\slideMasters\slideMaster1.xml *
**********************************************
PROCEDURE gen_slideMasters
	LPARAMETERS lcDir,lnSlideNo
	LOCAL lnF,lni
	lnF = FCREATE(m.lcDir+"slideMaster1.xml")
	IF m.lnF < 0
		MESSAGEBOX('Cannot create slideMaster1.xml',16,'Abort')
		RETURN TO MASTER
	ENDIF
	FWRITE(m.lnF,[<?xml version="1.0" encoding="UTF-8" standalone="yes"?>]+CHR(10))
	FWRITE(m.lnF,[<p:sldMaster xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" ])
	FWRITE(m.lnF,[xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main">])
	FWRITE(m.lnF,[<p:cSld>])
	FWRITE(m.lnF,[<p:bg>])
	FWRITE(m.lnF,[<p:bgRef idx="1001">])
	FWRITE(m.lnF,[<a:schemeClr val="bg1"/>])
	FWRITE(m.lnF,[</p:bgRef>])
	FWRITE(m.lnF,[</p:bg>])
	FWRITE(m.lnF,[<p:spTree>])
	FWRITE(m.lnF,[<p:nvGrpSpPr>])
	FWRITE(m.lnF,[<p:cNvPr id="1" name=""/>])
	FWRITE(m.lnF,[<p:cNvGrpSpPr/>])
	FWRITE(m.lnF,[<p:nvPr/>])
	FWRITE(m.lnF,[</p:nvGrpSpPr>])
	FWRITE(m.lnF,[<p:grpSpPr>])
	FWRITE(m.lnF,[<a:xfrm>])
	FWRITE(m.lnF,[<a:off x="0" y="0"/>])
	FWRITE(m.lnF,[<a:ext cx="0" cy="0"/>])
	FWRITE(m.lnF,[<a:chOff x="0" y="0"/>])
	FWRITE(m.lnF,[<a:chExt cx="0" cy="0"/>])
	FWRITE(m.lnF,[</a:xfrm>])
	FWRITE(m.lnF,[</p:grpSpPr>])
	FWRITE(m.lnF,[<p:sp>])
	FWRITE(m.lnF,[<p:nvSpPr>])
	FWRITE(m.lnF,[<p:cNvPr id="2" name="Title Placeholder 1"/>])
	FWRITE(m.lnF,[<p:cNvSpPr>])
	FWRITE(m.lnF,[<a:spLocks noGrp="1"/>])
	FWRITE(m.lnF,[</p:cNvSpPr>])
	FWRITE(m.lnF,[<p:nvPr>])
	FWRITE(m.lnF,[<p:ph type="title"/>])
	FWRITE(m.lnF,[</p:nvPr>])
	FWRITE(m.lnF,[</p:nvSpPr>])
	FWRITE(m.lnF,[<p:spPr>])
	FWRITE(m.lnF,[<a:xfrm>])
	FWRITE(m.lnF,[<a:off x="457200" y="274638"/>])
	FWRITE(m.lnF,[<a:ext cx="8229600" cy="1143000"/>])
	FWRITE(m.lnF,[</a:xfrm>])
	FWRITE(m.lnF,[<a:prstGeom prst="rect">])
	FWRITE(m.lnF,[<a:avLst/>])
	FWRITE(m.lnF,[</a:prstGeom>])
	FWRITE(m.lnF,[</p:spPr>])
	FWRITE(m.lnF,[<p:txBody>])
	FWRITE(m.lnF,[<a:bodyPr vert="horz" lIns="91440" tIns="45720" rIns="91440" bIns="45720" rtlCol="0" anchor="ctr">])
	FWRITE(m.lnF,[<a:normAutofit/>])
	FWRITE(m.lnF,[</a:bodyPr>])
	FWRITE(m.lnF,[<a:lstStyle/>])
	FWRITE(m.lnF,[<a:p>])
	FWRITE(m.lnF,[<a:r>])
	FWRITE(m.lnF,[<a:rPr lang="en-US" smtClean="0"/>])
	FWRITE(m.lnF,[<a:t>Click to edit Master title style</a:t>])
	FWRITE(m.lnF,[</a:r>])
	FWRITE(m.lnF,[<a:endParaRPr lang="] + theLanguage + ["/>])
	FWRITE(m.lnF,[</a:p>])
	FWRITE(m.lnF,[</p:txBody>])
	FWRITE(m.lnF,[</p:sp>])
	FWRITE(m.lnF,[<p:sp>])
	FWRITE(m.lnF,[<p:nvSpPr>])
	FWRITE(m.lnF,[<p:cNvPr id="3" name="Text Placeholder 2"/>])
	FWRITE(m.lnF,[<p:cNvSpPr>])
	FWRITE(m.lnF,[<a:spLocks noGrp="1"/>])
	FWRITE(m.lnF,[</p:cNvSpPr>])
	FWRITE(m.lnF,[<p:nvPr>])
	FWRITE(m.lnF,[<p:ph type="body" idx="1"/>])
	FWRITE(m.lnF,[</p:nvPr>])
	FWRITE(m.lnF,[</p:nvSpPr>])
	FWRITE(m.lnF,[<p:spPr>])
	FWRITE(m.lnF,[<a:xfrm>])
	FWRITE(m.lnF,[<a:off x="457200" y="1600200"/>])
	FWRITE(m.lnF,[<a:ext cx="8229600" cy="4525963"/>])
	FWRITE(m.lnF,[</a:xfrm>])
	FWRITE(m.lnF,[<a:prstGeom prst="rect">])
	FWRITE(m.lnF,[<a:avLst/>])
	FWRITE(m.lnF,[</a:prstGeom>])
	FWRITE(m.lnF,[</p:spPr>])
	FWRITE(m.lnF,[<p:txBody>])
	FWRITE(m.lnF,[<a:bodyPr vert="horz" lIns="91440" tIns="45720" rIns="91440" bIns="45720" rtlCol="0">])
	FWRITE(m.lnF,[<a:normAutofit/>])
	FWRITE(m.lnF,[</a:bodyPr>])
	FWRITE(m.lnF,[<a:lstStyle/>])
	FWRITE(m.lnF,[<a:p>])
	FWRITE(m.lnF,[<a:pPr lvl="0"/>])
	FWRITE(m.lnF,[<a:r>])
	FWRITE(m.lnF,[<a:rPr lang="en-US" smtClean="0"/>])
	FWRITE(m.lnF,[<a:t>Click to edit Master text styles</a:t>])
	FWRITE(m.lnF,[</a:r>])
	FWRITE(m.lnF,[</a:p>])
	FWRITE(m.lnF,[<a:p>])
	FWRITE(m.lnF,[<a:pPr lvl="1"/>])
	FWRITE(m.lnF,[<a:r>])
	FWRITE(m.lnF,[<a:rPr lang="en-US" smtClean="0"/>])
	FWRITE(m.lnF,[<a:t>Second level</a:t>])
	FWRITE(m.lnF,[</a:r>])
	FWRITE(m.lnF,[</a:p>])
	FWRITE(m.lnF,[<a:p>])
	FWRITE(m.lnF,[<a:pPr lvl="2"/>])
	FWRITE(m.lnF,[<a:r>])
	FWRITE(m.lnF,[<a:rPr lang="en-US" smtClean="0"/>])
	FWRITE(m.lnF,[<a:t>Third level</a:t>])
	FWRITE(m.lnF,[</a:r>])
	FWRITE(m.lnF,[</a:p>])
	FWRITE(m.lnF,[<a:p>])
	FWRITE(m.lnF,[<a:pPr lvl="3"/>])
	FWRITE(m.lnF,[<a:r>])
	FWRITE(m.lnF,[<a:rPr lang="en-US" smtClean="0"/>])
	FWRITE(m.lnF,[<a:t>Fourth level</a:t>])
	FWRITE(m.lnF,[</a:r>])
	FWRITE(m.lnF,[</a:p>])
	FWRITE(m.lnF,[<a:p>])
	FWRITE(m.lnF,[<a:pPr lvl="4"/>])
	FWRITE(m.lnF,[<a:r>])
	FWRITE(m.lnF,[<a:rPr lang="en-US" smtClean="0"/>])
	FWRITE(m.lnF,[<a:t>Fifth level</a:t>])
	FWRITE(m.lnF,[</a:r>])
	FWRITE(m.lnF,[<a:endParaRPr lang="] + theLanguage + ["/>])
	FWRITE(m.lnF,[</a:p>])
	FWRITE(m.lnF,[</p:txBody>])
	FWRITE(m.lnF,[</p:sp>])
	FWRITE(m.lnF,[<p:sp>])
	FWRITE(m.lnF,[<p:nvSpPr>])
	FWRITE(m.lnF,[<p:cNvPr id="4" name="Date Placeholder 3"/>])
	FWRITE(m.lnF,[<p:cNvSpPr>])
	FWRITE(m.lnF,[<a:spLocks noGrp="1"/>])
	FWRITE(m.lnF,[</p:cNvSpPr>])
	FWRITE(m.lnF,[<p:nvPr>])
	FWRITE(m.lnF,[<p:ph type="dt" sz="half" idx="2"/>])
	FWRITE(m.lnF,[</p:nvPr>])
	FWRITE(m.lnF,[</p:nvSpPr>])
	FWRITE(m.lnF,[<p:spPr>])
	FWRITE(m.lnF,[<a:xfrm>])
	FWRITE(m.lnF,[<a:off x="457200" y="6356350"/>])
	FWRITE(m.lnF,[<a:ext cx="2133600" cy="365125"/>])
	FWRITE(m.lnF,[</a:xfrm>])
	FWRITE(m.lnF,[<a:prstGeom prst="rect">])
	FWRITE(m.lnF,[<a:avLst/>])
	FWRITE(m.lnF,[</a:prstGeom>])
	FWRITE(m.lnF,[</p:spPr>])
	FWRITE(m.lnF,[<p:txBody>])
	FWRITE(m.lnF,[<a:bodyPr vert="horz" lIns="91440" tIns="45720" rIns="91440" bIns="45720" rtlCol="0" anchor="ctr"/>])
	FWRITE(m.lnF,[<a:lstStyle>])
	FWRITE(m.lnF,[<a:lvl1pPr algn="l">])
	FWRITE(m.lnF,[<a:defRPr sz="1200">])
	FWRITE(m.lnF,[<a:solidFill>])
	FWRITE(m.lnF,[<a:schemeClr val="tx1">])
	FWRITE(m.lnF,[<a:tint val="75000"/>])
	FWRITE(m.lnF,[</a:schemeClr>])
	FWRITE(m.lnF,[</a:solidFill>])
	FWRITE(m.lnF,[</a:defRPr>])
	FWRITE(m.lnF,[</a:lvl1pPr>])
	FWRITE(m.lnF,[</a:lstStyle>])
	FWRITE(m.lnF,[<a:p>])
	FWRITE(m.lnF,[<a:fld id="{888700A0-746F-48E1-B630-3A18FF380FD8}" type="datetimeFigureOut">])
	FWRITE(m.lnF,[<a:rPr lang="] + theLanguage + [" smtClean="0"/>])
	FWRITE(m.lnF,[<a:pPr/>])
	FWRITE(m.lnF,[<a:t>] + DTOC(DATE()) + [</a:t>])
	FWRITE(m.lnF,[</a:fld>])
	FWRITE(m.lnF,[<a:endParaRPr lang="] + theLanguage + ["/>])
	FWRITE(m.lnF,[</a:p>])
	FWRITE(m.lnF,[</p:txBody>])
	FWRITE(m.lnF,[</p:sp>])
	FWRITE(m.lnF,[<p:sp>])
	FWRITE(m.lnF,[<p:nvSpPr>])
	FWRITE(m.lnF,[<p:cNvPr id="5" name="Footer Placeholder 4"/>])
	FWRITE(m.lnF,[<p:cNvSpPr>])
	FWRITE(m.lnF,[<a:spLocks noGrp="1"/>])
	FWRITE(m.lnF,[</p:cNvSpPr>])
	FWRITE(m.lnF,[<p:nvPr>])
	FWRITE(m.lnF,[<p:ph type="ftr" sz="quarter" idx="3"/>])
	FWRITE(m.lnF,[</p:nvPr>])
	FWRITE(m.lnF,[</p:nvSpPr>])
	FWRITE(m.lnF,[<p:spPr>])
	FWRITE(m.lnF,[<a:xfrm>])
	FWRITE(m.lnF,[<a:off x="3124200" y="6356350"/>])
	FWRITE(m.lnF,[<a:ext cx="2895600" cy="365125"/>])
	FWRITE(m.lnF,[</a:xfrm>])
	FWRITE(m.lnF,[<a:prstGeom prst="rect">])
	FWRITE(m.lnF,[<a:avLst/>])
	FWRITE(m.lnF,[</a:prstGeom>])
	FWRITE(m.lnF,[</p:spPr>])
	FWRITE(m.lnF,[<p:txBody>])
	FWRITE(m.lnF,[<a:bodyPr vert="horz" lIns="91440" tIns="45720" rIns="91440" bIns="45720" rtlCol="0" anchor="ctr"/>])
	FWRITE(m.lnF,[<a:lstStyle>])
	FWRITE(m.lnF,[<a:lvl1pPr algn="ctr">])
	FWRITE(m.lnF,[<a:defRPr sz="1200">])
	FWRITE(m.lnF,[<a:solidFill>])
	FWRITE(m.lnF,[<a:schemeClr val="tx1">])
	FWRITE(m.lnF,[<a:tint val="75000"/>])
	FWRITE(m.lnF,[</a:schemeClr>])
	FWRITE(m.lnF,[</a:solidFill>])
	FWRITE(m.lnF,[</a:defRPr>])
	FWRITE(m.lnF,[</a:lvl1pPr>])
	FWRITE(m.lnF,[</a:lstStyle>])
	FWRITE(m.lnF,[<a:p>])
	FWRITE(m.lnF,[<a:endParaRPr lang="] + theLanguage + ["/>])
	FWRITE(m.lnF,[</a:p>])
	FWRITE(m.lnF,[</p:txBody>])
	FWRITE(m.lnF,[</p:sp>])
	FWRITE(m.lnF,[<p:sp>])
	FWRITE(m.lnF,[<p:nvSpPr>])
	FWRITE(m.lnF,[<p:cNvPr id="6" name="Slide Number Placeholder 5"/>])
	FWRITE(m.lnF,[<p:cNvSpPr>])
	FWRITE(m.lnF,[<a:spLocks noGrp="1"/>])
	FWRITE(m.lnF,[</p:cNvSpPr>])
	FWRITE(m.lnF,[<p:nvPr>])
	FWRITE(m.lnF,[<p:ph type="sldNum" sz="quarter" idx="4"/>])
	FWRITE(m.lnF,[</p:nvPr>])
	FWRITE(m.lnF,[</p:nvSpPr>])
	FWRITE(m.lnF,[<p:spPr>])
	FWRITE(m.lnF,[<a:xfrm>])
	FWRITE(m.lnF,[<a:off x="6553200" y="6356350"/>])
	FWRITE(m.lnF,[<a:ext cx="2133600" cy="365125"/>])
	FWRITE(m.lnF,[</a:xfrm>])
	FWRITE(m.lnF,[<a:prstGeom prst="rect">])
	FWRITE(m.lnF,[<a:avLst/>])
	FWRITE(m.lnF,[</a:prstGeom>])
	FWRITE(m.lnF,[</p:spPr>])
	FWRITE(m.lnF,[<p:txBody>])
	FWRITE(m.lnF,[<a:bodyPr vert="horz" lIns="91440" tIns="45720" rIns="91440" bIns="45720" rtlCol="0" anchor="ctr"/>])
	FWRITE(m.lnF,[<a:lstStyle>])
	FWRITE(m.lnF,[<a:lvl1pPr algn="r">])
	FWRITE(m.lnF,[<a:defRPr sz="1200">])
	FWRITE(m.lnF,[<a:solidFill>])
	FWRITE(m.lnF,[<a:schemeClr val="tx1">])
	FWRITE(m.lnF,[<a:tint val="75000"/>])
	FWRITE(m.lnF,[</a:schemeClr>])
	FWRITE(m.lnF,[</a:solidFill>])
	FWRITE(m.lnF,[</a:defRPr>])
	FWRITE(m.lnF,[</a:lvl1pPr>])
	FWRITE(m.lnF,[</a:lstStyle>])
	FWRITE(m.lnF,[<a:p>])
	FWRITE(m.lnF,[<a:fld id="{66096AA0-6251-4D6F-A73C-3C0CDA5D0380}" type="slidenum">])
	FWRITE(m.lnF,[<a:rPr lang="] + theLanguage + [" smtClean="0"/>])
	FWRITE(m.lnF,[<a:pPr/>])
	FWRITE(m.lnF,[<a:t>‹#›</a:t>])
	FWRITE(m.lnF,[</a:fld>])
	FWRITE(m.lnF,[<a:endParaRPr lang="] + theLanguage + ["/>])
	FWRITE(m.lnF,[</a:p>])
	FWRITE(m.lnF,[</p:txBody>])
	FWRITE(m.lnF,[</p:sp>])
	FWRITE(m.lnF,[</p:spTree>])
	FWRITE(m.lnF,[</p:cSld>])
	FWRITE(m.lnF,[<p:clrMap bg1="lt1" tx1="dk1" bg2="lt2" tx2="dk2" accent1="accent1" accent2="accent2" accent3="accent3" accent4="accent4" accent5="accent5" accent6="accent6" hlink="hlink" folHlink="folHlink"/>])
	FWRITE(m.lnF,[<p:sldLayoutIdLst>])
	FWRITE(m.lnF,[<p:sldLayoutId id="2147483649" r:id="rId1"/>])
	FWRITE(m.lnF,[</p:sldLayoutIdLst>])
	FWRITE(m.lnF,[<p:txStyles>])
	FWRITE(m.lnF,[<p:titleStyle/>])
	FWRITE(m.lnF,[<p:bodyStyle/>])
	FWRITE(m.lnF,[<p:otherStyle/>])
	FWRITE(m.lnF,[</p:txStyles>])
	FWRITE(m.lnF,[</p:sldMaster>])
	FCLOSE(m.lnF)
ENDPROC

*********************************
* Generate ppt\presentation.xml *
*********************************
PROCEDURE gen_presentation
	LPARAMETERS lcDir,lnSlideNo
	LOCAL lnF,lni
	lnF = FCREATE(m.lcDir+"presentation.xml")
	IF m.lnF < 0
		MESSAGEBOX('Cannot create .presentation.xml',16,'Abort')
		RETURN TO MASTER
	ENDIF
	FWRITE(m.lnF,[<?xml version="1.0" encoding="UTF-8" standalone="yes"?>]+CHR(10))
	FWRITE(m.lnF,[<p:presentation xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" ])
	FWRITE(m.lnF,[xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main" saveSubsetFonts="1">])
	FWRITE(m.lnF,[<p:sldMasterIdLst>])
	FWRITE(m.lnF,[<p:sldMasterId id="2147483648" r:id="rId1"/>])
	FWRITE(m.lnF,[</p:sldMasterIdLst>])
	FWRITE(m.lnF,[<p:sldIdLst>])
	FOR lni = 1 TO m.lnSlideNo
		FWRITE(m.lnF,[<p:sldId id="] + LTRIM(STR(255 + m.lni)) + [" r:id="rId] + LTRIM(STR(5 + m.lni)) + ["/>])
	NEXT
	FWRITE(m.lnF,[</p:sldIdLst>])
	FWRITE(m.lnF,[<p:sldSz cx="9144000" cy="6858000" type="screen4x3"/>])
	FWRITE(m.lnF,[<p:notesSz cx="6858000" cy="9144000"/>])
	FWRITE(m.lnF,[</p:presentation>])
	FCLOSE(m.lnF)
ENDPROC

******************************
* Generate ppt\presProps.xml *
******************************
PROCEDURE gen_presProps
	LPARAMETERS lcDir
	LOCAL lnF
	lnF = FCREATE(m.lcDir+"presProps.xml")
	IF m.lnF < 0
		MESSAGEBOX('Cannot create presProps.xml',16,'Abort')
		RETURN TO MASTER
	ENDIF
	FWRITE(m.lnF,[<?xml version="1.0" encoding="UTF-8" standalone="yes"?>]+CHR(10))
	FWRITE(m.lnF,[<p:presentationPr xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" ])
	FWRITE(m.lnF,[xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main"/>])
	FCLOSE(m.lnF)
ENDPROC

********************************
* Generate ppt\tableStyles.xml *
********************************
PROCEDURE gen_tableStyles
	LPARAMETERS lcDir
	LOCAL lnF
	lnF = FCREATE(m.lcDir+"tableStyles.xml")
	IF m.lnF < 0
		MESSAGEBOX('Cannot create tableStyles.xml',16,'Abort')
		RETURN TO MASTER
	ENDIF
	FWRITE(m.lnF,[<?xml version="1.0" encoding="UTF-8" standalone="yes"?>]+CHR(10))
	FWRITE(m.lnF,[<a:tblStyleLst xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" def="{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}">])
	FWRITE(m.lnF,[<a:tblStyle styleId="{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}" styleName="Medium Style 2 - Accent 1">])
	FWRITE(m.lnF,[<a:wholeTbl>])
	FWRITE(m.lnF,[<a:tcTxStyle>])
	FWRITE(m.lnF,[<a:fontRef idx="minor">])
	FWRITE(m.lnF,[<a:prstClr val="black"/>])
	FWRITE(m.lnF,[</a:fontRef>])
	FWRITE(m.lnF,[<a:schemeClr val="dk1"/>])
	FWRITE(m.lnF,[</a:tcTxStyle>])
	FWRITE(m.lnF,[<a:tcStyle>])
	FWRITE(m.lnF,[<a:tcBdr>])
	FWRITE(m.lnF,[<a:left>])
	FWRITE(m.lnF,[<a:ln w="12700" cmpd="sng">])
	FWRITE(m.lnF,[<a:solidFill>])
	FWRITE(m.lnF,[<a:schemeClr val="lt1"/>])
	FWRITE(m.lnF,[</a:solidFill>])
	FWRITE(m.lnF,[</a:ln>])
	FWRITE(m.lnF,[</a:left>])
	FWRITE(m.lnF,[<a:right>])
	FWRITE(m.lnF,[<a:ln w="12700" cmpd="sng">])
	FWRITE(m.lnF,[<a:solidFill>])
	FWRITE(m.lnF,[<a:schemeClr val="lt1"/>])
	FWRITE(m.lnF,[</a:solidFill>])
	FWRITE(m.lnF,[</a:ln>])
	FWRITE(m.lnF,[</a:right>])
	FWRITE(m.lnF,[<a:top>])
	FWRITE(m.lnF,[<a:ln w="12700" cmpd="sng">])
	FWRITE(m.lnF,[<a:solidFill>])
	FWRITE(m.lnF,[<a:schemeClr val="lt1"/>])
	FWRITE(m.lnF,[</a:solidFill>])
	FWRITE(m.lnF,[</a:ln>])
	FWRITE(m.lnF,[</a:top>])
	FWRITE(m.lnF,[<a:bottom>])
	FWRITE(m.lnF,[<a:ln w="12700" cmpd="sng">])
	FWRITE(m.lnF,[<a:solidFill>])
	FWRITE(m.lnF,[<a:schemeClr val="lt1"/>])
	FWRITE(m.lnF,[</a:solidFill>])
	FWRITE(m.lnF,[</a:ln>])
	FWRITE(m.lnF,[</a:bottom>])
	FWRITE(m.lnF,[<a:insideH>])
	FWRITE(m.lnF,[<a:ln w="12700" cmpd="sng">])
	FWRITE(m.lnF,[<a:solidFill>])
	FWRITE(m.lnF,[<a:schemeClr val="lt1"/>])
	FWRITE(m.lnF,[</a:solidFill>])
	FWRITE(m.lnF,[</a:ln>])
	FWRITE(m.lnF,[</a:insideH>])
	FWRITE(m.lnF,[<a:insideV>])
	FWRITE(m.lnF,[<a:ln w="12700" cmpd="sng">])
	FWRITE(m.lnF,[<a:solidFill>])
	FWRITE(m.lnF,[<a:schemeClr val="lt1"/>])
	FWRITE(m.lnF,[</a:solidFill>])
	FWRITE(m.lnF,[</a:ln>])
	FWRITE(m.lnF,[</a:insideV>])
	FWRITE(m.lnF,[</a:tcBdr>])
	FWRITE(m.lnF,[<a:fill>])
	FWRITE(m.lnF,[<a:solidFill>])
	FWRITE(m.lnF,[<a:schemeClr val="accent1">])
	FWRITE(m.lnF,[<a:tint val="20000"/>])
	FWRITE(m.lnF,[</a:schemeClr>])
	FWRITE(m.lnF,[</a:solidFill>])
	FWRITE(m.lnF,[</a:fill>])
	FWRITE(m.lnF,[</a:tcStyle>])
	FWRITE(m.lnF,[</a:wholeTbl>])
	FWRITE(m.lnF,[<a:band1H>])
	FWRITE(m.lnF,[<a:tcStyle>])
	FWRITE(m.lnF,[<a:tcBdr/>])
	FWRITE(m.lnF,[<a:fill>])
	FWRITE(m.lnF,[<a:solidFill>])
	FWRITE(m.lnF,[<a:schemeClr val="accent1">])
	FWRITE(m.lnF,[<a:tint val="40000"/>])
	FWRITE(m.lnF,[</a:schemeClr>])
	FWRITE(m.lnF,[</a:solidFill>])
	FWRITE(m.lnF,[</a:fill>])
	FWRITE(m.lnF,[</a:tcStyle>])
	FWRITE(m.lnF,[</a:band1H>])
	FWRITE(m.lnF,[<a:band2H>])
	FWRITE(m.lnF,[<a:tcStyle>])
	FWRITE(m.lnF,[<a:tcBdr/>])
	FWRITE(m.lnF,[</a:tcStyle>])
	FWRITE(m.lnF,[</a:band2H>])
	FWRITE(m.lnF,[<a:band1V>])
	FWRITE(m.lnF,[<a:tcStyle>])
	FWRITE(m.lnF,[<a:tcBdr/>])
	FWRITE(m.lnF,[<a:fill>])
	FWRITE(m.lnF,[<a:solidFill>])
	FWRITE(m.lnF,[<a:schemeClr val="accent1">])
	FWRITE(m.lnF,[<a:tint val="40000"/>])
	FWRITE(m.lnF,[</a:schemeClr>])
	FWRITE(m.lnF,[</a:solidFill>])
	FWRITE(m.lnF,[</a:fill>])
	FWRITE(m.lnF,[</a:tcStyle>])
	FWRITE(m.lnF,[</a:band1V>])
	FWRITE(m.lnF,[<a:band2V>])
	FWRITE(m.lnF,[<a:tcStyle>])
	FWRITE(m.lnF,[<a:tcBdr/>])
	FWRITE(m.lnF,[</a:tcStyle>])
	FWRITE(m.lnF,[</a:band2V>])
	FWRITE(m.lnF,[<a:lastCol>])
	FWRITE(m.lnF,[<a:tcTxStyle b="on">])
	FWRITE(m.lnF,[<a:fontRef idx="minor">])
	FWRITE(m.lnF,[<a:prstClr val="black"/>])
	FWRITE(m.lnF,[</a:fontRef>])
	FWRITE(m.lnF,[<a:schemeClr val="lt1"/>])
	FWRITE(m.lnF,[</a:tcTxStyle>])
	FWRITE(m.lnF,[<a:tcStyle>])
	FWRITE(m.lnF,[<a:tcBdr/>])
	FWRITE(m.lnF,[<a:fill>])
	FWRITE(m.lnF,[<a:solidFill>])
	FWRITE(m.lnF,[<a:schemeClr val="accent1"/>])
	FWRITE(m.lnF,[</a:solidFill>])
	FWRITE(m.lnF,[</a:fill>])
	FWRITE(m.lnF,[</a:tcStyle>])
	FWRITE(m.lnF,[</a:lastCol>])
	FWRITE(m.lnF,[<a:firstCol>])
	FWRITE(m.lnF,[<a:tcTxStyle b="on">])
	FWRITE(m.lnF,[<a:fontRef idx="minor">])
	FWRITE(m.lnF,[<a:prstClr val="black"/>])
	FWRITE(m.lnF,[</a:fontRef>])
	FWRITE(m.lnF,[<a:schemeClr val="lt1"/>])
	FWRITE(m.lnF,[</a:tcTxStyle>])
	FWRITE(m.lnF,[<a:tcStyle>])
	FWRITE(m.lnF,[<a:tcBdr/>])
	FWRITE(m.lnF,[<a:fill>])
	FWRITE(m.lnF,[<a:solidFill>])
	FWRITE(m.lnF,[<a:schemeClr val="accent1"/>])
	FWRITE(m.lnF,[</a:solidFill>])
	FWRITE(m.lnF,[</a:fill>])
	FWRITE(m.lnF,[</a:tcStyle>])
	FWRITE(m.lnF,[</a:firstCol>])
	FWRITE(m.lnF,[<a:lastRow>])
	FWRITE(m.lnF,[<a:tcTxStyle b="on">])
	FWRITE(m.lnF,[<a:fontRef idx="minor">])
	FWRITE(m.lnF,[<a:prstClr val="black"/>])
	FWRITE(m.lnF,[</a:fontRef>])
	FWRITE(m.lnF,[<a:schemeClr val="lt1"/>])
	FWRITE(m.lnF,[</a:tcTxStyle>])
	FWRITE(m.lnF,[<a:tcStyle>])
	FWRITE(m.lnF,[<a:tcBdr>])
	FWRITE(m.lnF,[<a:top>])
	FWRITE(m.lnF,[<a:ln w="38100" cmpd="sng">])
	FWRITE(m.lnF,[<a:solidFill>])
	FWRITE(m.lnF,[<a:schemeClr val="lt1"/>])
	FWRITE(m.lnF,[</a:solidFill>])
	FWRITE(m.lnF,[</a:ln>])
	FWRITE(m.lnF,[</a:top>])
	FWRITE(m.lnF,[</a:tcBdr>])
	FWRITE(m.lnF,[<a:fill>])
	FWRITE(m.lnF,[<a:solidFill>])
	FWRITE(m.lnF,[<a:schemeClr val="accent1"/>])
	FWRITE(m.lnF,[</a:solidFill>])
	FWRITE(m.lnF,[</a:fill>])
	FWRITE(m.lnF,[</a:tcStyle>])
	FWRITE(m.lnF,[</a:lastRow>])
	FWRITE(m.lnF,[<a:firstRow>])
	FWRITE(m.lnF,[<a:tcTxStyle b="on">])
	FWRITE(m.lnF,[<a:fontRef idx="minor">])
	FWRITE(m.lnF,[<a:prstClr val="black"/>])
	FWRITE(m.lnF,[</a:fontRef>])
	FWRITE(m.lnF,[<a:schemeClr val="lt1"/>])
	FWRITE(m.lnF,[</a:tcTxStyle>])
	FWRITE(m.lnF,[<a:tcStyle>])
	FWRITE(m.lnF,[<a:tcBdr>])
	FWRITE(m.lnF,[<a:bottom>])
	FWRITE(m.lnF,[<a:ln w="38100" cmpd="sng">])
	FWRITE(m.lnF,[<a:solidFill>])
	FWRITE(m.lnF,[<a:schemeClr val="lt1"/>])
	FWRITE(m.lnF,[</a:solidFill>])
	FWRITE(m.lnF,[</a:ln>])
	FWRITE(m.lnF,[</a:bottom>])
	FWRITE(m.lnF,[</a:tcBdr>])
	FWRITE(m.lnF,[<a:fill>])
	FWRITE(m.lnF,[<a:solidFill>])
	FWRITE(m.lnF,[<a:schemeClr val="accent1"/>])
	FWRITE(m.lnF,[</a:solidFill>])
	FWRITE(m.lnF,[</a:fill>])
	FWRITE(m.lnF,[</a:tcStyle>])
	FWRITE(m.lnF,[</a:firstRow>])
	FWRITE(m.lnF,[</a:tblStyle>])
	FWRITE(m.lnF,[</a:tblStyleLst>])
	FCLOSE(m.lnF)
ENDPROC

******************************
* Generate ppt\viewProps.xml *
******************************
PROCEDURE gen_viewProps
	LPARAMETERS lcDir
	LOCAL lnF
	lnF = FCREATE(m.lcDir+"viewProps.xml")
	IF m.lnF < 0
		MESSAGEBOX('Cannot create viewProps.xml',16,'Abort')
		RETURN TO MASTER
	ENDIF
	FWRITE(m.lnF,[<?xml version="1.0" encoding="UTF-8" standalone="yes"?>]+CHR(10))
	FWRITE(m.lnF,[<p:viewPr xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" ])
	FWRITE(m.lnF,[xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main">])
	FWRITE(m.lnF,[<p:normalViewPr showOutlineIcons="0">])
	FWRITE(m.lnF,[<p:restoredLeft sz="15620"/>])
	FWRITE(m.lnF,[<p:restoredTop sz="94660"/>])
	FWRITE(m.lnF,[</p:normalViewPr>])
	FWRITE(m.lnF,[<p:slideViewPr>])
	FWRITE(m.lnF,[<p:cSldViewPr>])
	FWRITE(m.lnF,[<p:cViewPr varScale="1">])
	FWRITE(m.lnF,[<p:scale>])
	FWRITE(m.lnF,[<a:sx n="157" d="100"/>])
	FWRITE(m.lnF,[<a:sy n="157" d="100"/>])
	FWRITE(m.lnF,[</p:scale>])
	FWRITE(m.lnF,[<p:origin x="-342" y="-96"/>])
	FWRITE(m.lnF,[</p:cViewPr>])
	FWRITE(m.lnF,[<p:guideLst>])
	FWRITE(m.lnF,[<p:guide orient="horz" pos="2160"/>])
	FWRITE(m.lnF,[<p:guide pos="2880"/>])
	FWRITE(m.lnF,[</p:guideLst>])
	FWRITE(m.lnF,[</p:cSldViewPr>])
	FWRITE(m.lnF,[</p:slideViewPr>])
	FWRITE(m.lnF,[<p:notesTextViewPr>])
	FWRITE(m.lnF,[<p:cViewPr>])
	FWRITE(m.lnF,[<p:scale>])
	FWRITE(m.lnF,[<a:sx n="100" d="100"/>])
	FWRITE(m.lnF,[<a:sy n="100" d="100"/>])
	FWRITE(m.lnF,[</p:scale>])
	FWRITE(m.lnF,[<p:origin x="0" y="0"/>])
	FWRITE(m.lnF,[</p:cViewPr>])
	FWRITE(m.lnF,[</p:notesTextViewPr>])
	FWRITE(m.lnF,[<p:gridSpacing cx="73736200" cy="73736200"/>])
	FWRITE(m.lnF,[</p:viewPr>])
	FCLOSE(m.lnF)
ENDPROC


**************************************************
* Generate ppt\slides\_rels\slide1,2....xml.rels *
**************************************************
PROCEDURE gen_slidesrels
	LPARAMETERS lcDir,lnSlideNo
	LOCAL lnF,lni,lcName,lcS
	lcS = [<?xml version="1.0" encoding="UTF-8" standalone="yes"?>]+CHR(10)
	lcS = m.lcS + [<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">]
	lcS = m.lcS + [<Relationship Target="../slideLayouts/slideLayout1.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout" Id="rId1"/>]
	lcS = m.lcS + [</Relationships>]
	FOR lni = 1 TO m.lnSlideNo
		lcName = [slide] + LTRIM(STR(m.lni)) + [.xml.rels]
		lnF = FCREATE(m.lcDir + m.lcName)
		IF m.lnF < 0
			MESSAGEBOX('Cannot create ' + m.lcName,16,'Abort')
			RETURN TO MASTER
		ENDIF
		FWRITE(m.lnF,m.lcS)
		FCLOSE(m.lnF)
	NEXT
ENDPROC

*********************************
* Generate ppt\theme\theme1.xml *
*********************************
PROCEDURE gen_theme
	LPARAMETERS lcDir
	LOCAL lnF
	lnF = FCREATE(m.lcDir+"theme1.xml")
	IF m.lnF < 0
		MESSAGEBOX('Cannot create theme1.xml',16,'Abort')
		RETURN TO MASTER
	ENDIF
	FWRITE(m.lnF,[<?xml version="1.0" encoding="UTF-8" standalone="yes"?>]+CHR(10))
	FWRITE(m.lnF,[<a:theme xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" name="Office Theme">])
	FWRITE(m.lnF,[<a:themeElements>])
	FWRITE(m.lnF,[<a:clrScheme name="Office">])
	FWRITE(m.lnF,[<a:dk1>])
	FWRITE(m.lnF,[<a:sysClr val="windowText" lastClr="000000"/>])
	FWRITE(m.lnF,[</a:dk1>])
	FWRITE(m.lnF,[<a:lt1>])
	FWRITE(m.lnF,[<a:sysClr val="window" lastClr="FFFFFF"/>])
	FWRITE(m.lnF,[</a:lt1>])
	FWRITE(m.lnF,[<a:dk2>])
	FWRITE(m.lnF,[<a:srgbClr val="1F497D"/>])
	FWRITE(m.lnF,[</a:dk2>])
	FWRITE(m.lnF,[<a:lt2>])
	FWRITE(m.lnF,[<a:srgbClr val="EEECE1"/>])
	FWRITE(m.lnF,[</a:lt2>])
	FWRITE(m.lnF,[<a:accent1>])
	FWRITE(m.lnF,[<a:srgbClr val="4F81BD"/>])
	FWRITE(m.lnF,[</a:accent1>])
	FWRITE(m.lnF,[<a:accent2>])
	FWRITE(m.lnF,[<a:srgbClr val="C0504D"/>])
	FWRITE(m.lnF,[</a:accent2>])
	FWRITE(m.lnF,[<a:accent3>])
	FWRITE(m.lnF,[<a:srgbClr val="9BBB59"/>])
	FWRITE(m.lnF,[</a:accent3>])
	FWRITE(m.lnF,[<a:accent4>])
	FWRITE(m.lnF,[<a:srgbClr val="8064A2"/>])
	FWRITE(m.lnF,[</a:accent4>])
	FWRITE(m.lnF,[<a:accent5>])
	FWRITE(m.lnF,[<a:srgbClr val="4BACC6"/>])
	FWRITE(m.lnF,[</a:accent5>])
	FWRITE(m.lnF,[<a:accent6>])
	FWRITE(m.lnF,[<a:srgbClr val="F79646"/>])
	FWRITE(m.lnF,[</a:accent6>])
	FWRITE(m.lnF,[<a:hlink>])
	FWRITE(m.lnF,[<a:srgbClr val="0000FF"/>])
	FWRITE(m.lnF,[</a:hlink>])
	FWRITE(m.lnF,[<a:folHlink>])
	FWRITE(m.lnF,[<a:srgbClr val="800080"/>])
	FWRITE(m.lnF,[</a:folHlink>])
	FWRITE(m.lnF,[</a:clrScheme>])
	FWRITE(m.lnF,[<a:fontScheme name="Office">])
	FWRITE(m.lnF,[<a:majorFont>])
	FWRITE(m.lnF,[<a:latin typeface="Calibri"/>])
	FWRITE(m.lnF,[<a:ea typeface=""/>])
	FWRITE(m.lnF,[<a:cs typeface=""/>])
*!*		FWRITE(m.lnF,[<a:font script="Jpan" typeface="MS Pゴシック"/>])
*!*		FWRITE(m.lnF,[<a:font script="Hang" typeface="ë"'ì?€ ê³ ë"o"/>])
*!*		FWRITE(m.lnF,[<a:font script="Hans" typeface="宋ä½""/>])
*!*		FWRITE(m.lnF,[<a:font script="Hant" typeface="æ-°ç´°æ˜Žé"""/>])
	FWRITE(m.lnF,[<a:font script="Arab" typeface="Times New Roman"/>])
	FWRITE(m.lnF,[<a:font script="Hebr" typeface="Times New Roman"/>])
	FWRITE(m.lnF,[<a:font script="Thai" typeface="Angsana New"/>])
	FWRITE(m.lnF,[<a:font script="Ethi" typeface="Nyala"/>])
	FWRITE(m.lnF,[<a:font script="Beng" typeface="Vrinda"/>])
	FWRITE(m.lnF,[<a:font script="Gujr" typeface="Shruti"/>])
	FWRITE(m.lnF,[<a:font script="Khmr" typeface="MoolBoran"/>])
	FWRITE(m.lnF,[<a:font script="Knda" typeface="Tunga"/>])
	FWRITE(m.lnF,[<a:font script="Guru" typeface="Raavi"/>])
	FWRITE(m.lnF,[<a:font script="Cans" typeface="Euphemia"/>])
	FWRITE(m.lnF,[<a:font script="Cher" typeface="Plantagenet Cherokee"/>])
	FWRITE(m.lnF,[<a:font script="Yiii" typeface="Microsoft Yi Baiti"/>])
	FWRITE(m.lnF,[<a:font script="Tibt" typeface="Microsoft Himalaya"/>])
	FWRITE(m.lnF,[<a:font script="Thaa" typeface="MV Boli"/>])
	FWRITE(m.lnF,[<a:font script="Deva" typeface="Mangal"/>])
	FWRITE(m.lnF,[<a:font script="Telu" typeface="Gautami"/>])
	FWRITE(m.lnF,[<a:font script="Taml" typeface="Latha"/>])
	FWRITE(m.lnF,[<a:font script="Syrc" typeface="Estrangelo Edessa"/>])
	FWRITE(m.lnF,[<a:font script="Orya" typeface="Kalinga"/>])
	FWRITE(m.lnF,[<a:font script="Mlym" typeface="Kartika"/>])
	FWRITE(m.lnF,[<a:font script="Laoo" typeface="DokChampa"/>])
	FWRITE(m.lnF,[<a:font script="Sinh" typeface="Iskoola Pota"/>])
	FWRITE(m.lnF,[<a:font script="Mong" typeface="Mongolian Baiti"/>])
	FWRITE(m.lnF,[<a:font script="Viet" typeface="Times New Roman"/>])
	FWRITE(m.lnF,[<a:font script="Uigh" typeface="Microsoft Uighur"/>])
	FWRITE(m.lnF,[</a:majorFont>])
	FWRITE(m.lnF,[<a:minorFont>])
	FWRITE(m.lnF,[<a:latin typeface="Calibri"/>])
	FWRITE(m.lnF,[<a:ea typeface=""/>])
	FWRITE(m.lnF,[<a:cs typeface=""/>])
*!*		FWRITE(m.lnF,[<a:font script="Jpan" typeface="MS Pゴシック"/>])
*!*		FWRITE(m.lnF,[<a:font script="Hang" typeface="ë"'ì?€ ê³ ë"o"/>])
*!*		FWRITE(m.lnF,[<a:font script="Hans" typeface="宋ä½""/>])
*!*		FWRITE(m.lnF,[<a:font script="Hant" typeface="æ-°ç´°æ˜Žé"""/>])
	FWRITE(m.lnF,[<a:font script="Arab" typeface="Arial"/>])
	FWRITE(m.lnF,[<a:font script="Hebr" typeface="Arial"/>])
	FWRITE(m.lnF,[<a:font script="Thai" typeface="Cordia New"/>])
	FWRITE(m.lnF,[<a:font script="Ethi" typeface="Nyala"/>])
	FWRITE(m.lnF,[<a:font script="Beng" typeface="Vrinda"/>])
	FWRITE(m.lnF,[<a:font script="Gujr" typeface="Shruti"/>])
	FWRITE(m.lnF,[<a:font script="Khmr" typeface="DaunPenh"/>])
	FWRITE(m.lnF,[<a:font script="Knda" typeface="Tunga"/>])
	FWRITE(m.lnF,[<a:font script="Guru" typeface="Raavi"/>])
	FWRITE(m.lnF,[<a:font script="Cans" typeface="Euphemia"/>])
	FWRITE(m.lnF,[<a:font script="Cher" typeface="Plantagenet Cherokee"/>])
	FWRITE(m.lnF,[<a:font script="Yiii" typeface="Microsoft Yi Baiti"/>])
	FWRITE(m.lnF,[<a:font script="Tibt" typeface="Microsoft Himalaya"/>])
	FWRITE(m.lnF,[<a:font script="Thaa" typeface="MV Boli"/>])
	FWRITE(m.lnF,[<a:font script="Deva" typeface="Mangal"/>])
	FWRITE(m.lnF,[<a:font script="Telu" typeface="Gautami"/>])
	FWRITE(m.lnF,[<a:font script="Taml" typeface="Latha"/>])
	FWRITE(m.lnF,[<a:font script="Syrc" typeface="Estrangelo Edessa"/>])
	FWRITE(m.lnF,[<a:font script="Orya" typeface="Kalinga"/>])
	FWRITE(m.lnF,[<a:font script="Mlym" typeface="Kartika"/>])
	FWRITE(m.lnF,[<a:font script="Laoo" typeface="DokChampa"/>])
	FWRITE(m.lnF,[<a:font script="Sinh" typeface="Iskoola Pota"/>])
	FWRITE(m.lnF,[<a:font script="Mong" typeface="Mongolian Baiti"/>])
	FWRITE(m.lnF,[<a:font script="Viet" typeface="Arial"/>])
	FWRITE(m.lnF,[<a:font script="Uigh" typeface="Microsoft Uighur"/>])
	FWRITE(m.lnF,[</a:minorFont>])
	FWRITE(m.lnF,[</a:fontScheme>])
	FWRITE(m.lnF,[<a:fmtScheme name="Office">])
	FWRITE(m.lnF,[<a:fillStyleLst>])
	FWRITE(m.lnF,[<a:solidFill>])
	FWRITE(m.lnF,[<a:schemeClr val="phClr"/>])
	FWRITE(m.lnF,[</a:solidFill>])
	FWRITE(m.lnF,[<a:gradFill rotWithShape="1">])
	FWRITE(m.lnF,[<a:gsLst>])
	FWRITE(m.lnF,[<a:gs pos="0">])
	FWRITE(m.lnF,[<a:schemeClr val="phClr">])
	FWRITE(m.lnF,[<a:tint val="50000"/>])
	FWRITE(m.lnF,[<a:satMod val="300000"/>])
	FWRITE(m.lnF,[</a:schemeClr>])
	FWRITE(m.lnF,[</a:gs>])
	FWRITE(m.lnF,[<a:gs pos="35000">])
	FWRITE(m.lnF,[<a:schemeClr val="phClr">])
	FWRITE(m.lnF,[<a:tint val="37000"/>])
	FWRITE(m.lnF,[<a:satMod val="300000"/>])
	FWRITE(m.lnF,[</a:schemeClr>])
	FWRITE(m.lnF,[</a:gs>])
	FWRITE(m.lnF,[<a:gs pos="100000">])
	FWRITE(m.lnF,[<a:schemeClr val="phClr">])
	FWRITE(m.lnF,[<a:tint val="15000"/>])
	FWRITE(m.lnF,[<a:satMod val="350000"/>])
	FWRITE(m.lnF,[</a:schemeClr>])
	FWRITE(m.lnF,[</a:gs>])
	FWRITE(m.lnF,[</a:gsLst>])
	FWRITE(m.lnF,[<a:lin ang="16200000" scaled="1"/>])
	FWRITE(m.lnF,[</a:gradFill>])
	FWRITE(m.lnF,[<a:gradFill rotWithShape="1">])
	FWRITE(m.lnF,[<a:gsLst>])
	FWRITE(m.lnF,[<a:gs pos="0">])
	FWRITE(m.lnF,[<a:schemeClr val="phClr">])
	FWRITE(m.lnF,[<a:shade val="51000"/>])
	FWRITE(m.lnF,[<a:satMod val="130000"/>])
	FWRITE(m.lnF,[</a:schemeClr>])
	FWRITE(m.lnF,[</a:gs>])
	FWRITE(m.lnF,[<a:gs pos="80000">])
	FWRITE(m.lnF,[<a:schemeClr val="phClr">])
	FWRITE(m.lnF,[<a:shade val="93000"/>])
	FWRITE(m.lnF,[<a:satMod val="130000"/>])
	FWRITE(m.lnF,[</a:schemeClr>])
	FWRITE(m.lnF,[</a:gs>])
	FWRITE(m.lnF,[<a:gs pos="100000">])
	FWRITE(m.lnF,[<a:schemeClr val="phClr">])
	FWRITE(m.lnF,[<a:shade val="94000"/>])
	FWRITE(m.lnF,[<a:satMod val="135000"/>])
	FWRITE(m.lnF,[</a:schemeClr>])
	FWRITE(m.lnF,[</a:gs>])
	FWRITE(m.lnF,[</a:gsLst>])
	FWRITE(m.lnF,[<a:lin ang="16200000" scaled="0"/>])
	FWRITE(m.lnF,[</a:gradFill>])
	FWRITE(m.lnF,[</a:fillStyleLst>])
	FWRITE(m.lnF,[<a:lnStyleLst>])
	FWRITE(m.lnF,[<a:ln w="9525" cap="flat" cmpd="sng" algn="ctr">])
	FWRITE(m.lnF,[<a:solidFill>])
	FWRITE(m.lnF,[<a:schemeClr val="phClr">])
	FWRITE(m.lnF,[<a:shade val="95000"/>])
	FWRITE(m.lnF,[<a:satMod val="105000"/>])
	FWRITE(m.lnF,[</a:schemeClr>])
	FWRITE(m.lnF,[</a:solidFill>])
	FWRITE(m.lnF,[<a:prstDash val="solid"/>])
	FWRITE(m.lnF,[</a:ln>])
	FWRITE(m.lnF,[<a:ln w="25400" cap="flat" cmpd="sng" algn="ctr">])
	FWRITE(m.lnF,[<a:solidFill>])
	FWRITE(m.lnF,[<a:schemeClr val="phClr"/>])
	FWRITE(m.lnF,[</a:solidFill>])
	FWRITE(m.lnF,[<a:prstDash val="solid"/>])
	FWRITE(m.lnF,[</a:ln>])
	FWRITE(m.lnF,[<a:ln w="38100" cap="flat" cmpd="sng" algn="ctr">])
	FWRITE(m.lnF,[<a:solidFill>])
	FWRITE(m.lnF,[<a:schemeClr val="phClr"/>])
	FWRITE(m.lnF,[</a:solidFill>])
	FWRITE(m.lnF,[<a:prstDash val="solid"/>])
	FWRITE(m.lnF,[</a:ln>])
	FWRITE(m.lnF,[</a:lnStyleLst>])
	FWRITE(m.lnF,[<a:effectStyleLst>])
	FWRITE(m.lnF,[<a:effectStyle>])
	FWRITE(m.lnF,[<a:effectLst>])
	FWRITE(m.lnF,[<a:outerShdw blurRad="40000" dist="20000" dir="5400000" rotWithShape="0">])
	FWRITE(m.lnF,[<a:srgbClr val="000000">])
	FWRITE(m.lnF,[<a:alpha val="38000"/>])
	FWRITE(m.lnF,[</a:srgbClr>])
	FWRITE(m.lnF,[</a:outerShdw>])
	FWRITE(m.lnF,[</a:effectLst>])
	FWRITE(m.lnF,[</a:effectStyle>])
	FWRITE(m.lnF,[<a:effectStyle>])
	FWRITE(m.lnF,[<a:effectLst>])
	FWRITE(m.lnF,[<a:outerShdw blurRad="40000" dist="23000" dir="5400000" rotWithShape="0">])
	FWRITE(m.lnF,[<a:srgbClr val="000000">])
	FWRITE(m.lnF,[<a:alpha val="35000"/>])
	FWRITE(m.lnF,[</a:srgbClr>])
	FWRITE(m.lnF,[</a:outerShdw>])
	FWRITE(m.lnF,[</a:effectLst>])
	FWRITE(m.lnF,[</a:effectStyle>])
	FWRITE(m.lnF,[<a:effectStyle>])
	FWRITE(m.lnF,[<a:effectLst>])
	FWRITE(m.lnF,[<a:outerShdw blurRad="40000" dist="23000" dir="5400000" rotWithShape="0">])
	FWRITE(m.lnF,[<a:srgbClr val="000000">])
	FWRITE(m.lnF,[<a:alpha val="35000"/>])
	FWRITE(m.lnF,[</a:srgbClr>])
	FWRITE(m.lnF,[</a:outerShdw>])
	FWRITE(m.lnF,[</a:effectLst>])
	FWRITE(m.lnF,[<a:scene3d>])
	FWRITE(m.lnF,[<a:camera prst="orthographicFront">])
	FWRITE(m.lnF,[<a:rot lat="0" lon="0" rev="0"/>])
	FWRITE(m.lnF,[</a:camera>])
	FWRITE(m.lnF,[<a:lightRig rig="threePt" dir="t">])
	FWRITE(m.lnF,[<a:rot lat="0" lon="0" rev="1200000"/>])
	FWRITE(m.lnF,[</a:lightRig>])
	FWRITE(m.lnF,[</a:scene3d>])
	FWRITE(m.lnF,[<a:sp3d>])
	FWRITE(m.lnF,[<a:bevelT w="63500" h="25400"/>])
	FWRITE(m.lnF,[</a:sp3d>])
	FWRITE(m.lnF,[</a:effectStyle>])
	FWRITE(m.lnF,[</a:effectStyleLst>])
	FWRITE(m.lnF,[<a:bgFillStyleLst>])
	FWRITE(m.lnF,[<a:solidFill>])
	FWRITE(m.lnF,[<a:schemeClr val="phClr"/>])
	FWRITE(m.lnF,[</a:solidFill>])
	FWRITE(m.lnF,[<a:gradFill rotWithShape="1">])
	FWRITE(m.lnF,[<a:gsLst>])
	FWRITE(m.lnF,[<a:gs pos="0">])
	FWRITE(m.lnF,[<a:schemeClr val="phClr">])
	FWRITE(m.lnF,[<a:tint val="40000"/>])
	FWRITE(m.lnF,[<a:satMod val="350000"/>])
	FWRITE(m.lnF,[</a:schemeClr>])
	FWRITE(m.lnF,[</a:gs>])
	FWRITE(m.lnF,[<a:gs pos="40000">])
	FWRITE(m.lnF,[<a:schemeClr val="phClr">])
	FWRITE(m.lnF,[<a:tint val="45000"/>])
	FWRITE(m.lnF,[<a:shade val="99000"/>])
	FWRITE(m.lnF,[<a:satMod val="350000"/>])
	FWRITE(m.lnF,[</a:schemeClr>])
	FWRITE(m.lnF,[</a:gs>])
	FWRITE(m.lnF,[<a:gs pos="100000">])
	FWRITE(m.lnF,[<a:schemeClr val="phClr">])
	FWRITE(m.lnF,[<a:shade val="20000"/>])
	FWRITE(m.lnF,[<a:satMod val="255000"/>])
	FWRITE(m.lnF,[</a:schemeClr>])
	FWRITE(m.lnF,[</a:gs>])
	FWRITE(m.lnF,[</a:gsLst>])
	FWRITE(m.lnF,[<a:path path="circle">])
	FWRITE(m.lnF,[<a:fillToRect l="50000" t="-80000" r="50000" b="180000"/>])
	FWRITE(m.lnF,[</a:path>])
	FWRITE(m.lnF,[</a:gradFill>])
	FWRITE(m.lnF,[<a:gradFill rotWithShape="1">])
	FWRITE(m.lnF,[<a:gsLst>])
	FWRITE(m.lnF,[<a:gs pos="0">])
	FWRITE(m.lnF,[<a:schemeClr val="phClr">])
	FWRITE(m.lnF,[<a:tint val="80000"/>])
	FWRITE(m.lnF,[<a:satMod val="300000"/>])
	FWRITE(m.lnF,[</a:schemeClr>])
	FWRITE(m.lnF,[</a:gs>])
	FWRITE(m.lnF,[<a:gs pos="100000">])
	FWRITE(m.lnF,[<a:schemeClr val="phClr">])
	FWRITE(m.lnF,[<a:shade val="30000"/>])
	FWRITE(m.lnF,[<a:satMod val="200000"/>])
	FWRITE(m.lnF,[</a:schemeClr>])
	FWRITE(m.lnF,[</a:gs>])
	FWRITE(m.lnF,[</a:gsLst>])
	FWRITE(m.lnF,[<a:path path="circle">])
	FWRITE(m.lnF,[<a:fillToRect l="50000" t="50000" r="50000" b="50000"/>])
	FWRITE(m.lnF,[</a:path>])
	FWRITE(m.lnF,[</a:gradFill>])
	FWRITE(m.lnF,[</a:bgFillStyleLst>])
	FWRITE(m.lnF,[</a:fmtScheme>])
	FWRITE(m.lnF,[</a:themeElements>])
	FWRITE(m.lnF,[<a:objectDefaults/>])
	FWRITE(m.lnF,[<a:extraClrSchemeLst/>])
	FWRITE(m.lnF,[</a:theme>])
	FCLOSE(m.lnF)
ENDPROC 

Vilhelm-Ion Praisach

Back to Microsoft: Visual FoxPro FAQ Index
Back to Microsoft: Visual FoxPro Forum

My Archive

Resources

Close Box

Join Tek-Tips® Today!

Join your peers on the Internet's largest technical computer professional community.
It's easy to join and it's free.

Here's Why Members Love Tek-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close