<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
  <head>
	<meta HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=iso-8859-1">
	<title>Basic in UNO and OpenOffice.org</title>
	<meta NAME="KEYWORDS" CONTENT="sandbox">
  </head>
  <body LINK="#444488" VLINK="#444488" bgcolor="#eeeeff"><A NAME="__Top__"></A>

    <table WIDTH=100% BORDER=0 CELLPADDING=4 CELLSPACING=0>
	  <col WIDTH=75>
	  <tr>
		<td bgcolor="#666699">
          <h1 ALIGN=CENTER STYLE="margin-top: 0cm; text-decoration: none">
	        <font COLOR="#ffffff" SIZE=6>Basic in UNO and OpenOffice.org</font>
		  </h1>
		</td>
	  </tr>
    </table>

	<P> 

	Basic is a scripting language directly integrated in OpenOffice.org.
	OpenOffice.org is based on the language independent component model 
	<a href="../../common/man/uno.html">UNO</a>. In the moment it's 
	not possible write components in Basic. But already existing
	components and the complete OpenOffice.org API based on UNO can be
	accessed from Basic.

	<P> 

	The following list contains some sources that explain how Basic
	can be used for accessing UNO.

<ul>

  <li> The general functionality of StarBasic is described in the
  OpenOffice.org online help system.</li>

  <li> Description of the UNO/Basic language binding: 
  <a href="http://api.openoffice.org/DevelopersGuide/DevelopersGuide.html">
   Developers guide</a>
   , chapter ProfessionalUNO.pdf, paragraph 3.4.4 Basic.
   This document is part of the UNO Developer 
  Manual. Although only the Basic chapter contains explicit information about UNO
  programming with Basic, the whole document can also be useful for Basic programmers as
  a general UNO development overview.</li>

  <li> API related information about the Basic programming language:
  <a href="http://api.openoffice.org/source/browse/api/devmanual/BasicAndDialogs/UsingBasic.xml">
  UsingBasic.xml</a> <br>
  (this DRAFT document will become part of the UNO Developer Manual). * </li>

  <li> The Integrated development Environment used to write Basic programs and to design
  dialogs the can be used from Basic is described in: 
  <a href="http://api.openoffice.org/source/browse/api/devmanual/BasicAndDialogs/BasicIDE.xml">
  BasicIDE.xml</a> <br>
  (this DRAFT document will become part of the UNO Developer Manual). * </li>

  <li> Description of the toolkit controls that are used to create Basic dialogs and the 
  corresponding API:
  <a href="http://api.openoffice.org/source/browse/api/devmanual/BasicAndDialogs/ToolkitControls.xml">
  ToolkitControls.xml</a> <br>
  (this DRAFT document will become part of the UNO Developer Manual). * </li>

  <li> The organisation of Basic libraries and the corresponding API is described in: 
  <a href="http://api.openoffice.org/source/browse/api/devmanual/BasicAndDialogs/BasicLibraries.xml">
  BasicLibraries.xml</a> <br>
  (this DRAFT document will become part of the UNO Developer Manual). * </li>

  <li> A simple UNO developers guide can be found here: 
  <a href="http://api.openoffice.org/basic/man/tutorial/tutorial.pdf">
  Tutorial.pdf</a>. <br>This is an older document and refers to the UNO API in 
  StarOffice 5.2  but in general it's still valid for StarOffice 6.0 / OpenOffice.org.</li>
</ul>

	<p>

	* All DRAFT documents are stored in a special flat XML format that
	needs a special 
	<a href="http://api.openoffice.org/servlets/ProjectDownloadList?action=download&dlID=16">
	filter</a> to read them (for details see 
	<a href="http://api.openoffice.org/source/browse/api/devmanual/guideline.html">
	guideline.html</a>). The flat XML format doesn't contain pictures but only links to pictures. So also some 
	image files (located in the same cvs directory) may be needed to display the according documents correctly.

	<p>

</body>
</html>
