KnowledgeBase Archive

An Archive of Early Microsoft KnowledgeBase Articles

View on GitHub

Q161197: HOWTO: Automate a Word Object Embedded in a Form

Article: Q161197
Product(s): Microsoft FoxPro
Version(s): 
Operating System(s): 
Keyword(s): kbinterop kbAutomation kbvfp500 kbvfp600
Last Modified: 09-AUG-1999

-------------------------------------------------------------------------------
The information in this article applies to:

- Microsoft Visual FoxPro for Windows, versions 5.0, 6.0 
-------------------------------------------------------------------------------

SUMMARY
=======

This article provides an example of how to programmatically update an OLE object
embedded within a Word document. This example uses both Visual FoxPro 5.0 and
Microsoft Word for Windows 95 version 7.0a.

MORE INFORMATION
================

The sample creates a new form and adds a Word object to that form. Next, the
code activates the Word object to get a reference to its WordBasic object,
deactivates it, and then automates the WordBasic object. The important part of
this code is the temporary activation of Word. The object embedded in a form is
called "Document." Unfortunately, Word does not support the object
"Word.Document" through OLE Automation, but Word does support the object
"WordBasic." The following line of code saves a reference to the object
contained within the Word document:

     oWordRef = oForm.oWordDoc.Object.Application.WordBasic

This allows a programmer to update the object.

Please see the REFERENCES section of this article for additional information.

Code Example
------------

Place the following code in a program file and run it:

     #DEFINE CRLF  CHR(13)+CHR(10)
     PUBLIC oForm
     oForm = CREATE('form')
     oForm.AddObject('oWordDoc','OleControl','WordDocument')
     oForm.oWordDoc.Height =  100
     oForm.oWordDoc.Width =  300
     oForm.oWordDoc.Visible =  .t.
     oForm.Show
     oForm.oWordDoc.DoVerb(0)
     oWordRef = oForm.oWordDoc.Object.Application.WordBasic
     MOUSE CLICK AT 0,0
     oWordRef.Insert("Hello World"+CRLF)
     oWordRef.EditSelectAll
     oWordRef.Font("Arial",18)
     oWordRef.Bold
     oWordRef.EditGoTo("\EndofDoc")
     oWordRef.WordLeft(3)
     oWordRef.SelectCurWord
     oWordRef.CharColor(2)
     RETURN

This code will replace the Visual FoxPro toolbars with the Word toolbars in order
to edit the embedded Word object.

REFERENCES
==========

For more information about OLE Automation, Visual FoxPro, and Word, please see
the following articles in the Microsoft Knowledge Base:

  Q138205 HOWTO: Use OLE Automation with Microsoft Word

  Q148474 SAMPLE: Ole_samp.exe to Microsoft Excel, Word, & PowerPoint


  Q105535 Word for Windows Supports OLE Automation as a Server Only


Additional query words:

======================================================================
Keywords          : kbinterop kbAutomation kbvfp500 kbvfp600 
Technology        : kbVFPsearch kbAudDeveloper kbVFP500 kbVFP600
Issue type        : kbhowto

=============================================================================

THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Copyright Microsoft Corporation 1986-2002.