mime-version: 1.0
content-type: multipart/related;
	 boundary="----=_NextPart_01C804F3.40DE8CB0"



This document is a Single File Web Page, also known as a Web Archive file.  If you are seeing this message, your browser or editor doesn't support Web Archive files.  Please download a browser that supports Web Archive, such as Windows® Internet Explorer®.

------=_NextPart_01C804F3.40DE8CB0
mime-version: 1.0
content-location: file:///C:/8C69C633/VOwithOffice2003.htm
content-transfer-encoding: quoted-printable
content-type: text/html;
	 charset="us-ascii"

<html xmlns:v=3D"urn:schemas-microsoft-com:vml"
xmlns:o=3D"urn:schemas-microsoft-com:office:office"
xmlns:w=3D"urn:schemas-microsoft-com:office:word"
xmlns:dt=3D"uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml"
xmlns:st1=3D"urn:schemas-microsoft-com:office:smarttags"
xmlns=3D"http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=3DContent-Type content=3D"text/html; charset=3Dus-ascii">
<meta name=3DProgId content=3DWord.Document>
<meta name=3DGenerator content=3D"Microsoft Word 12">
<meta name=3DOriginator content=3D"Microsoft Word 12">
<link rel=3DFile-List href=3D"file:///C:/8C69C633/VOwithOffice2003_files/f=
ilelist.xml">
<link rel=3DEdit-Time-Data href=3D"file:///C:/8C69C633/VOwithOffice2003_fi=
les/editdata.mso">
<link rel=3DOLE-Object-Data href=3D"file:///C:/8C69C633/VOwithOffice2003_f=
iles/oledata.mso">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<title>Integrating VO with MS Office, Office Business Applications with VO=
</title>
<o:SmartTagType namespaceuri=3D"urn:schemas-microsoft-com:office:smarttags"
 name=3D"country-region"/>
<o:SmartTagType namespaceuri=3D"urn:schemas-microsoft-com:office:smarttags"
 name=3D"place"/>
<o:SmartTagType namespaceuri=3D"urn:schemas-microsoft-com:office:smarttags"
 name=3D"City"/>
<o:SmartTagType namespaceuri=3D"urn:schemas-microsoft-com:office:smarttags"
 name=3D"PersonName"/>
<!--[if gte mso 9]><xml>
 <o:DocumentProperties>
  <o:Author>GSchaller</o:Author>
  <o:Template>Normal</o:Template>
  <o:LastAuthor>Ed Richard</o:LastAuthor>
  <o:Revision>3</o:Revision>
  <o:TotalTime>86</o:TotalTime>
  <o:Created>2007-04-02T12:21:00Z</o:Created>
  <o:LastSaved>2007-10-02T02:53:00Z</o:LastSaved>
  <o:Pages>12</o:Pages>
  <o:Words>7363</o:Words>
  <o:Characters>41972</o:Characters>
  <o:Company>Software Objectives</o:Company>
  <o:Lines>349</o:Lines>
  <o:Paragraphs>98</o:Paragraphs>
  <o:CharactersWithSpaces>49237</o:CharactersWithSpaces>
  <o:Version>12.00</o:Version>
 </o:DocumentProperties>
 <o:CustomDocumentProperties>
  <o:Abstract dt:dt=3D"string">We will demonstrate some important integrat=
ion aspects, our aim is to show how we can employ MS Office products from =
our VO desktop application. This is about integration: about making our ap=
plications smarter and by making MS Office products smarter, mor</o:Abstra=
ct>
  <o:PublishStatus dt:dt=3D"string">Published</o:PublishStatus>
  <o:Category dt:dt=3D"string">2</o:Category>
  <o:ContentType dt:dt=3D"string">Document</o:ContentType>
 </o:CustomDocumentProperties>
</xml><![endif]-->
<link rel=3DthemeData href=3D"file:///C:/8C69C633/VOwithOffice2003_files/t=
hemedata.thmx">
<link rel=3DcolorSchemeMapping
href=3D"file:///C:/8C69C633/VOwithOffice2003_files/colorschememapping.xml">
<!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:Zoom>120</w:Zoom>
  <w:TrackMoves>false</w:TrackMoves>
  <w:TrackFormatting/>
  <w:PunctuationKerning/>
  <w:DrawingGridHorizontalSpacing>6 pt</w:DrawingGridHorizontalSpacing>
  <w:DisplayHorizontalDrawingGridEvery>2</w:DisplayHorizontalDrawingGridEv=
ery>
  <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery>
  <w:ValidateAgainstSchemas/>
  <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
  <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
  <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
  <w:DoNotPromoteQF/>
  <w:LidThemeOther>EN-AU</w:LidThemeOther>
  <w:LidThemeAsian>X-NONE</w:LidThemeAsian>
  <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
  <w:Compatibility>
   <w:BreakWrappedTables/>
   <w:SnapToGridInCell/>
   <w:WrapTextWithPunct/>
   <w:UseAsianBreakRules/>
   <w:DontGrowAutofit/>
   <w:SplitPgBreakAndParaMark/>
   <w:DontVertAlignCellWithSp/>
   <w:DontBreakConstrainedForcedTables/>
   <w:DontVertAlignInTxbx/>
   <w:Word11KerningPairs/>
   <w:CachedColBalance/>
  </w:Compatibility>
  <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
  <m:mathPr>
   <m:mathFont m:val=3D"Cambria Math"/>
   <m:brkBin m:val=3D"before"/>
   <m:brkBinSub m:val=3D"&#45;-"/>
   <m:smallFrac m:val=3D"off"/>
   <m:dispDef/>
   <m:lMargin m:val=3D"0"/>
   <m:rMargin m:val=3D"0"/>
   <m:defJc m:val=3D"centerGroup"/>
   <m:wrapIndent m:val=3D"1440"/>
   <m:intLim m:val=3D"subSup"/>
   <m:naryLim m:val=3D"undOvr"/>
  </m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:LatentStyles DefLockedState=3D"false" DefUnhideWhenUsed=3D"false"
  DefSemiHidden=3D"false" DefQFormat=3D"false" LatentStyleCount=3D"267">
  <w:LsdException Locked=3D"false" QFormat=3D"true" Name=3D"Normal"/>
  <w:LsdException Locked=3D"false" QFormat=3D"true" Name=3D"heading 1"/>
  <w:LsdException Locked=3D"false" QFormat=3D"true" Name=3D"heading 2"/>
  <w:LsdException Locked=3D"false" QFormat=3D"true" Name=3D"heading 3"/>
  <w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"t=
rue"
   QFormat=3D"true" Name=3D"heading 4"/>
  <w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"t=
rue"
   QFormat=3D"true" Name=3D"heading 5"/>
  <w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"t=
rue"
   QFormat=3D"true" Name=3D"heading 6"/>
  <w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"t=
rue"
   QFormat=3D"true" Name=3D"heading 7"/>
  <w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"t=
rue"
   QFormat=3D"true" Name=3D"heading 8"/>
  <w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"t=
rue"
   QFormat=3D"true" Name=3D"heading 9"/>
  <w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"t=
rue"
   QFormat=3D"true" Name=3D"caption"/>
  <w:LsdException Locked=3D"false" QFormat=3D"true" Name=3D"Title"/>
  <w:LsdException Locked=3D"false" Priority=3D"1" Name=3D"Default Paragrap=
h Font"/>
  <w:LsdException Locked=3D"false" QFormat=3D"true" Name=3D"Subtitle"/>
  <w:LsdException Locked=3D"false" QFormat=3D"true" Name=3D"Strong"/>
  <w:LsdException Locked=3D"false" QFormat=3D"true" Name=3D"Emphasis"/>
  <w:LsdException Locked=3D"false" Priority=3D"99" Name=3D"No List"/>
  <w:LsdException Locked=3D"false" Priority=3D"99" SemiHidden=3D"true"
   Name=3D"Placeholder Text"/>
  <w:LsdException Locked=3D"false" Priority=3D"1" QFormat=3D"true" Name=3D=
"No Spacing"/>
  <w:LsdException Locked=3D"false" Priority=3D"60" Name=3D"Light Shading"/>
  <w:LsdException Locked=3D"false" Priority=3D"61" Name=3D"Light List"/>
  <w:LsdException Locked=3D"false" Priority=3D"62" Name=3D"Light Grid"/>
  <w:LsdException Locked=3D"false" Priority=3D"63" Name=3D"Medium Shading =
1"/>
  <w:LsdException Locked=3D"false" Priority=3D"64" Name=3D"Medium Shading =
2"/>
  <w:LsdException Locked=3D"false" Priority=3D"65" Name=3D"Medium List 1"/>
  <w:LsdException Locked=3D"false" Priority=3D"66" Name=3D"Medium List 2"/>
  <w:LsdException Locked=3D"false" Priority=3D"67" Name=3D"Medium Grid 1"/>
  <w:LsdException Locked=3D"false" Priority=3D"68" Name=3D"Medium Grid 2"/>
  <w:LsdException Locked=3D"false" Priority=3D"69" Name=3D"Medium Grid 3"/>
  <w:LsdException Locked=3D"false" Priority=3D"70" Name=3D"Dark List"/>
  <w:LsdException Locked=3D"false" Priority=3D"71" Name=3D"Colorful Shadin=
g"/>
  <w:LsdException Locked=3D"false" Priority=3D"72" Name=3D"Colorful List"/>
  <w:LsdException Locked=3D"false" Priority=3D"73" Name=3D"Colorful Grid"/>
  <w:LsdException Locked=3D"false" Priority=3D"60" Name=3D"Light Shading A=
ccent 1"/>
  <w:LsdException Locked=3D"false" Priority=3D"61" Name=3D"Light List Acce=
nt 1"/>
  <w:LsdException Locked=3D"false" Priority=3D"62" Name=3D"Light Grid Acce=
nt 1"/>
  <w:LsdException Locked=3D"false" Priority=3D"63" Name=3D"Medium Shading =
1 Accent 1"/>
  <w:LsdException Locked=3D"false" Priority=3D"64" Name=3D"Medium Shading =
2 Accent 1"/>
  <w:LsdException Locked=3D"false" Priority=3D"65" Name=3D"Medium List 1 A=
ccent 1"/>
  <w:LsdException Locked=3D"false" Priority=3D"99" SemiHidden=3D"true" Nam=
e=3D"Revision"/>
  <w:LsdException Locked=3D"false" Priority=3D"34" QFormat=3D"true"
   Name=3D"List Paragraph"/>
  <w:LsdException Locked=3D"false" Priority=3D"29" QFormat=3D"true" Name=
=3D"Quote"/>
  <w:LsdException Locked=3D"false" Priority=3D"30" QFormat=3D"true"
   Name=3D"Intense Quote"/>
  <w:LsdException Locked=3D"false" Priority=3D"66" Name=3D"Medium List 2 A=
ccent 1"/>
  <w:LsdException Locked=3D"false" Priority=3D"67" Name=3D"Medium Grid 1 A=
ccent 1"/>
  <w:LsdException Locked=3D"false" Priority=3D"68" Name=3D"Medium Grid 2 A=
ccent 1"/>
  <w:LsdException Locked=3D"false" Priority=3D"69" Name=3D"Medium Grid 3 A=
ccent 1"/>
  <w:LsdException Locked=3D"false" Priority=3D"70" Name=3D"Dark List Accen=
t 1"/>
  <w:LsdException Locked=3D"false" Priority=3D"71" Name=3D"Colorful Shadin=
g Accent 1"/>
  <w:LsdException Locked=3D"false" Priority=3D"72" Name=3D"Colorful List A=
ccent 1"/>
  <w:LsdException Locked=3D"false" Priority=3D"73" Name=3D"Colorful Grid A=
ccent 1"/>
  <w:LsdException Locked=3D"false" Priority=3D"60" Name=3D"Light Shading A=
ccent 2"/>
  <w:LsdException Locked=3D"false" Priority=3D"61" Name=3D"Light List Acce=
nt 2"/>
  <w:LsdException Locked=3D"false" Priority=3D"62" Name=3D"Light Grid Acce=
nt 2"/>
  <w:LsdException Locked=3D"false" Priority=3D"63" Name=3D"Medium Shading =
1 Accent 2"/>
  <w:LsdException Locked=3D"false" Priority=3D"64" Name=3D"Medium Shading =
2 Accent 2"/>
  <w:LsdException Locked=3D"false" Priority=3D"65" Name=3D"Medium List 1 A=
ccent 2"/>
  <w:LsdException Locked=3D"false" Priority=3D"66" Name=3D"Medium List 2 A=
ccent 2"/>
  <w:LsdException Locked=3D"false" Priority=3D"67" Name=3D"Medium Grid 1 A=
ccent 2"/>
  <w:LsdException Locked=3D"false" Priority=3D"68" Name=3D"Medium Grid 2 A=
ccent 2"/>
  <w:LsdException Locked=3D"false" Priority=3D"69" Name=3D"Medium Grid 3 A=
ccent 2"/>
  <w:LsdException Locked=3D"false" Priority=3D"70" Name=3D"Dark List Accen=
t 2"/>
  <w:LsdException Locked=3D"false" Priority=3D"71" Name=3D"Colorful Shadin=
g Accent 2"/>
  <w:LsdException Locked=3D"false" Priority=3D"72" Name=3D"Colorful List A=
ccent 2"/>
  <w:LsdException Locked=3D"false" Priority=3D"73" Name=3D"Colorful Grid A=
ccent 2"/>
  <w:LsdException Locked=3D"false" Priority=3D"60" Name=3D"Light Shading A=
ccent 3"/>
  <w:LsdException Locked=3D"false" Priority=3D"61" Name=3D"Light List Acce=
nt 3"/>
  <w:LsdException Locked=3D"false" Priority=3D"62" Name=3D"Light Grid Acce=
nt 3"/>
  <w:LsdException Locked=3D"false" Priority=3D"63" Name=3D"Medium Shading =
1 Accent 3"/>
  <w:LsdException Locked=3D"false" Priority=3D"64" Name=3D"Medium Shading =
2 Accent 3"/>
  <w:LsdException Locked=3D"false" Priority=3D"65" Name=3D"Medium List 1 A=
ccent 3"/>
  <w:LsdException Locked=3D"false" Priority=3D"66" Name=3D"Medium List 2 A=
ccent 3"/>
  <w:LsdException Locked=3D"false" Priority=3D"67" Name=3D"Medium Grid 1 A=
ccent 3"/>
  <w:LsdException Locked=3D"false" Priority=3D"68" Name=3D"Medium Grid 2 A=
ccent 3"/>
  <w:LsdException Locked=3D"false" Priority=3D"69" Name=3D"Medium Grid 3 A=
ccent 3"/>
  <w:LsdException Locked=3D"false" Priority=3D"70" Name=3D"Dark List Accen=
t 3"/>
  <w:LsdException Locked=3D"false" Priority=3D"71" Name=3D"Colorful Shadin=
g Accent 3"/>
  <w:LsdException Locked=3D"false" Priority=3D"72" Name=3D"Colorful List A=
ccent 3"/>
  <w:LsdException Locked=3D"false" Priority=3D"73" Name=3D"Colorful Grid A=
ccent 3"/>
  <w:LsdException Locked=3D"false" Priority=3D"60" Name=3D"Light Shading A=
ccent 4"/>
  <w:LsdException Locked=3D"false" Priority=3D"61" Name=3D"Light List Acce=
nt 4"/>
  <w:LsdException Locked=3D"false" Priority=3D"62" Name=3D"Light Grid Acce=
nt 4"/>
  <w:LsdException Locked=3D"false" Priority=3D"63" Name=3D"Medium Shading =
1 Accent 4"/>
  <w:LsdException Locked=3D"false" Priority=3D"64" Name=3D"Medium Shading =
2 Accent 4"/>
  <w:LsdException Locked=3D"false" Priority=3D"65" Name=3D"Medium List 1 A=
ccent 4"/>
  <w:LsdException Locked=3D"false" Priority=3D"66" Name=3D"Medium List 2 A=
ccent 4"/>
  <w:LsdException Locked=3D"false" Priority=3D"67" Name=3D"Medium Grid 1 A=
ccent 4"/>
  <w:LsdException Locked=3D"false" Priority=3D"68" Name=3D"Medium Grid 2 A=
ccent 4"/>
  <w:LsdException Locked=3D"false" Priority=3D"69" Name=3D"Medium Grid 3 A=
ccent 4"/>
  <w:LsdException Locked=3D"false" Priority=3D"70" Name=3D"Dark List Accen=
t 4"/>
  <w:LsdException Locked=3D"false" Priority=3D"71" Name=3D"Colorful Shadin=
g Accent 4"/>
  <w:LsdException Locked=3D"false" Priority=3D"72" Name=3D"Colorful List A=
ccent 4"/>
  <w:LsdException Locked=3D"false" Priority=3D"73" Name=3D"Colorful Grid A=
ccent 4"/>
  <w:LsdException Locked=3D"false" Priority=3D"60" Name=3D"Light Shading A=
ccent 5"/>
  <w:LsdException Locked=3D"false" Priority=3D"61" Name=3D"Light List Acce=
nt 5"/>
  <w:LsdException Locked=3D"false" Priority=3D"62" Name=3D"Light Grid Acce=
nt 5"/>
  <w:LsdException Locked=3D"false" Priority=3D"63" Name=3D"Medium Shading =
1 Accent 5"/>
  <w:LsdException Locked=3D"false" Priority=3D"64" Name=3D"Medium Shading =
2 Accent 5"/>
  <w:LsdException Locked=3D"false" Priority=3D"65" Name=3D"Medium List 1 A=
ccent 5"/>
  <w:LsdException Locked=3D"false" Priority=3D"66" Name=3D"Medium List 2 A=
ccent 5"/>
  <w:LsdException Locked=3D"false" Priority=3D"67" Name=3D"Medium Grid 1 A=
ccent 5"/>
  <w:LsdException Locked=3D"false" Priority=3D"68" Name=3D"Medium Grid 2 A=
ccent 5"/>
  <w:LsdException Locked=3D"false" Priority=3D"69" Name=3D"Medium Grid 3 A=
ccent 5"/>
  <w:LsdException Locked=3D"false" Priority=3D"70" Name=3D"Dark List Accen=
t 5"/>
  <w:LsdException Locked=3D"false" Priority=3D"71" Name=3D"Colorful Shadin=
g Accent 5"/>
  <w:LsdException Locked=3D"false" Priority=3D"72" Name=3D"Colorful List A=
ccent 5"/>
  <w:LsdException Locked=3D"false" Priority=3D"73" Name=3D"Colorful Grid A=
ccent 5"/>
  <w:LsdException Locked=3D"false" Priority=3D"60" Name=3D"Light Shading A=
ccent 6"/>
  <w:LsdException Locked=3D"false" Priority=3D"61" Name=3D"Light List Acce=
nt 6"/>
  <w:LsdException Locked=3D"false" Priority=3D"62" Name=3D"Light Grid Acce=
nt 6"/>
  <w:LsdException Locked=3D"false" Priority=3D"63" Name=3D"Medium Shading =
1 Accent 6"/>
  <w:LsdException Locked=3D"false" Priority=3D"64" Name=3D"Medium Shading =
2 Accent 6"/>
  <w:LsdException Locked=3D"false" Priority=3D"65" Name=3D"Medium List 1 A=
ccent 6"/>
  <w:LsdException Locked=3D"false" Priority=3D"66" Name=3D"Medium List 2 A=
ccent 6"/>
  <w:LsdException Locked=3D"false" Priority=3D"67" Name=3D"Medium Grid 1 A=
ccent 6"/>
  <w:LsdException Locked=3D"false" Priority=3D"68" Name=3D"Medium Grid 2 A=
ccent 6"/>
  <w:LsdException Locked=3D"false" Priority=3D"69" Name=3D"Medium Grid 3 A=
ccent 6"/>
  <w:LsdException Locked=3D"false" Priority=3D"70" Name=3D"Dark List Accen=
t 6"/>
  <w:LsdException Locked=3D"false" Priority=3D"71" Name=3D"Colorful Shadin=
g Accent 6"/>
  <w:LsdException Locked=3D"false" Priority=3D"72" Name=3D"Colorful List A=
ccent 6"/>
  <w:LsdException Locked=3D"false" Priority=3D"73" Name=3D"Colorful Grid A=
ccent 6"/>
  <w:LsdException Locked=3D"false" Priority=3D"19" QFormat=3D"true"
   Name=3D"Subtle Emphasis"/>
  <w:LsdException Locked=3D"false" Priority=3D"21" QFormat=3D"true"
   Name=3D"Intense Emphasis"/>
  <w:LsdException Locked=3D"false" Priority=3D"31" QFormat=3D"true"
   Name=3D"Subtle Reference"/>
  <w:LsdException Locked=3D"false" Priority=3D"32" QFormat=3D"true"
   Name=3D"Intense Reference"/>
  <w:LsdException Locked=3D"false" Priority=3D"33" QFormat=3D"true" Name=
=3D"Book Title"/>
  <w:LsdException Locked=3D"false" Priority=3D"37" SemiHidden=3D"true"
   UnhideWhenUsed=3D"true" Name=3D"Bibliography"/>
  <w:LsdException Locked=3D"false" Priority=3D"39" SemiHidden=3D"true"
   UnhideWhenUsed=3D"true" QFormat=3D"true" Name=3D"TOC Heading"/>
 </w:LatentStyles>
</xml><![endif]--><!--[if !mso]><object
 classid=3D"clsid:38481807-CA0E-42D2-BF39-B33AF135CC4D" id=3Dieooui></obje=
ct>
<style>
st1\:*{behavior:url(#ieooui) }
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;
	mso-font-charset:1;
	mso-generic-font-family:roman;
	mso-font-format:other;
	mso-font-pitch:variable;
	mso-font-signature:0 0 0 0 0 0;}
@font-face
	{font-family:Cambria;
	panose-1:2 4 5 3 5 4 6 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:roman;
	mso-font-pitch:variable;
	mso-font-signature:-1610611985 1073741899 0 0 159 0;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-520082689 -1073717157 41 0 66047 0;}
@font-face
	{font-family:Verdana;
	panose-1:2 11 6 4 3 5 4 4 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-1593833729 1073750107 16 0 415 0;}
@font-face
	{font-family:Times;
	panose-1:2 2 6 3 5 4 5 2 3 4;
	mso-font-charset:0;
	mso-generic-font-family:roman;
	mso-font-pitch:variable;
	mso-font-signature:-536859921 -1073711039 9 0 511 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-parent:"";
	margin:0cm;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	mso-bidi-font-size:12.0pt;
	font-family:"Times New Roman","serif";
	mso-fareast-font-family:"Times New Roman";
	mso-fareast-language:EN-US;}
h1
	{mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-parent:"";
	mso-style-link:"Heading 1 Char";
	mso-style-next:Normal;
	margin-top:24.0pt;
	margin-right:0cm;
	margin-bottom:12.0pt;
	margin-left:0cm;
	mso-pagination:widow-orphan;
	mso-outline-level:1;
	font-size:16.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times","serif";
	mso-fareast-font-family:"Times New Roman";
	mso-fareast-theme-font:minor-fareast;
	mso-bidi-font-family:"Times New Roman";
	mso-font-kerning:0pt;
	mso-ansi-language:EN-GB;
	mso-fareast-language:EN-US;
	mso-bidi-language:HE;
	mso-bidi-font-weight:normal;
	mso-no-proof:yes;}
h2
	{mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-parent:"Heading 1";
	mso-style-link:"Heading 2 Char";
	mso-style-next:Normal;
	margin-top:18.0pt;
	margin-right:0cm;
	margin-bottom:6.0pt;
	margin-left:0cm;
	mso-pagination:widow-orphan;
	mso-outline-level:2;
	font-size:14.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times","serif";
	mso-fareast-font-family:"Times New Roman";
	mso-fareast-theme-font:minor-fareast;
	mso-bidi-font-family:"Times New Roman";
	mso-ansi-language:EN-GB;
	mso-fareast-language:EN-US;
	mso-bidi-language:HE;
	mso-bidi-font-weight:normal;
	mso-no-proof:yes;}
h3
	{mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-parent:"Heading 2";
	mso-style-link:"Heading 3 Char";
	mso-style-next:Normal;
	margin-top:18.0pt;
	margin-right:0cm;
	margin-bottom:6.0pt;
	margin-left:0cm;
	mso-pagination:widow-orphan;
	mso-outline-level:3;
	font-size:14.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times","serif";
	mso-fareast-font-family:"Times New Roman";
	mso-fareast-theme-font:minor-fareast;
	mso-bidi-font-family:"Times New Roman";
	mso-ansi-language:EN-GB;
	mso-fareast-language:EN-US;
	mso-bidi-language:HE;
	mso-bidi-font-weight:normal;
	mso-no-proof:yes;}
p.MsoHeader, li.MsoHeader, div.MsoHeader
	{mso-style-unhide:no;
	mso-style-link:"Header Char";
	margin:0cm;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	tab-stops:center 207.65pt right 415.3pt;
	font-size:10.0pt;
	mso-bidi-font-size:12.0pt;
	font-family:"Times New Roman","serif";
	mso-fareast-font-family:"Times New Roman";
	mso-fareast-language:EN-US;}
p.MsoFooter, li.MsoFooter, div.MsoFooter
	{mso-style-unhide:no;
	mso-style-link:"Footer Char";
	margin:0cm;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	tab-stops:center 207.65pt right 415.3pt;
	font-size:10.0pt;
	mso-bidi-font-size:12.0pt;
	font-family:"Times New Roman","serif";
	mso-fareast-font-family:"Times New Roman";
	mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
	{mso-style-unhide:no;
	color:blue;
	text-decoration:underline;
	text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-unhide:no;
	color:purple;
	mso-themecolor:followedhyperlink;
	text-decoration:underline;
	text-underline:single;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
	{mso-style-unhide:no;
	mso-style-link:"Balloon Text Char";
	margin:0cm;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:8.0pt;
	font-family:"Tahoma","sans-serif";
	mso-fareast-font-family:"Times New Roman";
	mso-fareast-language:EN-US;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{mso-style-priority:34;
	mso-style-unhide:no;
	mso-style-qformat:yes;
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:36.0pt;
	margin-bottom:.0001pt;
	mso-add-space:auto;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	mso-bidi-font-size:12.0pt;
	font-family:"Times New Roman","serif";
	mso-fareast-font-family:"Times New Roman";
	mso-fareast-language:EN-US;}
p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListPara=
graphCxSpFirst
	{mso-style-priority:34;
	mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-type:export-only;
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:36.0pt;
	margin-bottom:.0001pt;
	mso-add-space:auto;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	mso-bidi-font-size:12.0pt;
	font-family:"Times New Roman","serif";
	mso-fareast-font-family:"Times New Roman";
	mso-fareast-language:EN-US;}
p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListPa=
ragraphCxSpMiddle
	{mso-style-priority:34;
	mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-type:export-only;
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:36.0pt;
	margin-bottom:.0001pt;
	mso-add-space:auto;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	mso-bidi-font-size:12.0pt;
	font-family:"Times New Roman","serif";
	mso-fareast-font-family:"Times New Roman";
	mso-fareast-language:EN-US;}
p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagr=
aphCxSpLast
	{mso-style-priority:34;
	mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-type:export-only;
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:36.0pt;
	margin-bottom:.0001pt;
	mso-add-space:auto;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	mso-bidi-font-size:12.0pt;
	font-family:"Times New Roman","serif";
	mso-fareast-font-family:"Times New Roman";
	mso-fareast-language:EN-US;}
span.Heading1Char
	{mso-style-name:"Heading 1 Char";
	mso-style-unhide:no;
	mso-style-locked:yes;
	mso-style-link:"Heading 1";
	mso-ansi-font-size:14.0pt;
	mso-bidi-font-size:14.0pt;
	font-family:"Cambria","serif";
	mso-ascii-font-family:Cambria;
	mso-ascii-theme-font:major-latin;
	mso-fareast-font-family:"Times New Roman";
	mso-fareast-theme-font:major-fareast;
	mso-hansi-font-family:Cambria;
	mso-hansi-theme-font:major-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:major-bidi;
	color:#365F91;
	mso-themecolor:accent1;
	mso-themeshade:191;
	mso-fareast-language:EN-US;
	font-weight:bold;}
span.Heading2Char
	{mso-style-name:"Heading 2 Char";
	mso-style-unhide:no;
	mso-style-locked:yes;
	mso-style-link:"Heading 2";
	mso-ansi-font-size:13.0pt;
	mso-bidi-font-size:13.0pt;
	font-family:"Cambria","serif";
	mso-ascii-font-family:Cambria;
	mso-ascii-theme-font:major-latin;
	mso-fareast-font-family:"Times New Roman";
	mso-fareast-theme-font:major-fareast;
	mso-hansi-font-family:Cambria;
	mso-hansi-theme-font:major-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:major-bidi;
	color:#4F81BD;
	mso-themecolor:accent1;
	mso-fareast-language:EN-US;
	font-weight:bold;}
span.Heading3Char
	{mso-style-name:"Heading 3 Char";
	mso-style-unhide:no;
	mso-style-locked:yes;
	mso-style-link:"Heading 3";
	mso-bidi-font-size:12.0pt;
	font-family:"Cambria","serif";
	mso-ascii-font-family:Cambria;
	mso-ascii-theme-font:major-latin;
	mso-fareast-font-family:"Times New Roman";
	mso-fareast-theme-font:major-fareast;
	mso-hansi-font-family:Cambria;
	mso-hansi-theme-font:major-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:major-bidi;
	color:#4F81BD;
	mso-themecolor:accent1;
	mso-fareast-language:EN-US;
	font-weight:bold;}
span.HeaderChar
	{mso-style-name:"Header Char";
	mso-style-unhide:no;
	mso-style-locked:yes;
	mso-style-link:Header;
	mso-bidi-font-size:12.0pt;
	mso-fareast-language:EN-US;}
span.FooterChar
	{mso-style-name:"Footer Char";
	mso-style-unhide:no;
	mso-style-locked:yes;
	mso-style-link:Footer;
	mso-bidi-font-size:12.0pt;
	mso-fareast-language:EN-US;}
span.BalloonTextChar
	{mso-style-name:"Balloon Text Char";
	mso-style-unhide:no;
	mso-style-locked:yes;
	mso-style-link:"Balloon Text";
	mso-ansi-font-size:8.0pt;
	mso-bidi-font-size:8.0pt;
	font-family:"Tahoma","sans-serif";
	mso-ascii-font-family:Tahoma;
	mso-hansi-font-family:Tahoma;
	mso-bidi-font-family:Tahoma;
	mso-fareast-language:EN-US;}
p.sdgncode, li.sdgncode, div.sdgncode
	{mso-style-name:sdgn_code;
	mso-style-unhide:no;
	margin:0cm;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	background:#FFFF99;
	border:none;
	mso-border-alt:solid windowtext .5pt;
	padding:0cm;
	mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;
	font-size:9.0pt;
	mso-bidi-font-size:12.0pt;
	font-family:"Courier New";
	mso-fareast-font-family:"Times New Roman";
	mso-ansi-language:NL;
	mso-fareast-language:EN-US;}
.MsoChpDefault
	{mso-style-type:export-only;
	mso-default-props:yes;
	font-size:10.0pt;
	mso-ansi-font-size:10.0pt;
	mso-bidi-font-size:10.0pt;}
 /* Page Definitions */
 @page
	{mso-footnote-separator:url("file:///C:/8C69C633/VOwithOffice2003_files/h=
eader.htm") fs;
	mso-footnote-continuation-separator:url("file:///C:/8C69C633/VOwithOffice=
2003_files/header.htm") fcs;
	mso-endnote-separator:url("file:///C:/8C69C633/VOwithOffice2003_files/hea=
der.htm") es;
	mso-endnote-continuation-separator:url("file:///C:/8C69C633/VOwithOffice2=
003_files/header.htm") ecs;}
@page Section1
	{size:21.0cm 842.0pt;
	margin:2.0cm 2.0cm 2.0cm 3.0cm;
	mso-header-margin:36.0pt;
	mso-footer-margin:36.0pt;
	mso-title-page:yes;
	mso-header:url("file:///C:/8C69C633/VOwithOffice2003_files/header.htm") h=
1;
	mso-footer:url("file:///C:/8C69C633/VOwithOffice2003_files/header.htm") f=
1;
	mso-first-header:url("file:///C:/8C69C633/VOwithOffice2003_files/header.h=
tm") fh1;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
@page Section2
	{size:21.0cm 842.0pt;
	margin:2.0cm 2.0cm 2.0cm 3.0cm;
	mso-header-margin:36.0pt;
	mso-footer-margin:36.0pt;
	mso-title-page:yes;
	mso-header:url("file:///C:/8C69C633/VOwithOffice2003_files/header.htm") h=
1;
	mso-footer:url("file:///C:/8C69C633/VOwithOffice2003_files/header.htm") f=
1;
	mso-first-header:url("file:///C:/8C69C633/VOwithOffice2003_files/header.h=
tm") fh2;
	mso-first-footer:url("file:///C:/8C69C633/VOwithOffice2003_files/header.h=
tm") ff2;
	mso-paper-source:0;}
div.Section2
	{page:Section2;}
@page Section3
	{size:21.0cm 842.0pt;
	margin:2.0cm 2.0cm 2.0cm 3.0cm;
	mso-header-margin:36.0pt;
	mso-footer-margin:36.0pt;
	mso-title-page:yes;
	mso-header:url("file:///C:/8C69C633/VOwithOffice2003_files/header.htm") h=
1;
	mso-footer:url("file:///C:/8C69C633/VOwithOffice2003_files/header.htm") f=
1;
	mso-first-header:url("file:///C:/8C69C633/VOwithOffice2003_files/header.h=
tm") fh3;
	mso-first-footer:url("file:///C:/8C69C633/VOwithOffice2003_files/header.h=
tm") ff2;
	mso-paper-source:0;}
div.Section3
	{page:Section3;}
 /* List Definitions */
 @list l0
	{mso-list-id:78719167;
	mso-list-template-ids:-524155170;}
@list l0:level1
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:36.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	mso-ansi-font-size:10.0pt;
	font-family:Symbol;}
@list l1
	{mso-list-id:1036390920;
	mso-list-type:hybrid;
	mso-list-template-ids:-780099162 67698689 67698691 67698693 67698689 6769=
8691 67698693 67698689 67698691 67698693;}
@list l1:level1
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:36.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	font-family:Symbol;}
@list l1:level2
	{mso-level-tab-stop:72.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;}
@list l1:level3
	{mso-level-tab-stop:108.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;}
@list l1:level4
	{mso-level-tab-stop:144.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;}
@list l1:level5
	{mso-level-tab-stop:180.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;}
@list l1:level6
	{mso-level-tab-stop:216.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;}
@list l1:level7
	{mso-level-tab-stop:252.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;}
@list l1:level8
	{mso-level-tab-stop:288.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;}
@list l1:level9
	{mso-level-tab-stop:324.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;}
@list l2
	{mso-list-id:1319118275;
	mso-list-template-ids:-671460396;}
@list l2:level1
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:36.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	mso-ansi-font-size:10.0pt;
	font-family:Symbol;}
@list l3
	{mso-list-id:1756516544;
	mso-list-template-ids:678089804;}
@list l3:level1
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:36.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	mso-ansi-font-size:10.0pt;
	font-family:Symbol;}
@list l4
	{mso-list-id:1974827213;
	mso-list-template-ids:-1698430710;
	mso-list-style-name:"Level 2";}
@list l4:level1
	{mso-level-tab-stop:72.0pt;
	mso-level-number-position:left;
	margin-left:71.85pt;
	text-indent:-53.85pt;}
@list l4:level2
	{mso-level-text:"%1\.%2\.";
	mso-level-tab-stop:108.0pt;
	mso-level-number-position:left;
	margin-left:75.6pt;
	text-indent:-21.6pt;}
@list l4:level3
	{mso-level-text:"%1\.%2\.%3\.";
	mso-level-tab-stop:144.0pt;
	mso-level-number-position:left;
	margin-left:97.2pt;
	text-indent:-25.2pt;}
@list l4:level4
	{mso-level-text:"%1\.%2\.%3\.%4\.";
	mso-level-tab-stop:180.0pt;
	mso-level-number-position:left;
	margin-left:122.4pt;
	text-indent:-32.4pt;}
@list l4:level5
	{mso-level-text:"%1\.%2\.%3\.%4\.%5\.";
	mso-level-tab-stop:216.0pt;
	mso-level-number-position:left;
	margin-left:147.6pt;
	text-indent:-39.6pt;}
@list l4:level6
	{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.";
	mso-level-tab-stop:252.0pt;
	mso-level-number-position:left;
	margin-left:172.8pt;
	text-indent:-46.8pt;}
@list l4:level7
	{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.";
	mso-level-tab-stop:288.0pt;
	mso-level-number-position:left;
	margin-left:198.0pt;
	text-indent:-54.0pt;}
@list l4:level8
	{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.";
	mso-level-tab-stop:324.0pt;
	mso-level-number-position:left;
	margin-left:223.2pt;
	text-indent:-61.2pt;}
@list l4:level9
	{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.%9\.";
	mso-level-tab-stop:360.0pt;
	mso-level-number-position:left;
	margin-left:252.0pt;
	text-indent:-72.0pt;}
@list l5
	{mso-list-id:1994023896;
	mso-list-template-ids:400736500;
	mso-list-style-name:"Level 1";}
@list l5:level1
	{mso-level-tab-stop:54.0pt;
	mso-level-number-position:left;
	margin-left:53.85pt;
	text-indent:-53.85pt;}
@list l5:level2
	{mso-level-text:"%1\.%2\.";
	mso-level-tab-stop:90.0pt;
	mso-level-number-position:left;
	margin-left:57.6pt;
	text-indent:-21.6pt;}
@list l5:level3
	{mso-level-text:"%1\.%2\.%3\.";
	mso-level-tab-stop:126.0pt;
	mso-level-number-position:left;
	margin-left:79.2pt;
	text-indent:-25.2pt;}
@list l5:level4
	{mso-level-text:"%1\.%2\.%3\.%4\.";
	mso-level-tab-stop:162.0pt;
	mso-level-number-position:left;
	margin-left:104.4pt;
	text-indent:-32.4pt;}
@list l5:level5
	{mso-level-text:"%1\.%2\.%3\.%4\.%5\.";
	mso-level-tab-stop:198.0pt;
	mso-level-number-position:left;
	margin-left:129.6pt;
	text-indent:-39.6pt;}
@list l5:level6
	{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.";
	mso-level-tab-stop:234.0pt;
	mso-level-number-position:left;
	margin-left:154.8pt;
	text-indent:-46.8pt;}
@list l5:level7
	{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.";
	mso-level-tab-stop:270.0pt;
	mso-level-number-position:left;
	margin-left:180.0pt;
	text-indent:-54.0pt;}
@list l5:level8
	{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.";
	mso-level-tab-stop:306.0pt;
	mso-level-number-position:left;
	margin-left:205.2pt;
	text-indent:-61.2pt;}
@list l5:level9
	{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.%9\.";
	mso-level-tab-stop:342.0pt;
	mso-level-number-position:left;
	margin-left:234.0pt;
	text-indent:-72.0pt;}
ol
	{margin-bottom:0cm;}
ul
	{margin-bottom:0cm;}
-->
</style>
<!--[if gte mso 10]>
<style>
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-qformat:yes;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman","serif";}
</style>
<![endif]--><!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext=3D"edit" spidmax=3D"9218"/>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext=3D"edit">
  <o:idmap v:ext=3D"edit" data=3D"2"/>
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=3DEN-AU link=3Dblue vlink=3Dpurple style=3D'tab-interval:36.0pt=
'>

<div class=3DSection1>

<h1 align=3Dright style=3D'text-align:right'><span lang=3DEN-GB style=3D'f=
ont-size:
18.0pt;mso-bidi-font-size:10.0pt;mso-fareast-font-family:"Times New Roman"=
'>VO
with MS Office 2003<o:p></o:p></span></h1>

<p class=3DMsoNormal align=3Dright style=3D'margin-right:1.0pt;text-align:=
right'><o:p>&nbsp;</o:p></p>

<p class=3DMsoNormal align=3Dright style=3D'margin-right:1.0pt;text-align:=
right'><st1:PersonName
w:st=3D"on"><b><span style=3D'font-size:16.0pt;mso-bidi-font-size:12.0pt'>=
Geoff
 Schaller</span></b></st1:PersonName><b><span style=3D'font-size:16.0pt;
mso-bidi-font-size:12.0pt'><o:p></o:p></span></b></p>

<p class=3DMsoNormal align=3Dright style=3D'margin-right:1.0pt;text-align:=
right'><st1:PersonName
w:st=3D"on"><b><span style=3D'font-size:16.0pt;mso-bidi-font-size:12.0pt'>=
Ed
 Richard</span></b></st1:PersonName><b><span style=3D'font-size:16.0pt;
mso-bidi-font-size:12.0pt'><o:p></o:p></span></b></p>

<h1><span lang=3DEN-GB style=3D'mso-fareast-font-family:"Times New Roman"'=
>Introduction<o:p></o:p></span></h1>

<p class=3DMsoNormal style=3D'margin-right:1.0pt'>This will be an unusual
discussion in that whilst there will be some VO, we will be taking you to =
some
important non-VO tools. Whilst we will certainly demonstrate some importan=
t integration
aspects, our aim is to demonstrate how we can employ MS Office products fr=
om
our VO desktop application. This is about integration: about making our
applications smarter and by making MS Office products smarter, more tailor=
ed to
the job at hand in an average business environment.</p>

<p class=3DMsoNormal style=3D'margin-right:1.0pt'><o:p>&nbsp;</o:p></p>

<p class=3DMsoNormal style=3D'margin-right:1.0pt'>So let&#8217;s start wit=
h a
question: why doesn&#8217;t anyone write a spreadsheet application in VO
anymore? The answer is simple. For less than $100 you can buy something wi=
th
about 10 years + development in it and backed by a mega machine called
Microsoft. And let&#8217;s face it, it does the job very, very well and al=
ready
integrates with a host of other related office software. Except maybe for =
email
(where control issues are involved), most office deployment suites such as=
 word
processors, storage, backup and imaging software already exists far cheaper
than we could ever duplicate it for.</p>

<p class=3DMsoNormal style=3D'margin-right:1.0pt'><o:p>&nbsp;</o:p></p>

<p class=3DMsoNormal style=3D'margin-right:1.0pt'>But as desktop and web d=
evelopers
we have something that these office tools usually don&#8217;t have: the of=
fice
database and data warehouse. What is often annoying to a client is the
laborious need to have several applications running simultaneously just so=
 that
data from system can be referenced by another or deployed into a separate =
tool.
So the question becomes not what we can create for the user but how we can
integrate those tools to provide better productivity to the end user. Luck=
ily
this is an area where Microsoft is investing a lot of money and resources.=
 And
for obvious reasons; it will ensure the MS-Office suite is there to stay on
user&#8217;s desktops. </p>

<p class=3DMsoNormal style=3D'margin-right:1.0pt'><o:p>&nbsp;</o:p></p>

<p class=3DMsoNormal style=3D'margin-right:1.0pt'>This is what this paper =
is about:
integrating VO desktop applications with Microsoft&#8217;s MS Office 2003 =
and
2007 range of products. When your client wants to raise a standard letter =
about
a client, he wants and should be able to have organic access to client data
from within his Word document. Equally, he would want to seamlessly launch=
 his
document editing session from the application and return to when complete.=
 It
will be these kinds of features we will demonstrate to you in this paper. =
The
emphasis for this article is on presenting concepts and an overview, you w=
ill
find more detailed explanations of various techniques in separate articles=
 on
the VOConversion.com.au Web Site.</p>

<h1><span lang=3DEN-GB style=3D'mso-fareast-font-family:"Times New Roman"'=
>Microsoft
Design Goals<o:p></o:p></span></h1>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'>From the very earliest days Microsoft has had an attitude that program=
mers
need access to the object model of its software. The idea was that if they
could convince developers to use and deploy Microsoft products from within
their own applications, they would not compete on a direct level but would=
 act to
improve Microsoft sales. They were right. This is exactly what has happene=
d.
Newer tools like VSTO seriously add to a developers toolbar for integratio=
n.<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'>Now it goes without saying that this hasn&#8217;t always been very eas=
y!
The early days of CDO (Collaborative Data Objects) was quite complex and
documentation for many of Microsoft&#8217;s product object models has been
scant and unreadable. However, each successive generation of MS Office has=
 seen
substantial improvement. With MS Office 2003 and other related initiatives,
documentation has never been better and the new XML based tools start to o=
ffer
real flexibility. Finally, with release 2005 Visual Studio we can code doc=
ument
scripts in our favourite development language and this is a significant st=
ep
forward. VSTO, VSTO-SE and Office 2007 have taken the meaning of integrati=
ng
with the Microsoft Office System to a new level. In this article we will s=
tick
to MS-Office 2003, as this is currently often found on users desktops but =
all
of the proposed solutions will work equally well with Office 2007 and futu=
re
articles will explore the new development opportunities further.<o:p></o:p=
></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'>The goals MS has for the near future go even further, the next version=
 of
Office will be positioned as the ultimate collaboration environment and ad=
d a
lot of server based services. SharePoint and SQL server will become a very
integrated part of that picture. We already see that users spend a lot of =
time
in Outlook, and often prefer working from Outlook as compared to our
applications making use of Outlook features. Now, we can fight this, or we=
 can
try to integrate and make good use of it, what do you prefer?<o:p></o:p></=
span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'>So we take at face value Microsoft&#8217;s desire to make everything we
need in these tools accessible to us as developers and provide us with fra=
meworks
to do the same the other way around. We shall now investigate who we can p=
ut
this into practice.<o:p></o:p></span></p>

<h1><span lang=3DEN-GB style=3D'mso-fareast-font-family:"Times New Roman"'=
>The
Tools of Integration<o:p></o:p></span></h1>

<h2><span lang=3DEN-GB style=3D'mso-fareast-font-family:"Times New Roman"'=
>The
Browser<o:p></o:p></span></h2>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'>The browser is the most underrated feature of Microsoft&#8217;s vision=
 for
software universality. The browser is a concept invented right back before
Windows 3.1 and was intended to be the universal container for hosted
application environments. Did you wonder at the origin of the ShellExecute=
()
concept and why it had such specific functionality? For example, what is t=
he difference
between an Internet Explorer and Windows Explorer? Nothing&#8230; except f=
or
the toolbars and a little bit of layout. Functionally they are the same th=
ing.
Let me prove it, follow along. IIS is running on this PC so that I can
demonstrate serving a web page. I&#8217;ll open the web browser (Internet
Explorer) and type in C:\Program Files &#8211; yes, I get my HDD listing. =
Now
I&#8217;ll open a normal windows explorer (see the local machine) but
I&#8217;ll type a web address. Bingo! Now I&#8217;ll type in a document na=
me
and up pops the editor.<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'>So how do we use this from within an application and where is it usefu=
l? We
will come to the first question later with a short demo but first we need =
to
consider the &#8220;why&#8221;. The main reason is to contain functionalit=
y or
maintain control over the intended application. For example, consider a
circumstance where we want our user to choose or modify document templates=
 for
standard letters. Of course we can load MS Word and run the application bu=
t by
using a browser, we contain restrain the application to within ours. Later=
 we
will consider the full blown use of MS Word but for now consider a limited
need. The first step is to create a container.<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'>On our form (this will work fine for every kind of Window Class VO has=
) we
drop an OLE control:<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span style=3D'mso-fareast-language:EN-AU;mso-no-proo=
f:yes'><!--[if gte vml 1]><v:shapetype
 id=3D"_x0000_t75" coordsize=3D"21600,21600" o:spt=3D"75" o:preferrelative=
=3D"t"
 path=3D"m@4@5l@4@11@9@11@9@5xe" filled=3D"f" stroked=3D"f">
 <v:stroke joinstyle=3D"miter"/>
 <v:formulas>
  <v:f eqn=3D"if lineDrawn pixelLineWidth 0"/>
  <v:f eqn=3D"sum @0 1 0"/>
  <v:f eqn=3D"sum 0 0 @1"/>
  <v:f eqn=3D"prod @2 1 2"/>
  <v:f eqn=3D"prod @3 21600 pixelWidth"/>
  <v:f eqn=3D"prod @3 21600 pixelHeight"/>
  <v:f eqn=3D"sum @0 0 1"/>
  <v:f eqn=3D"prod @6 1 2"/>
  <v:f eqn=3D"prod @7 21600 pixelWidth"/>
  <v:f eqn=3D"sum @8 21600 0"/>
  <v:f eqn=3D"prod @7 21600 pixelHeight"/>
  <v:f eqn=3D"sum @10 21600 0"/>
 </v:formulas>
 <v:path o:extrusionok=3D"f" gradientshapeok=3D"t" o:connecttype=3D"rect"/>
 <o:lock v:ext=3D"edit" aspectratio=3D"t"/>
</v:shapetype><v:shape id=3D"Picture_x0020_1" o:spid=3D"_x0000_i1034" type=
=3D"#_x0000_t75"
 alt=3D"ole_webbrowser" style=3D'width:332.25pt;height:216.75pt;visibility=
:visible;
 mso-wrap-style:square'>
 <v:imagedata src=3D"VOwithOffice2003_files/image001.jpg" o:title=3D"ole_w=
ebbrowser"/>
</v:shape><![endif]--><![if !vml]><img width=3D443 height=3D289
src=3D"file:///C:/8C69C633/VOwithOffice2003_files/image001.jpg" alt=3D"ole=
_webbrowser" v:shapes=3D"Picture_x0020_1"><![endif]></span><span
lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;mso-bidi-language:HE'><o:p><=
/o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'>And in the PostInit() we initialise the control:<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style=3D'color:red'>SELF</span>:oDCWebBrowser:CreateEmbedding(&quot;Shell.=
Explorer&quot;)<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style=3D'color:red'>SELF</span>:oDCWebBrowser:InitAutoObject()<o:p></o:p><=
/span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style=3D'color:red'>SELF</span>:oDCWebBrowser:Toolbar :=3D 1<o:p></o:p></s=
pan></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'>We will divert briefly and investigate the module OLEWebBrowser. Here =
we
can see the methods needed to execute &#8220;something&#8221; in the brows=
er.
In the demo app we can use a web address but in your commercial applicatio=
n, we
use a document. Notice we can have a bBrowser on the left of the window an=
d it
can hold a DBF with file names to document templates. Using the Notify() m=
ethod
of the window, we display the current selection in the web browser like th=
is:<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style=3D'color:red'>SELF</span>:oDCWebBrowser:Navigate2(<span style=3D'col=
or:red'>SELF</span>:server:<span
style=3D'color:red'>FIELDGET</span>(#Letter))<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'>And it&#8217;s as simple as that. We can play around with the Navigate=
2()
method so in the sample app we load a URL, an Excel spreadsheet and a word=
 doc.
Later we will explore loading a word document in some greater detail but f=
or
now we have demonstrated how simple it is control MS Word or MS Excel right
there inside your application window.<o:p></o:p></span></p>

<h2><span lang=3DEN-GB style=3D'mso-fareast-font-family:"Times New Roman"'=
>COMSDK
and VO<o:p></o:p></span></h2>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'>VO doesn&#8217;t provide much when it comes to writing your own COM
components. The Automation server class is very basic and limited but ther=
e are
alternatives, VOCOM a function library for COM and the COMSDK a Class libr=
ary
written completely in VO. The version of the COMSDK that was released rece=
ntly
also has all of the code and samples for writing Com-server applications.<=
o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal>Some time ago (actually about 5 years) Frans de Wit b=
ecame
interested in COM and took it upon himself to implement all that is in the
&#8216;Inside COM&#8217; book written by Dale Rogerson. This was no easy t=
ask;
although the basics are simple, the implementation of this took a lot of t=
ime
and hard study. The book says that the best way to learn COM is by using C=
OM, and
so Frans did. The result of this effort is the COMSDK, now being a part of=
 the
VO tool set. While Frans&#8217; goal was to learn COM, our goal was to have
everything COM offers available from VO. We did run into some serious
limitations with VO&#8217;s implementation (which by the way was always
intended to be Automation, not COM).</p>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

<p class=3DMsoNormal>Although the book said &#8220;The best way to learn C=
OM: use
it!&#8221;, it was maybe taken a little too literally by Frans. I do not t=
hink
that the book meant that one should write it&#8217;s own class library but=
 it
did give Frans a lot of insight in COM and it&#8217;s support API&#8217;s.=
<span
style=3D'mso-bidi-language:HE'> We benefit from this because the COMSDK gi=
ves VO
users a much richer COM environment. </span><span lang=3DEN-GB style=3D'ms=
o-ansi-language:
EN-GB;mso-bidi-language:HE'>The </span>COMSDK<span lang=3DEN-GB style=3D'm=
so-ansi-language:
EN-GB;mso-bidi-language:HE'> can be downloaded at <a
href=3D"http://www.comsdk.com/">www.comsdk.com</a>. Frans will do a separa=
te
session and paper on how to write com-servers using the </span>COMSDK<span
lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;mso-bidi-language:HE'>, but =
it also
comes with a nice generic sample the dbReader, a COM server that can be us=
ed to
access any VO RDD-data source. We will have a look at how to use this comp=
onent
in the Outlook paragraph later on.<o:p></o:p></span></p>

<h2><span lang=3DEN-GB style=3D'mso-fareast-font-family:"Times New Roman"'=
>Visual
Studio and XML Support<o:p></o:p></span></h2>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'>As we move into the advanced features of MS Office products you will f=
ind
that a lot of it is XML based. In MS Office 2003, all documents can be ren=
dered
as XML and this has some surprising advantages. In combination with XSLT f=
iles,
the content of the document can be rendered differently, depending on the =
use.
For example, we might create an invoice in MS Word. The document internall=
y can
be held as &#8220;data&#8221; in an XML file but rendered in MS Word using=
 an
XSLT for Word. So, take the data and apply an Excel XSLT and the same data=
 can
be rendered in a spreadsheet. Of course this kind of concept suits data-ce=
ntric
output better but there is no reason why anything can&#8217;t be rendered =
any
way you wish. Think of the output format for a letter: a Word document, an
email, a web page, a spreadsheet and so on. Off course in Office 2007 it is
even more extreme, the document are in fact XML-files and there is a compl=
ete,
well documented, open API to manipulate these documents as well as some we=
ll
defined Classes in the .Net Framework to do this.<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'>However, none of that helps our cause here. What is important is that =
the
XML nature of what is going on behind the scenes has one important benefit=
 for
us. Linking in data! If we want to add intelligence to our document, how d=
o we
get it in there? The answer is schemas (XSD documents). Now although we can
write schemas manually, it is a lot easier to have some other tool do it f=
or us
and this is where Visual Studio comes in. It has a powerful schema creator=
 but
it works best from a SQL database. Let&#8217;s take a look at our example:=
<o:p></o:p></span></p>

<h2><span lang=3DEN-GB style=3D'mso-fareast-font-family:"Times New Roman"'=
>Visual
Objects and XML Support<o:p></o:p></span></h2>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'>Since VO 2.7, the DBFView utility has come with XML support. Although =
it is
not as powerful as Visual Studio, there will be many circumstances where i=
t is
enough. It checks and uses the MSXML parser, so if the menu options
aren&#8217;t enabled for you VO wasn&#8217;t able to create a valid
MSXML-parser. VO 2.7 checks for version 4 which should be fine on XP-machi=
nes
or with newer versions of IE installed. Using DBFView 27 you are able to s=
ave
the content of dbf-files as XML files and/or create the XSD-schema to go w=
ith
the dbf. The source code can be found in CAVO27\VOLIB\dbfview and MSXML4.A=
EF is
a VO generated automation class for the MSXML parser. Included in the sour=
ces
for this article is a version that will work out of the box on Vista with =
VO
2.8, the only difference is the actual version of MSXML it is using.<o:p><=
/o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span style=3D'mso-fareast-language:EN-AU;mso-no-proo=
f:yes'><!--[if gte vml 1]><v:shape
 id=3D"Picture_x0020_2" o:spid=3D"_x0000_i1033" type=3D"#_x0000_t75" alt=
=3D"Ed_XML2"
 style=3D'width:339.75pt;height:255.75pt;visibility:visible;mso-wrap-style=
:square'>
 <v:imagedata src=3D"VOwithOffice2003_files/image002.jpg" o:title=3D"Ed_XM=
L2"/>
</v:shape><![endif]--><![if !vml]><img border=3D0 width=3D453 height=3D341
src=3D"file:///C:/8C69C633/VOwithOffice2003_files/image002.jpg" alt=3D"Ed_=
XML2" v:shapes=3D"Picture_x0020_2"><![endif]></span><span
lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;mso-bidi-language:HE'><o:p><=
/o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'>This feature and option is new to VO 2.7 and offers the following outp=
ut:<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span style=3D'mso-fareast-language:EN-AU;mso-no-proo=
f:yes'><!--[if gte vml 1]><v:shape
 id=3D"Picture_x0020_3" o:spid=3D"_x0000_i1032" type=3D"#_x0000_t75" alt=
=3D"ED_XML"
 style=3D'width:327pt;height:260.25pt;visibility:visible;mso-wrap-style:sq=
uare'>
 <v:imagedata src=3D"VOwithOffice2003_files/image003.jpg" o:title=3D"ED_XM=
L"/>
</v:shape><![endif]--><![if !vml]><img border=3D0 width=3D436 height=3D347
src=3D"file:///C:/8C69C633/VOwithOffice2003_files/image003.jpg" alt=3D"ED_=
XML" v:shapes=3D"Picture_x0020_3"><![endif]></span><span
lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;mso-bidi-language:HE'><o:p><=
/o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<h2><span lang=3DEN-GB style=3D'mso-fareast-font-family:"Times New Roman"'=
>VBScript
and VBScript Editor<o:p></o:p></span></h2>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'>Learning a little bit of VB script might sound like sacrilege but it i=
s important
if you want to optimise your use of MS Word documents or Excel spreadsheet=
s.
The approach we took, ultimately a simple one, was to create simple compon=
ents
in VO and call them from our document.<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'>Attached in the sample folder is an application called TMBI.aef. This =
has
all the code to create two small lookup windows which we populate from our
DBFs. We will take a short tour through the application now. The important
thing to note is that this is pure VO code and relies on the classes and
objects being available. The component created merely links all the necess=
ary
libraries. The Word document executes the component through a small amount=
 of
enabling script and there is where the code comes in. For example, here is=
 one
snippet:<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span style=3D'mso-fareast-language:EN-AU;mso-no-proo=
f:yes'><!--[if gte vml 1]><v:shape
 id=3D"Picture_x0020_4" o:spid=3D"_x0000_i1031" type=3D"#_x0000_t75" alt=
=3D"vb_script"
 style=3D'width:584.25pt;height:340.5pt;visibility:visible;mso-wrap-style:=
square'>
 <v:imagedata src=3D"VOwithOffice2003_files/image004.jpg" o:title=3D"vb_sc=
ript"/>
</v:shape><![endif]--><![if !vml]><img border=3D0 width=3D779 height=3D454
src=3D"file:///C:/8C69C633/VOwithOffice2003_files/image005.jpg" alt=3D"vb_=
script" v:shapes=3D"Picture_x0020_4"><![endif]></span><span
lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;mso-bidi-language:HE'><o:p><=
/o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'>You can see that the VB Script opens and creates the component and the=
n on
certain events, executes method calls on our component, all of the actual =
UI
and Business logic is written in VO, or can be existing code. This is a ve=
ry
simple and very effective way to interface VO and MS Office.<o:p></o:p></s=
pan></p>

<h1><span lang=3DEN-GB style=3D'mso-fareast-font-family:"Times New Roman"'=
>MS Excel<o:p></o:p></span></h1>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'>MS Excel is a much underrated way to enhance your application. At the
simplest level it allows you to extend data grids into Excel so that the c=
lient
may manipulate data offline. We often do this where we don&#8217;t want to
offer a report designer or something more complex in the way of reports. I=
t is
also a cheap way to export data because once in MS Excel, it is a simple s=
tep
to re-save in a new format, email or print the data. Of course the user no=
w has
the ability to resort and total to their heart&#8217;s content.<o:p></o:p>=
</span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'>There are a few ways to use MS Excel &#8211; an easy way and more comp=
lex
ways. All have their merits but we will start with the easy way: generate =
a CSV
file and &#8220;open&#8221; it. The simplicity is staggering. At its simpl=
est,
assume we have a data grid comprising a 10 column by 20 row array. Some va=
lues
are dates, some strings and some are numbers. The simplest call is to make=
 one
huge string of the array:<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; </span>cCSV
:=3D &#8220;&#8221;<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; </span><span
style=3D'color:red'>FOR</span> nN :=3D 1 <span style=3D'color:red'>UPTO</s=
pan> nRows<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><span style=3D'mso-tab-count:2'>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp; </span>cLineString
:=3D AsString(aData[nN,1])<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><span style=3D'mso-tab-count:2'>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style=3D'color:red'>FOR</span> nM :=3D 2 <span style=3D'color:red'>UPTO</s=
pan>
nColumns<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><span style=3D'mso-tab-count:3'>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>cLineString
+=3D &quot;,&quot;+AsString(aData[nN,nM])<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><span style=3D'mso-tab-count:2'>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style=3D'color:red'>NEXT<o:p></o:p></span></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><span style=3D'mso-tab-count:2'>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp; </span>cCSV
+=3D cLineString<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; </span><span
style=3D'color:red'>NEXT<o:p></o:p></span></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; </span>MemoWrit(&#8220;MyFile.cvs&#8221;,
cCSV)<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'>And that is it. There are a couple of things to remember. Any strings =
that
potentially contain commas should be manipulated using StrTran() to remove
them. Next, when you inspect your result in Excel you may see that Excel is
unable to format the columns based on the details contained. You can often=
 &#8220;cheat&#8221;
Excel by providing enforced spaces within the fields, 0&#8217;s in front of
numbers and choosing your date formats carefully. However, everything must=
 be a
string. So how does Excel pick this up? Like this:<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'>ShellExecute(NULL_PTR,
PSZ(&quot;OPEN&quot;),String2Psz((&#8220;MyFile.cvs&#8221;),NULL_PSZ,NULL_=
PSZ,SW_SHOWNORMAL)<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'>Very easy and very effective. Of course the data can come from a DBF, =
an
array or a reformatted text file. The above demo builds a string in memory=
 but
for really large executions a logfile class could be used to manipulate the
data array. Appendix A shows a more detailed example where we implant colu=
mn
headings and do some file name preparation. Note that if the filename cont=
ains
illegal characters nothing will happen and you won&#8217;t receive any not=
ification
to the effect.<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'>This is one quick and effective way but it obviously suffers some
inconveniences. Formatting is the most obvious: Excel has no way to identi=
fy
content, width or formatting so it simply guesses. If a more sophisticated
output is required then we need to go the next step and run an automation
server. Fortunately this is also not very difficult. Consider the following
code:<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; </span>oExcelApp
:=3D _Application{&quot;Excel.Application&quot;}<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; </span>oExcelApp:Caption
:=3D &quot;A VO/Excel<span style=3D'mso-spacerun:yes'>&nbsp;
</span>Application&quot;<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; </span>oExcelApp:SheetsInNewWorkbook
:=3D 2<span style=3D'mso-spacerun:yes'>&nbsp; </span>//number of Worksheet=
s<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; </span>oWorkbooks
:=3D oExcelApp:Workbooks<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; </span>oWorkbooks:Add()<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; </span>oWorksheet
:=3D oExcelApp:ActiveSheet<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; </span>oWorksheet:Name
:=3D &quot;VO Example&quot;<span style=3D'mso-spacerun:yes'>&nbsp;&nbsp; <=
/span><span
style=3D'mso-tab-count:1'>&nbsp;&nbsp;&nbsp; </span>//Name the sheet (Tab)=
<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; </span><st1:place
w:st=3D"on"><st1:City w:st=3D"on">oRange</st1:City></st1:place> :=3D
oWorksheet:[Range,&quot;A1&quot;,&quot;A1&quot;]<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; </span><st1:place
w:st=3D"on"><st1:City w:st=3D"on">oRange</st1:City></st1:place>:ColumnWidt=
h :=3D 25<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; </span><st1:place
w:st=3D"on"><st1:City w:st=3D"on">oRange</st1:City></st1:place>:FormulaR1C=
1 :=3D
&quot;Totals&quot;<span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>//
insert text into cell<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; </span><st1:place
w:st=3D"on"><st1:City w:st=3D"on">oRange</st1:City></st1:place>:Horizontal=
Alignment
:=3D 3<span style=3D'mso-spacerun:yes'>&nbsp; </span><span style=3D'mso-ta=
b-count:
1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>//1=3DDef=
ault,
2=3DLeft, 3=3DCentered, 4=3DRight<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; </span>oFont
:=3D oRange:Font<span style=3D'mso-tab-count:3'>&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>//
modify font<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; </span>oFont:Bold
:=3D <span style=3D'color:red'>TRUE</span><o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; </span>oFont:Size
:=3D 12<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; </span><span
style=3D'color:red'>FOR</span> nRow :=3D 3 <span style=3D'color:red'>UPTO<=
/span> 12<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><span style=3D'mso-tab-count:2'>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp; </span><st1:place
w:st=3D"on"><st1:City w:st=3D"on">oRange</st1:City></st1:place> :=3D<o:p><=
/o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><span style=3D'mso-tab-count:2'>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp; </span>oWorksheet:[Range,&quot;A&quot;+AllTrim(St=
r(nRow)),&quot;A&quot;+AllTrim(Str(nRow))]<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><span style=3D'mso-tab-count:2'>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp; </span><st1:place
w:st=3D"on"><st1:City w:st=3D"on">oRange</st1:City></st1:place>:NumberForm=
at :=3D
&quot;$* #,##0.00&quot;<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><span style=3D'mso-tab-count:2'>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp; </span><st1:place
w:st=3D"on"><st1:City w:st=3D"on">oRange</st1:City></st1:place>:Value :=3D=
 nRow^10<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; </span><span
style=3D'color:red'>NEXT<o:p></o:p></span></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; </span><st1:place
w:st=3D"on"><st1:City w:st=3D"on">oRange</st1:City></st1:place> :=3D
oWorksheet:[Range,&quot;A14&quot;,&quot;A14&quot;]<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; </span><st1:place
w:st=3D"on"><st1:City w:st=3D"on">oRange</st1:City></st1:place>:Formula :=
=3D &quot;=3D<span
style=3D'color:red'>SUM</span>(A2:A12)&quot;<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; </span><st1:place
w:st=3D"on"><st1:City w:st=3D"on">oRange</st1:City></st1:place>:NumberForm=
at :=3D
&quot;$#,##0.000&quot;<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; </span><st1:place
w:st=3D"on"><st1:City w:st=3D"on">oRange</st1:City></st1:place>:<span
style=3D'color:red'>SELECT</span>()<span style=3D'mso-spacerun:yes'>&nbsp;=
 </span>//leave
the user in this cell<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; </span>oExcelApp:Visible
:=3D <span style=3D'color:red'>TRUE</span><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp; </span>//make Excel Visible<=
o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'>Now we are driving Excel via an automation server and working directly=
 with
the generated classes in VO. We can do this without the generated classes =
and
save our selves a lot of prototypes but having the classes reduces the
potential for errors. In this brief example you can see how easy it is to
reference cells and sheets, establish formatting and even enter formulas. =
You
can run this sample to see it working in practice. To get further ideas you
only need to refer to the generated classes to see the methods and propert=
ies
available. Beyond that, experimentation is the order of the day.<o:p></o:p=
></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span style=3D'mso-fareast-language:EN-AU;mso-no-proo=
f:yes'><!--[if gte vml 1]><v:shape
 id=3D"Picture_x0020_5" o:spid=3D"_x0000_i1030" type=3D"#_x0000_t75" alt=
=3D"Excel_Demo"
 style=3D'width:375pt;height:228.75pt;visibility:visible;mso-wrap-style:sq=
uare'>
 <v:imagedata src=3D"VOwithOffice2003_files/image006.jpg" o:title=3D"Excel=
_Demo"/>
</v:shape><![endif]--><![if !vml]><img border=3D0 width=3D500 height=3D305
src=3D"file:///C:/8C69C633/VOwithOffice2003_files/image006.jpg" alt=3D"Exc=
el_Demo" v:shapes=3D"Picture_x0020_5"><![endif]></span><span
lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;mso-bidi-language:HE'><o:p><=
/o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'>We will look at other ways of manipulating data in Excel in the Articl=
es
planned for Office 2007, these are certainly solutions for cases where mem=
ory
is at a premium (in which case the above automation isn&#8217;t really
suitable) or when dealing with large amounts of data. In summary, you can =
see
how easy it is to interface with MS Excel and control it. Whether you open
Excel within your app or throw to a full automation copy is up to you but =
you
can leave your user with a properly formatted spreadsheet for their furthe=
r manipulation.<o:p></o:p></span></p>

<h1><span lang=3DEN-GB style=3D'mso-fareast-font-family:"Times New Roman"'=
>MS Word<o:p></o:p></span></h1>

<h2><span lang=3DEN-GB style=3D'mso-fareast-font-family:"Times New Roman"'=
>Using
OLE<o:p></o:p></span></h2>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'>We can run MS Word exactly as we run MS Excel &#8211; in place activat=
ion
or as an object model. It is not necessary to cover the process in detail.
We&#8217;ve already seen most of this code but to launch an MS Word docume=
nt in
our web browser, it is as simple as this:<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style=3D'color:red'>SELF</span>:oDCWebBrowser:CreateEmbedding(&quot;Shell.=
Explorer&quot;)<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style=3D'color:red'>SELF</span>:oDCWebBrowser:InitAutoObject()<o:p></o:p><=
/span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style=3D'color:red'>SELF</span>:oDCWebBrowser:Toolbar :=3D 1<o:p></o:p></s=
pan></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style=3D'color:red'>SELF</span>:oDCWebBrowser:Navigate2(<span style=3D'col=
or:red'>SELF</span>:server:<span
style=3D'color:red'>FIELDGET</span>(#Letter))<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'>The key is the Navigate2 method. An automation version is as simple as
this:<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>oWord
:=3D OLEAutoObject{&quot;Word.Application&quot;}<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>oWord:Document=
s:Add(cFileName)<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>oDoc
:=3D oWord:ActiveDocument<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>oDoc:PrintOut(=
)<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><span style=3D'mso-spacerun:yes'>&nbsp;</span><span style=3D'mso-tab-c=
ount:
1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp; </span>oDoc:Saved
:=3D TRUE<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>oWord:Quit()<o=
:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<h2><span lang=3DEN-GB style=3D'mso-fareast-font-family:"Times New Roman"'=
>Document
Templates and Schema<o:p></o:p></span></h2>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'>Another important feature of<span style=3D'mso-spacerun:yes'>&nbsp;
</span>using MS Word is managing a document design by template. The templa=
te
will carry all the event handlers, COM references, data schemas and anythi=
ng
else required to manage access to your VO code. We won&#8217;t go into det=
ails
now but you can easily add smart quotes, tool bars, buttons or any other
regular feature of GUI windows you see to make access to your features much
easier.<span style=3D'mso-spacerun:yes'>&nbsp; </span>A little bit later i=
n the
paper we will cover using schemas to carry links to data fields that our C=
OM
components will populate. All these tools ultimately link together. Here i=
s an
example of the document showing its schema fields:<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span style=3D'mso-fareast-language:EN-AU;mso-no-proo=
f:yes'><!--[if gte vml 1]><v:shape
 id=3D"Picture_x0020_6" o:spid=3D"_x0000_i1029" type=3D"#_x0000_t75" alt=
=3D"Template_Doc"
 style=3D'width:453.75pt;height:334.5pt;visibility:visible;mso-wrap-style:=
square'
 o:bordertopcolor=3D"black" o:borderleftcolor=3D"black" o:borderbottomcolo=
r=3D"black"
 o:borderrightcolor=3D"black">
 <v:imagedata src=3D"VOwithOffice2003_files/image007.jpg" o:title=3D"Templ=
ate_Doc"/>
 <w:bordertop type=3D"single" width=3D"4"/>
 <w:borderleft type=3D"single" width=3D"4"/>
 <w:borderbottom type=3D"single" width=3D"4"/>
 <w:borderright type=3D"single" width=3D"4"/>
</v:shape><![endif]--><![if !vml]><img border=3D0 width=3D607 height=3D448
src=3D"file:///C:/8C69C633/VOwithOffice2003_files/image008.jpg" alt=3D"Tem=
plate_Doc" v:shapes=3D"Picture_x0020_6"><![endif]></span><span
lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;mso-bidi-language:HE'><o:p><=
/o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'>The schema attached to this was created in Visual Studio but of course=
 it
can be created in any convenient manner. MS Word either displays or hides =
the
fields (Shift-Ctrl-X) in the working template but of course the user gener=
ated
document has these fields completed as text. Here is what some of the sche=
ma
(XSD) looks like:<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal style=3D'tab-stops:24.0pt 42.0pt 60.0pt 78.0pt 96.0pt=
'><span
lang=3DNL style=3D'font-size:8.0pt;mso-ansi-language:NL;mso-bidi-language:=
HE'>&lt;?xml
version=3D&quot;1.0&quot; encoding=3D&quot;utf-8&quot; ?&gt;<o:p></o:p></s=
pan></p>

<p class=3DMsoNormal style=3D'tab-stops:24.0pt 42.0pt 60.0pt 78.0pt 96.0pt=
'><span
lang=3DNL style=3D'font-size:8.0pt;mso-ansi-language:NL;mso-bidi-language:=
HE'>&lt;xs:schema
id=3D&quot;StandardLetterSchema&quot;
targetNamespace=3D&quot;http://tempuri.org/StandardLetterSchema.xsd&quot;<=
o:p></o:p></span></p>

<p class=3DMsoNormal style=3D'tab-stops:24.0pt 42.0pt 60.0pt 78.0pt 96.0pt=
'><span
lang=3DNL style=3D'font-size:8.0pt;mso-ansi-language:NL;mso-bidi-language:=
HE'><span
style=3D'mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp; </span></span><span
lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-language:EN-GB;mso-bidi-lan=
guage:
HE'>elementFormDefault=3D&quot;qualified&quot;
xmlns=3D&quot;http://tempuri.org/StandardLetterSchema.xsd&quot;
xmlns:mstns=3D&quot;http://tempuri.org/StandardLetterSchema.xsd&quot;<o:p>=
</o:p></span></p>

<p class=3DMsoNormal style=3D'tab-stops:24.0pt 42.0pt 60.0pt 78.0pt 96.0pt=
'><span
lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-language:EN-GB;mso-bidi-lan=
guage:
HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp; </span>xmlns:xs=3D&quot;http://www.w3.org/2001/XMLS=
chema&quot;
xmlns:msdata=3D&quot;urn:schemas-microsoft-com:xml-msdata&quot;&gt;<o:p></=
o:p></span></p>

<p class=3DMsoNormal style=3D'tab-stops:24.0pt 42.0pt 60.0pt 78.0pt 96.0pt=
'><span
lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-language:EN-GB;mso-bidi-lan=
guage:
HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp; </span>&lt;xs:element
name=3D&quot;StandardLetterFields&quot;&gt;<o:p></o:p></span></p>

<p class=3DMsoNormal style=3D'tab-stops:24.0pt 42.0pt 60.0pt 78.0pt 96.0pt=
'><span
lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-language:EN-GB;mso-bidi-lan=
guage:
HE'><span style=3D'mso-tab-count:2'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </s=
pan>&lt;xs:complexType&gt;<o:p></o:p></span></p>

<p class=3DMsoNormal style=3D'tab-stops:24.0pt 42.0pt 60.0pt 78.0pt 96.0pt=
'><span
lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-language:EN-GB;mso-bidi-lan=
guage:
HE'><span style=3D'mso-tab-count:3'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;xs:sequence&gt;<o:=
p></o:p></span></p>

<p class=3DMsoNormal style=3D'tab-stops:24.0pt 42.0pt 60.0pt 78.0pt 96.0pt=
'><span
lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-language:EN-GB;mso-bidi-lan=
guage:
HE'><span style=3D'mso-tab-count:4'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp; </span>&lt;xs:element
name=3D&quot;CLIENT.CFILE&quot; type=3D&quot;xs:string&quot; /&gt;<o:p></o=
:p></span></p>

<p class=3DMsoNormal style=3D'tab-stops:24.0pt 42.0pt 60.0pt 78.0pt 96.0pt=
'><span
lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-language:EN-GB;mso-bidi-lan=
guage:
HE'><span style=3D'mso-tab-count:4'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp; </span>&lt;xs:element
name=3D&quot;CLIENT.NAME&quot; msdata:Caption=3D&quot;Testing here&quot;
type=3D&quot;xs:string&quot; /&gt;<o:p></o:p></span></p>

<p class=3DMsoNormal style=3D'tab-stops:24.0pt 42.0pt 60.0pt 78.0pt 96.0pt=
'><span
lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-language:EN-GB;mso-bidi-lan=
guage:
HE'><span style=3D'mso-tab-count:4'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp; </span>&lt;xs:element
name=3D&quot;CLIENT.TITLE&quot; type=3D&quot;xs:string&quot; /&gt;<o:p></o=
:p></span></p>

<p class=3DMsoNormal style=3D'tab-stops:24.0pt 42.0pt 60.0pt 78.0pt 96.0pt=
'><span
lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-language:EN-GB;mso-bidi-lan=
guage:
HE'><span style=3D'mso-tab-count:4'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp; </span>&lt;xs:element
name=3D&quot;CLIENT.GIVENNAMES&quot; type=3D&quot;xs:string&quot; /&gt;<o:=
p></o:p></span></p>

<p class=3DMsoNormal style=3D'tab-stops:24.0pt 42.0pt 60.0pt 78.0pt 96.0pt=
'><span
lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-language:EN-GB;mso-bidi-lan=
guage:
HE'><span style=3D'mso-tab-count:4'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp; </span>&lt;xs:element
name=3D&quot;CLIENT.SURNAME&quot; type=3D&quot;xs:string&quot; /&gt;<o:p><=
/o:p></span></p>

<p class=3DMsoNormal style=3D'tab-stops:24.0pt 42.0pt 60.0pt 78.0pt 96.0pt=
'><span
lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-language:EN-GB;mso-bidi-lan=
guage:
HE'><span style=3D'mso-tab-count:4'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp; </span>&lt;xs:element
name=3D&quot;CLIENT.ADDRESSLINE1&quot; type=3D&quot;xs:string&quot;
msdata:Caption=3D&quot;ADDRESS LINE1&quot; /&gt;<o:p></o:p></span></p>

<p class=3DMsoNormal style=3D'tab-stops:24.0pt 42.0pt 60.0pt 78.0pt 96.0pt=
'><span
lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-language:EN-GB;mso-bidi-lan=
guage:
HE'><span style=3D'mso-tab-count:4'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp; </span>&lt;xs:element
name=3D&quot;CLIENT.ADDRESSLINE2&quot; type=3D&quot;xs:string&quot;
msdata:Caption=3D&quot;ADDRESS LINE2&quot; /&gt;<o:p></o:p></span></p>

<p class=3DMsoNormal style=3D'tab-stops:24.0pt 42.0pt 60.0pt 78.0pt 96.0pt=
'><span
lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-language:EN-GB;mso-bidi-lan=
guage:
HE'><span style=3D'mso-tab-count:4'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp; </span>&lt;xs:element
name=3D&quot;CLIENT.ADDRESSLINE3&quot; type=3D&quot;xs:string&quot;
msdata:Caption=3D&quot;ADDRESS LINE3&quot; /&gt;<o:p></o:p></span></p>

<p class=3DMsoNormal style=3D'tab-stops:24.0pt 42.0pt 60.0pt 78.0pt 96.0pt=
'><span
lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-language:EN-GB;mso-bidi-lan=
guage:
HE'><span style=3D'mso-tab-count:4'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp; </span>&lt;xs:element
name=3D&quot;CLIENT.POSTCODE&quot; type=3D&quot;xs:string&quot; /&gt;<o:p>=
</o:p></span></p>

<p class=3DMsoNormal style=3D'tab-stops:24.0pt 42.0pt 60.0pt 78.0pt 96.0pt=
'><span
lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-language:EN-GB;mso-bidi-lan=
guage:
HE'><span style=3D'mso-tab-count:4'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp; </span>&lt;xs:element
name=3D&quot;CLIENT.BIRTHDATE&quot; type=3D&quot;xs:string&quot;
minOccurs=3D&quot;0&quot; /&gt;<o:p></o:p></span></p>

<p class=3DMsoNormal style=3D'tab-stops:24.0pt 42.0pt 60.0pt 78.0pt 96.0pt=
'><span
lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-language:EN-GB;mso-bidi-lan=
guage:
HE'><span style=3D'mso-tab-count:4'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp; </span>&lt;xs:element
name=3D&quot;CLIENT.PHONE&quot; type=3D&quot;xs:string&quot; /&gt;<o:p></o=
:p></span></p>

<p class=3DMsoNormal style=3D'tab-stops:24.0pt 42.0pt 60.0pt 78.0pt 96.0pt=
'><span
lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-language:EN-GB;mso-bidi-lan=
guage:
HE'><span style=3D'mso-tab-count:4'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp; </span>&lt;xs:element
name=3D&quot;CLIENT.MOBILE&quot; type=3D&quot;xs:string&quot; /&gt;<o:p></=
o:p></span></p>

<p class=3DMsoNormal style=3D'tab-stops:24.0pt 42.0pt 60.0pt 78.0pt 96.0pt=
'><span
lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-language:EN-GB;mso-bidi-lan=
guage:
HE'><span style=3D'mso-tab-count:4'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp; </span>&lt;xs:element
name=3D&quot;CLIENT.FAX&quot; type=3D&quot;xs:string&quot; /&gt;<o:p></o:p=
></span></p>

<p class=3DMsoNormal style=3D'tab-stops:24.0pt 42.0pt 60.0pt 78.0pt 96.0pt=
'><span
lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-language:EN-GB;mso-bidi-lan=
guage:
HE'><span style=3D'mso-tab-count:4'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp; </span>&lt;xs:element
name=3D&quot;CLIENT.EMAIL&quot; type=3D&quot;xs:string&quot; /&gt;<o:p></o=
:p></span></p>

<p class=3DMsoNormal style=3D'tab-stops:24.0pt 42.0pt 60.0pt 78.0pt 96.0pt=
'><span
lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-language:EN-GB;mso-bidi-lan=
guage:
HE'><span style=3D'mso-tab-count:4'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp; </span>&lt;xs:element
name=3D&quot;CLIENT.SEX&quot; type=3D&quot;xs:string&quot; /&gt;<o:p></o:p=
></span></p>

<p class=3DMsoNormal style=3D'tab-stops:24.0pt 42.0pt 60.0pt 78.0pt 96.0pt=
'><span
lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-language:EN-GB;mso-bidi-lan=
guage:
HE'><span style=3D'mso-tab-count:4'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp; </span>&lt;xs:element
name=3D&quot;CLIENT.GAB&quot; type=3D&quot;xs:string&quot; /&gt;<o:p></o:p=
></span></p>

<p class=3DMsoNormal style=3D'tab-stops:24.0pt 42.0pt 60.0pt 78.0pt 96.0pt=
'><span
lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-language:EN-GB;mso-bidi-lan=
guage:
HE'><span style=3D'mso-tab-count:4'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp; </span>&lt;xs:element
name=3D&quot;AGENT.CODE&quot; type=3D&quot;xs:string&quot; /&gt;<o:p></o:p=
></span></p>

<p class=3DMsoNormal style=3D'tab-stops:24.0pt 42.0pt 60.0pt 78.0pt 96.0pt=
'><span
lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-language:EN-GB;mso-bidi-lan=
guage:
HE'><span style=3D'mso-tab-count:4'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp; </span>&lt;xs:element
name=3D&quot;AGENT.NAME&quot; type=3D&quot;xs:string&quot; /&gt;<o:p></o:p=
></span></p>

<p class=3DMsoNormal style=3D'tab-stops:24.0pt 42.0pt 60.0pt 78.0pt 96.0pt=
'><span
lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-language:EN-GB;mso-bidi-lan=
guage:
HE'><span style=3D'mso-tab-count:4'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp; </span>&lt;xs:element
name=3D&quot;AGENT.CONTACT&quot; type=3D&quot;xs:string&quot; /&gt;<o:p></=
o:p></span></p>

<p class=3DMsoNormal style=3D'tab-stops:24.0pt 42.0pt 60.0pt 78.0pt 96.0pt=
'><span
lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-language:EN-GB;mso-bidi-lan=
guage:
HE'><span style=3D'mso-tab-count:4'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp; </span>&lt;xs:element
name=3D&quot;AGENT.TITLE&quot; type=3D&quot;xs:string&quot; /&gt;<o:p></o:=
p></span></p>

<p class=3DMsoNormal style=3D'tab-stops:24.0pt 42.0pt 60.0pt 78.0pt 96.0pt=
'><span
lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-language:EN-GB;mso-bidi-lan=
guage:
HE'><span style=3D'mso-tab-count:3'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style=3D'mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </spa=
n>&lt;xs:element
name=3D&quot;AGENT.GIVEN&quot; type=3D&quot;xs:string&quot; /&gt;<o:p></o:=
p></span></p>

<p class=3DMsoNormal style=3D'tab-stops:24.0pt 42.0pt 60.0pt 78.0pt 96.0pt=
'><span
lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-language:EN-GB;mso-bidi-lan=
guage:
HE'><span style=3D'mso-tab-count:4'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp; </span>&lt;xs:element
name=3D&quot;AGENT.SURNAME&quot; type=3D&quot;xs:string&quot; /&gt;<o:p></=
o:p></span></p>

<p class=3DMsoNormal style=3D'tab-stops:24.0pt 42.0pt 60.0pt 78.0pt 96.0pt=
'><span
lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-language:EN-GB;mso-bidi-lan=
guage:
HE'><span style=3D'mso-tab-count:4'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp; </span>&lt;xs:element
name=3D&quot;AGENT.ADDRESSLINE1&quot; type=3D&quot;xs:string&quot; /&gt;<o=
:p></o:p></span></p>

<p class=3DMsoNormal style=3D'tab-stops:24.0pt 42.0pt 60.0pt 78.0pt 96.0pt=
'><span
lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-language:EN-GB;mso-bidi-lan=
guage:
HE'><span style=3D'mso-tab-count:4'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp; </span>&lt;xs:element
name=3D&quot;AGENT.ADDRESSLINE2&quot; type=3D&quot;xs:string&quot; /&gt;<o=
:p></o:p></span></p>

<p class=3DMsoNormal style=3D'tab-stops:24.0pt 42.0pt 60.0pt 78.0pt 96.0pt=
'><span
lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-language:EN-GB;mso-bidi-lan=
guage:
HE'><span style=3D'mso-tab-count:4'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp; </span>&lt;xs:element
name=3D&quot;AGENT.ADDRESSLINE3&quot; type=3D&quot;xs:string&quot; /&gt;<o=
:p></o:p></span></p>

<p class=3DMsoNormal style=3D'tab-stops:24.0pt 42.0pt 60.0pt 78.0pt 96.0pt=
'><span
lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-language:EN-GB;mso-bidi-lan=
guage:
HE'><span style=3D'mso-tab-count:4'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp; </span>&lt;xs:element
name=3D&quot;AGENT.PHONE&quot; type=3D&quot;xs:string&quot; /&gt;<o:p></o:=
p></span></p>

<p class=3DMsoNormal style=3D'tab-stops:24.0pt 42.0pt 60.0pt 78.0pt 96.0pt=
'><span
lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-language:EN-GB;mso-bidi-lan=
guage:
HE'><span style=3D'mso-tab-count:4'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp; </span>&lt;xs:element
name=3D&quot;AGENT.MOBILE&quot; type=3D&quot;xs:string&quot; /&gt;<o:p></o=
:p></span></p>

<p class=3DMsoNormal style=3D'tab-stops:24.0pt 42.0pt 60.0pt 78.0pt 96.0pt=
'><span
lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-language:EN-GB;mso-bidi-lan=
guage:
HE'><span style=3D'mso-tab-count:4'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp; </span>&lt;xs:element
name=3D&quot;AGENT.FAX&quot; type=3D&quot;xs:string&quot; /&gt;<o:p></o:p>=
</span></p>

<p class=3DMsoNormal style=3D'tab-stops:24.0pt 42.0pt 60.0pt 78.0pt 96.0pt=
'><span
lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-language:EN-GB;mso-bidi-lan=
guage:
HE'><span style=3D'mso-tab-count:4'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp; </span>&lt;xs:element
name=3D&quot;AGENT.EMAIL&quot; type=3D&quot;xs:string&quot; /&gt;<o:p></o:=
p></span></p>

<p class=3DMsoNormal style=3D'tab-stops:24.0pt 42.0pt 60.0pt 78.0pt 96.0pt=
'><span
lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-language:EN-GB;mso-bidi-lan=
guage:
HE'><span style=3D'mso-tab-count:4'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp; </span>&lt;xs:element
name=3D&quot;AGENT.NOTES&quot; type=3D&quot;xs:string&quot; /&gt;<o:p></o:=
p></span></p>

<p class=3DMsoNormal style=3D'tab-stops:24.0pt 42.0pt 60.0pt 78.0pt 96.0pt=
'><span
lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-language:EN-GB;mso-bidi-lan=
guage:
HE'><span style=3D'mso-tab-count:3'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/xs:sequence&gt;<o=
:p></o:p></span></p>

<p class=3DMsoNormal style=3D'tab-stops:24.0pt 42.0pt 60.0pt 78.0pt 96.0pt=
'><span
lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-language:EN-GB;mso-bidi-lan=
guage:
HE'><span style=3D'mso-tab-count:2'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </s=
pan></span><span
style=3D'font-size:8.0pt;mso-bidi-language:HE'>&lt;/xs:complexType&gt;<o:p=
></o:p></span></p>

<p class=3DMsoNormal style=3D'tab-stops:24.0pt 42.0pt 60.0pt 78.0pt 96.0pt=
'><span
style=3D'font-size:8.0pt;mso-bidi-language:HE'><span style=3D'mso-tab-coun=
t:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&=
lt;/xs:element&gt;<o:p></o:p></span></p>

<p class=3DMsoNormal style=3D'tab-stops:24.0pt 42.0pt 60.0pt 78.0pt 96.0pt=
'><span
style=3D'font-size:8.0pt;mso-bidi-language:HE'>&lt;/xs:schema&gt;<o:p></o:=
p></span></p>

<p class=3DMsoNormal><span style=3D'mso-bidi-language:HE'><o:p>&nbsp;</o:p=
></span></p>

<p class=3DMsoNormal><span style=3D'mso-bidi-language:HE'>In </span><span =
lang=3DNL
style=3D'mso-ansi-language:NL;mso-bidi-language:HE'><a
href=3D"http://www.softwareobjectives.com.au/voconversion/Article%20Archiv=
e/Generating%20business%20documents%20using%20XML%20and%20MS.mht"><span
lang=3DEN-AU style=3D'mso-ansi-language:EN-AU'>the Article &#8220;Generati=
ng
Business Documents using XML..&#8221;</span></a></span><span style=3D'mso-=
bidi-language:
HE'> on the VOConversion WebSite we explain this process in detail using s=
tep
by step examples.<o:p></o:p></span></p>

<h2><span style=3D'mso-fareast-font-family:"Times New Roman";mso-ansi-lang=
uage:
EN-AU'>Smart Documents<o:p></o:p></span></h2>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'>Definitely your VO applications are great tools for the users you&#821=
7;ve created
them for, and integrating Office applications will make them even better by
allowing users to combine the tools they&#8217;ve become used to with the
customized data, context and the content your application delivers. But th=
ere
are probably many users in your organization and at your customers&#8217; =
sites
that are not using your applications: it may not be their primary job, the=
y may
not have been trained or maybe its beyond their security level. It might a=
lso
not be worth it, the applications are too big and complex, and they would =
only
use a very small part of it. In other words your application would be over=
kill
to them. Another scenario might be that the application needs to be instal=
led
and needs pre-requisites that aren&#8217;t available to those users, like =
network
connectivity or a powerful workstation. In those cases deployment might pr=
event
them from using the functionality your application provides.<o:p></o:p></s=
pan></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'>In those cases the Office suite provides a platform to deliver special=
ized
pieces of your applications to all Office users in the company or at your
customers&#8217; site. In this context it&#8217;s worth taking a look at t=
hree
different concepts that could come in handy; <o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<ul style=3D'margin-top:0cm' type=3Ddisc>
 <li class=3DMsoNormal style=3D'mso-list:l1 level1 lfo3;tab-stops:list 36.=
0pt'><b
     style=3D'mso-bidi-font-weight:normal'><u><span lang=3DEN-GB style=3D'=
mso-ansi-language:
     EN-GB;mso-bidi-language:HE'>Plain Web Service Integration.</span></u>=
</b><span
     lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;mso-bidi-language:HE'><=
span
     style=3D'mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Micro=
soft
     did a good job making sure Web Services can be used in many of the Of=
fice
     applications, they made a toolkit available that supports good
     integration. We will have a look at this from Excel. For the example
     we&#8217;ll show a Web Service that is running on our server in <st1:=
country-region
     w:st=3D"on"><st1:place w:st=3D"on">Australia</st1:place></st1:country=
-region>.
     It returns a list of names and email addresses of our employees.<br>
     The toolkit can be <a
     href=3D"http://msdn.microsoft.com/office/downloads/toolsutils/default=
.aspx">downloaded
     from MSDN</a> . <br style=3D'mso-special-character:line-break'>
     <![if !supportLineBreakNewLine]><br style=3D'mso-special-character:li=
ne-break'>
     <![endif]><o:p></o:p></span></li>
 <li class=3DMsoNormal style=3D'mso-list:l1 level1 lfo3;tab-stops:list 36.=
0pt'><b
     style=3D'mso-bidi-font-weight:normal'><u><span lang=3DEN-GB style=3D'=
mso-ansi-language:
     EN-GB;mso-bidi-language:HE'>The Research Pane.</span></u></b><span
     lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;mso-bidi-language:HE'><=
span
     style=3D'mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp; </span>Office
     2003 introduces the Task Pane, an interesting way to build a small pa=
rt of
     a UI that fully integrates in the Office applications. You pull up the
     task pane using Ctrl F1 and it nests itself on the right of your scre=
en.
     The actual panel we can interact with using Web Services is the Resea=
rch
     pane, you can pick that using the little black down arrow and clickin=
g on
     &#8216;Research&#8217;. It already comes with a range of Services, bu=
t we
     are most interested in how to make our own available in there. For th=
is we
     need to write a Web Service that implements a specialized programming=
 interface
     which is also described on MSDN. There is also a Visual Studio soluti=
on
     available in the form of a toolkit that delivers an empty, working
     Research Service, so all we have to do is import that in start fillin=
g in
     our business logic (which we already have written in VO). So it&#8217=
;s
     all just about one more layer of plumbing. The great thing about this
     approach is that once you have your infrastructure set up like this, =
it
     will automatically be available to all users and in all Office
     applications that support the Task Pane. <o:p></o:p></span></li>
</ul>

<p class=3DMsoNormal style=3D'margin-left:18.0pt'><span lang=3DEN-GB
style=3D'mso-ansi-language:EN-GB;mso-bidi-language:HE'><o:p>&nbsp;</o:p></=
span></p>

<ul style=3D'margin-top:0cm' type=3Ddisc>
 <li class=3DMsoNormal style=3D'mso-list:l1 level1 lfo3;tab-stops:list 36.=
0pt'><b
     style=3D'mso-bidi-font-weight:normal'><u><span lang=3DEN-GB style=3D'=
mso-ansi-language:
     EN-GB;mso-bidi-language:HE'>Smart Documents</span></u></b><span
     lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;mso-bidi-language:HE'>.=
<span
     style=3D'mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>This
     is the most complex step of the three described, but also offers the =
most
     power to the developer. The drawback is that it usually requires a bi=
t of
     setup or deployment because in this case the documents themselves are
     hosting the solution code, either just in the form of XML-schema&#821=
7;s,
     but often also combined with DLL&#8217;s. What it actually comes down=
 to
     is that a developer has the ability to attach his code or events to a
     certain context in the document. This context is provided by the appl=
ied
     XML-schema. Typically the UI is exposed in the Task Panel.<o:p></o:p>=
</span></li>
</ul>

<p class=3DMsoListParagraph><span lang=3DEN-GB style=3D'mso-ansi-language:=
EN-GB;
mso-bidi-language:HE'><o:p>&nbsp;</o:p></span></p>

<ul style=3D'margin-top:0cm' type=3Ddisc>
 <li class=3DMsoNormal style=3D'mso-list:l1 level1 lfo3;tab-stops:list 36.=
0pt'><b
     style=3D'mso-bidi-font-weight:normal'><u><span lang=3DEN-GB style=3D'=
mso-ansi-language:
     EN-GB;mso-bidi-language:HE'>Customised Task Pane</span></u></b><span
     lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;mso-bidi-language:HE'><=
span
     style=3D'mso-spacerun:yes'>&nbsp; </span>Using VSTO, the Visual Studi=
o Tools
     for Office it is fairly easy to write your own Task Panes we will
     investigate this further in a future article on VoConversion.<b
     style=3D'mso-bidi-font-weight:normal'><u><br style=3D'mso-special-cha=
racter:
     line-break'>
     <![if !supportLineBreakNewLine]><br style=3D'mso-special-character:li=
ne-break'>
     <![endif]></u></b><o:p></o:p></span></li>
</ul>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'>It&#8217;s clear that to make good use of these tools and the integrat=
ion
they provide you would have to start creating Web Services. This is not a
difficult task, using Visual Studio to create the plumbing and the COMSDK =
to
create your automation servers that access your existing Business Logic.<o=
:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'>For more detailed explanations of these Web-savvy features and some gr=
eat
samples, see Scott Hillier&#8217;s book: Microsoft SharePoint: Building Of=
fice
2003 Solutions. Almost all of these discussion topics can be found there a=
nd I
would draw your specific attention to Chapter 8 where schemas are mentione=
d.
And remember Web Services are not just for Internet applications, they work
fine in a local network.<o:p></o:p></span></p>

<h3><span lang=3DEN-GB style=3D'mso-fareast-font-family:"Times New Roman"'=
>The Next
Step: Information Business Framework: IBF<o:p></o:p></span></h3>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'>Just to give you a glimpse of what is in store for the future, Microso=
ft is
clearly investing in these technologies and building upon them. And rightf=
ully
so, when an organisation starts implementing this, (Web) Services will blo=
ssom
but also present a risk: management wise, security wise and who will know =
what
is there and when to use it? This is why MS invented a Framework that allo=
ws us
to classify and publish our services and to determine context and roles so=
 the
right users get the appropriate content and functionality delivered to the=
ir
desktop applications. A very interesting development. <a
href=3D"http://msdn.microsoft.com/office/understanding/ibframework/default=
.aspx">Here&#8217;s</a>
where you read all about it, and <a
href=3D"http://msdn.microsoft.com/office/default.aspx?pull=3D/library/en-u=
s/odc_ibf2003_ta/html/odc_ibftechoverview.asp">this
links to a technical discussion about version 1.0</a>, but 1.5 is around t=
he
corner.</span><span lang=3DEN-GB style=3D'font-size:8.0pt;font-family:"Ver=
dana","sans-serif";
color:black;mso-ansi-language:EN-GB'> </span><span style=3D'font-size:8.0p=
t;
font-family:"Verdana","sans-serif";color:black'><o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal align=3Dcenter style=3D'text-align:center'><span
style=3D'mso-fareast-language:EN-AU;mso-no-proof:yes'><!--[if gte vml 1]><=
v:shape
 id=3D"Picture_x0020_7" o:spid=3D"_x0000_i1028" type=3D"#_x0000_t75" alt=
=3D"http://msdn.microsoft.com/library/en-us/odc_ibf2003_ta/html/idc_ibftec=
hoverview01.gif"
 style=3D'width:264pt;height:251.25pt;visibility:visible;mso-wrap-style:sq=
uare'>
 <v:imagedata src=3D"VOwithOffice2003_files/image009.png" o:title=3D"idc_i=
bftechoverview01"/>
</v:shape><![endif]--><![if !vml]><img border=3D0 width=3D352 height=3D335
src=3D"file:///C:/8C69C633/VOwithOffice2003_files/image010.jpg"
alt=3D"http://msdn.microsoft.com/library/en-us/odc_ibf2003_ta/html/idc_ibf=
techoverview01.gif"
v:shapes=3D"Picture_x0020_7"><![endif]></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><!--[if gte vml 1]><v:shapetype id=3D"_x0000_t186"
 coordsize=3D"21600,21600" o:spt=3D"186" adj=3D"1800" path=3D"m@9,nfqx@0@0=
l@0@7qy0@4@0@8l@0@6qy@9,21600em@10,nfqx@5@0l@5@7qy21600@4@5@8l@5@6qy@10,21=
600em@9,nsqx@0@0l@0@7qy0@4@0@8l@0@6qy@9,21600l@10,21600qx@5@6l@5@8qy21600@=
4@5@7l@5@0qy@10,xe"
 filled=3D"f">
 <v:formulas>
  <v:f eqn=3D"val #0"/>
  <v:f eqn=3D"val width"/>
  <v:f eqn=3D"val height"/>
  <v:f eqn=3D"prod width 1 2"/>
  <v:f eqn=3D"prod height 1 2"/>
  <v:f eqn=3D"sum width 0 #0"/>
  <v:f eqn=3D"sum height 0 #0"/>
  <v:f eqn=3D"sum @4 0 #0"/>
  <v:f eqn=3D"sum @4 #0 0"/>
  <v:f eqn=3D"prod #0 2 1"/>
  <v:f eqn=3D"sum width 0 @9"/>
  <v:f eqn=3D"prod #0 9598 32768"/>
  <v:f eqn=3D"sum height 0 @11"/>
  <v:f eqn=3D"sum @11 #0 0"/>
  <v:f eqn=3D"sum width 0 @13"/>
 </v:formulas>
 <v:path o:extrusionok=3D"f" limo=3D"10800,10800" o:connecttype=3D"custom"
  o:connectlocs=3D"@3,0;0,@4;@3,@2;@1,@4" textboxrect=3D"@13,@11,@14,@12"/>
 <v:handles>
  <v:h position=3D"topLeft,#0" switch=3D"" yrange=3D"0,5400"/>
 </v:handles>
</v:shapetype><v:shape id=3D"_x0000_s2053" type=3D"#_x0000_t186" style=3D'=
position:absolute;
 margin-left:651.4pt;margin-top:0;width:197.95pt;height:228.85pt;rotation:=
90;
 z-index:1;mso-width-percent:400;mso-position-horizontal:right;
 mso-position-vertical:top;mso-position-vertical-relative:line;
 mso-width-percent:400;v-text-anchor:middle' o:allowoverlap=3D"f" filled=
=3D"t"
 fillcolor=3D"#c2d69b [1942]" strokecolor=3D"#c2d69b [1942]" strokeweight=
=3D"1pt">
 <v:fill color2=3D"#eaf1dd [662]" angle=3D"-45" focus=3D"-50%" type=3D"gra=
dient"/>
 <v:shadow on=3D"t" type=3D"perspective" color=3D"#4e6128 [1606]" opacity=
=3D".5"
  offset=3D"1pt" offset2=3D"-3pt"/>
 <v:textbox style=3D'mso-next-textbox:#_x0000_s2053'>
  <![if !mso]>
  <table cellpadding=3D0 cellspacing=3D0 width=3D"100%">
   <tr>
    <td><![endif]>
    <div>
    <p class=3DMsoNormal align=3Dcenter style=3D'text-align:center;line-he=
ight:120%'><span
    lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;mso-bidi-language:HE'>NO=
TE: the
    above paragraph was valid at the time we wrote this article, currently=
 now
    that Office 2007 has been released things have changed. On MSDN the Of=
fice
    Developer Portal has some great reference/demo applications for what i=
s now
    called &#8220;OBA&#8221; Office Business Applications. You can <a
    href=3D"http://msdn2.microsoft.com/en-us/library/bb220802.aspx">read a=
ll
    about the Architecture and building blocks now available here</a></spa=
n><i><span
    style=3D'font-size:14.0pt;line-height:120%;font-family:"Cambria","seri=
f";
    mso-ascii-theme-font:major-latin;mso-fareast-font-family:"Times New Ro=
man";
    mso-fareast-theme-font:major-fareast;mso-hansi-theme-font:major-latin;
    mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:major-bidi;
    color:#D3DFEE;mso-themecolor:accent1;mso-themetint:63'><o:p></o:p></sp=
an></i></p>
    </div>
    <![if !mso]></td>
   </tr>
  </table>
  <![endif]></v:textbox>
 <w:wrap type=3D"square" anchorx=3D"margin" anchory=3D"page"/>
</v:shape><![endif]--><![if !vml]><img width=3D312 height=3D273
src=3D"file:///C:/8C69C633/VOwithOffice2003_files/image011.gif" align=3Dri=
ght hspace=3D12
alt=3D"Double Brace: NOTE: the above paragraph was valid at the time we wr=
ote this article, currently now that Office 2007 has been released things =
have changed. On MSDN the Office Developer Portal has some great reference=
/demo applications for what is now called &#8220;OBA&#8221; Office Busines=
s Applications. You can read all about the Architecture and building block=
s now available here"
v:shapes=3D"_x0000_s2053"><![endif]><span lang=3DEN-GB style=3D'mso-ansi-l=
anguage:
EN-GB;mso-bidi-language:HE'>Why the parenthesis around &#8220;web&#8221; y=
ou
might ask?, well when Indigo is released (which it will be pretty soon) the
infrastructure will be independent of hardware boundaries and we will be a=
ble
to use the same model between applications on a desktop, on a LAN or even
within a single application. The programming model for this will be simple=
 to
implement but extremely powerful and scalable building upon experiences wi=
th
Web Services and WSE as well as COM+ and MSMQ. It will support transaction=
s,
security and message queuing and can guarantee delivery and reliability wh=
en
needed.<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'>. <o:p></o:p></span></p>

<h1><span lang=3DEN-GB style=3D'mso-fareast-font-family:"Times New Roman"'=
><o:p>&nbsp;</o:p></span></h1>

<h1><span lang=3DEN-GB style=3D'mso-fareast-font-family:"Times New Roman"'=
><o:p>&nbsp;</o:p></span></h1>

<h1><span lang=3DEN-GB style=3D'mso-fareast-font-family:"Times New Roman"'=
>MS
Outlook<o:p></o:p></span></h1>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'>We shouldn&#8217;t have to ask it but the general question might be: w=
hy
use Outlook? The answer is obvious: because most of the business world use=
s it.
Once you are in an office with more than 5-10 users in a network, you will
generally find Outlook. Most office employees are familiar with it and des=
pite
its numerous quirks, it works. It is an extremely comprehensive package,
especially when backed by MS Exchange and most small businesses use it. If=
 the
client is using Windows Server 2000 and later or is using Small Business S=
erver
then Outlook will probably be the basis of their workflow. We will now exp=
lore
the three most commonly used items: Email, Tasks and Calendar entries.<o:p=
></o:p></span></p>

<h2><span lang=3DEN-GB style=3D'mso-fareast-font-family:"Times New Roman"'=
>Tasks<o:p></o:p></span></h2>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'>Generating tasks is a very powerful mechanism over emails in that they
carry their own workflow aspects. Most people are familiar with tasks in
Outlook so we don&#8217;t need to convince you of their worth but like
calendars and email, it is a feature of Outlook in wide use. We have writt=
en a
small collaboration component to handle the task creation from VO code like
this:<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB;m=
so-bidi-language:
HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;color:red;
mso-ansi-language:EN-GB;mso-bidi-language:HE'>METHOD</span><span lang=3DEN=
-GB
style=3D'font-size:8.0pt;mso-ansi-language:EN-GB;mso-bidi-language:HE'>
CreateTask(cSubject, cNotes, cCFile, cCompany, cWhoFor, dExpiry, cPriority,
cCategory) <span style=3D'color:red'>CLASS</span> Diary<o:p></o:p></span><=
/p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; </span><span
style=3D'color:red'>LOCAL</span> cbError <span style=3D'color:red'>AS</spa=
n> <span
style=3D'color:red'>CODEBLOCK</span><o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-ansi-=
language:
EN-GB;mso-bidi-language:HE'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; </span><span
style=3D'color:red'>LOCAL</span> o <span style=3D'color:red'>AS</span>
TS_ITMCollabApplication<o:p></o:p></span></p>

<p class=3DMsoNormal><span lang=3DEN-GB style=3D'font-size:8.0pt;mso-a