Add_MSPowerPoint_Object
	Summary
Procedure Extension Template
Add an MS PowerPoint object to a procedure
Optional
	
What does it do?
This template is used
to add MS PowerPoint functionality to a procedure in your app.  We are still developing
it and adding functionality to it, more info will come later.
	
Prerequisites
You need to have added
the 
Activate_Office_Inside
global extension template before you can add this template to a procedure.
	
How do I implement it?
       
        -  Select the procedure which you want to add this template to.
-  Select "Properties..." from the "Edit" menu
-  Click the "Extensions" button
-  Click on the "Insert" button to add a new extension template
-  Select "Add_MSPowerPoint_Object" ( found under the "Class
          OfficeInside" group )
-  Click "Select", then "OK", then "OK"
          again...
What are my options?
General Tab:
Object Name:
This is the name of the Office Inside object
that this template will create and implement.  Typically this would
default to 'MyPowerPoint1', but you can change it if you would prefer to
call the object something else.
 
This section describes the various classes which make up "Office Inside". 
Each class contains methods and properties, which are documented below. 
Each method is documented by giving the method name, the parameters, an example
of how to code the method, a list describing what the method does, and additional
comments below.
The oiPowerPoint Class - Introduction
The oiPowerPoint class is a "wrapper" class, which is used by the templates
and by other classes as the "communication" layer between Office Inside
and MS PowerPoint.  Should you wish to write code which communicates "directly"
with MS PowerPoint, this is the class you're looking for.
The oiPowerPoint Class - Methods
  
      
        | oiPowerpoint Method Reference | 
	    | Method | Description | 
		| ClosePresentation | Closes the currently open presentation | 
		| CountOpenPresentations | Returns the number of open presentations | 
		| EndShow | Ends a slidehow | 
		| FirstSlide | Moves to the first slide in a show | 
		| GetInfo | Retrieves properties of the slideshow or Powerpoint | 
		| Init | Initialises the oiPowerpoint object and Powerpoint | 
		| Kill | Cleans up and releases the instance of Powerpoint | 
		| LastSlide | Navigates to the last slide in the show | 
		| NextSlide | Navigates to the next slide | 
		| OpenPresentation | Opens a Powerpoint presentation | 
		| PreviousSlide | Navigates to the previous slide | 
		| SaveAs | Saves the presentation to file, in a number of formats | 
		| ViewShow | Starts a show | 
ClosePresentation
	ClosePresentation  ( ) ,byte,proc
	Description
Closes the currently open presentation.
	Example
MyPowerPoint.ClosePresentation ()
CountOpenPresentations
	CountOpenPresentations  ( ) ,long 
	
	Description
Returns the number of currently open presentations.
	Example
if MyPowerPoint.CountOpenPresentations() > 0
...
EndShow
	EndShow  ( ) 
	
	Description
If you are currently viewing a presentation, this method will stop it.
	Example
MyPowerPoint.EndShow() 
FirstSlide
	FirstSlide  ( ) 
	
	Description
If you are currently viewing a presentation, this method will load
the first slide.
	Example
MyPowerPoint.FirstSlide()
GetInfo
	GetInfo  ( byte pOption ) ,string,proc 
	
	Description
Used to get information from the Power Point object.
	Example
i# = MyPowerPoint.GetInfo(oip:Width)
Init
     
	Init ( byte pStartVisible=1, byte pEnableEvents=1 ) ,byte,proc 
	
	Description
        
          - Initializes the PowerPoint object.  Must be called before you
			can use any of the other methods.  If you are using the Office
			Inside templates this method will be called automatically.
- The two parameters are of no use at this time, as the object
			will always initialize with PowerPoint being visible, and events
			turned off.
Example
MyPowerPoint.Init (true, false) 
Kill
      
	Kill  ( byte pUnloadCOM=1 ) ,byte,proc 
	
	Description
Closes down and disposes of the PowerPoint object, as well as the
numerous objects used internally by the PowerPoint object.  The
templates will generate code to call this method.
	Example
MyPowerPoint.Kill()
LastSlide
    
	LastSlide  ( ) 
	
	Description
If you are currently viewing a presentation, this method will load
the last slide.
	Example
MyPowerPoint.LastSlide()
NextSlide
	NextSlide ( ) 
	
	Description
If you are currently viewing a presentation, this method will load
the next slide in sequence.
	Example
MyPowerPoint.NextSlide()
OpenPresentation
	OpenPresentation ( string pFileName, byte pReadOnly=1 ) ,byte,proc 
	
	Description
Opens a Power Point presentation, as specified by the pFileNameparameter.
	Example
MyPowerPoint.OpenPresentation (longpath() & '\csoi.ppt')
PreviousSlide
	PreviousSlide ( ) 
	
	Description
If you are currently viewing a presentation, this method will load
the previous slide in sequence.
	Example
MyPowerPoint.PreviousSlide()
SaveAs
        
	SaveAs  (string fileName, longfileFormat, long embedFonts), long
	Description
The SaveAs method saves the currently loaded and active presentation to a file.
The file name and type can both be specified. PowerPoint supports saving
as a large variety of files, although not all formats support all the
data that can be stored in a presentation. For example you can export
the summary to RTF by using SaveAs and setting the fileFormat parameter
 to oip:ppSaveAsRTF.
        
	Parameters
  
      
        | Parameter | Description | 
	| fileName | the file name to save the document as (for example 
		'PowerPoint Outline.rtf')' | 
	| fileFormat | the format to save the file as (see below for the 
		values allowed for this parameter) | 
	| embedFonts | whether to embed fonts into the new document (only 
		applies to formats that allow font embedding) | 
        The supported values for the 
fileFormat parameter are:
        
| Equate and value | Description | 
| oip:ppSaveAsPresentation       equate(1) oip:ppSaveAsPowerPoint7        equate(2)
 oip:ppSaveAsPowerPoint4        equate(3)
oip:ppSaveAsPowerPoint3        equate(4)
 oip:ppSaveAsTemplate           equate(5)
 oip:ppSaveAsRTF                equate(6)
 oip:ppSaveAsShow               equate(7)
 oip:ppSaveAsAddIn              equate(8)
 oip:ppSaveAsPowerPoint4FarEast equate(10)
 oip:ppSaveAsDefault            equate(11)
 oip:ppSaveAsHTML               equate(12)
 oip:ppSaveAsHTMLv3             equate(13)
 oip:ppSaveAsHTMLDual           equate(14)
 oip:ppSaveAsMetaFile           equate(15)
 oip:ppSaveAsGIF                equate(16)
 oip:ppSaveAsJPG                equate(17)
 oip:ppSaveAsPNG                equate(18)
 oip:ppSaveAsBMP                equate(19)
 oip:ppSaveAsWebArchive         equate(20)
 oip:ppSaveAsTIF                equate(21)
 oip:ppSaveAsPresForReview      equate(22)
 oip:ppSaveAsEMF                equate(23)
 | Presentation (a standard PowerPoint .ppt file) PowerPoint 7 Presentation (.ppt)
 PowerPoint 4 Presentation (.ppt)
 PowerPoint 3 Presentation (.ppt)
 PowerPoint Template (.pot)
 Outline/RTF (.rtf)
 PowerPoint Show (.pps)
 PowerPoint Add-In ( .ppa)
 -
 -
 Web Page (.htm; .html )
 Web Page (.htm; .html )
 -
 Windows Metafile (.wmf)
 GIF Graphics Interchange Format (.gif)
 JPEG File Interchange Format (.jpg')
 PNG Portable Network Graphics Format (.png)
 Device Independant Bitmap (.bmp)
 Single File Web Page (.mht; .mhtml)
 Tagged Image File Format (.tiff)
 -
 Enhanced Metafile (.emf)
 | 
       
	Return Values
The function returns 1 (true) for success and zero (false) for failure,
	
Simple Example
 MyPowerPoint1.SaveAs ((LongPath() & '\Test.ppt'), oip:ppSaveAsPresentation, true)
	Full Example
The below example displays a File Dialog for choosing the file name and type
(if the user does not enter the file extension then it is appended
to the name for them). The extension is then checked and the SaveAs
method is called with the fileFormat parameter set to the equate that
matches the selected file type. Not that for document with multiple
pages selecting an image format such as Bitmap, JPEG, PNG etc. will
create a folder with an image for each page. The folder is given the
same name as the filename specified in the Save As dialog box. See
the DemoC6 example which contains this code.
  
      
        | Example | 
     | fileFormats         string(512)                         fileName            string(File:MaxFilename)
 fileType            long
 i                   long                                
      fileFormats = 'Presentation |*.ppt |Design Template |*.pot |Show |*.pps |PowerPoint Add-In |*.ppa |' |
                  & 'Web Page |*.htm |Single File Web Page |*.mht |GIF Graphics Interchange Format |*.gif |' |
                  & 'PNG Portable Network Graphics Format |*.png |JPEG File Interchange Format |*.jpg |' |
                  & 'Device Independant Bitmap |*.bmp |Windows Metafile |*.wmf |Enhanced Metafile |*.emf |Outline(RTF) |*.rtf |All Files |*.*'
      if FileDialog('Save As...', fileName, fileFormats , File:Save + File:KeepDir + File:AddExtension + File:LongName)
          loop i = Len(Clip(fileName)) to 1 by -1
              if fileName[i] = '.'        ! found the extension position
                  case( Lower( fileName[i + 1 : Len(Clip(fileName))] ) )
                  of 'ppt'
                      fileType = oip:ppSaveAsPresentation
                  of 'pot'
                      fileType = oip:ppSaveAsTemplate
                  of 'pps'
                      fileType = oip:ppSaveAsShow
                  of 'ppa'
                      fileType = oip:ppSaveAsAddIn
                  of 'htm' orof 'html'
                      fileType = oip:ppSaveAsHTML
                  of 'mht' orof 'mhtml'
                      fileType = oip:ppSaveAsWebArchive
                  of 'gif'
                      fileType =oip:ppSaveAsGIF
                  of 'png'
                      fileType = oip:ppSaveAsPNG
                  of 'jpg' orof 'jpeg'
                      fileType = oip:ppSaveAsJPG
                  of 'bmp' fileType = oip:ppSaveAsBMP
                  of 'wmf' fileType = oip:ppSaveAsMetaFile
                  of 'emf'
                      fileType = oip:ppSaveAsEMF
                  of 'rtf'
                      fileType = oip:ppSaveAsRTF
                  else
                      Message('Sorry but an unknown or invalid file type was specified (' & Lower( fileName[i + 1 : Len(Clip(fileName))] ) & ').')
                      break
                  end
                  if not MyPowerPoint1.SaveAs (Clip(fileName), fileType, false)
                      Message('Failed to save document')
                  else
                      Message('Document saved to: ' & Clip(fileName))
                  end
              end
          end
      end
 | 
 
ViewShow
	ViewShow  ( )  
	Description
Once you have opened a Power Point presentation, you can use this
method to start viewing the Slide Show.
	Example
MyPowerPoint.ViewShow ()