DOCUMENT:Q161197 09-AUG-1999 [foxpro] TITLE :HOWTO: Automate a Word Object Embedded in a Form PRODUCT :Microsoft FoxPro PROD/VER: OPER/SYS: KEYWORDS:kbinterop kbAutomation kbvfp500 kbvfp600 ====================================================================== ------------------------------------------------------------------------------- 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 1999.