After a lot of trouble I managed to access MS-Word via COM.
The following code shows the Application Interface.
Code: Select all
DataSection
CLSID_Application:
Data.l $000209FF
Data.w $0000,$0000
Data.b $C0,$00,$00,$00,$00,$00,$00,$46
EndDataSection
CLSID_ApplicationStr.s="{000209FF-0000-0000-C000-000000000046}"
DataSection
IID__Application:
Data.l $00020970
Data.w $0000,$0000
Data.b $C0,$00,$00,$00,$00,$00,$00,$46
EndDataSection
IID__ApplicationStr.s="{00020970-0000-0000-C000-000000000046}"
Interface _Application Extends IDispatch
get_Application(a.l)
get_Creator(a.l)
get_Parent(a.l)
get_Name(a.l)
get_Documents(a.l)
get_Windows(a.l)
get_ActiveDocument(a.l)
get_ActiveWindow(a.l)
get_Selection(a.l)
get_WordBasic(a.l)
get_RecentFiles(a.l)
get_NormalTemplate(a.l)
get_System(a.l)
get_AutoCorrect(a.l)
get_FontNames(a.l)
get_LandscapeFontNames(a.l)
get_PortraitFontNames(a.l)
get_Languages(a.l)
get_Assistant(a.l)
get_Browser(a.l)
get_FileConverters(a.l)
get_MailingLabel(a.l)
get_Dialogs(a.l)
get_CaptionLabels(a.l)
get_AutoCaptions(a.l)
get_AddIns(a.l)
get_Visible(a.l)
put_Visible(a.l)
get_Version(a.l)
get_ScreenUpdating(a.l)
put_ScreenUpdating(a.l)
get_PrintPreview(a.l)
put_PrintPreview(a.l)
get_Tasks(a.l)
get_DisplayStatusBar(a.l)
put_DisplayStatusBar(a.l)
get_SpecialMode(a.l)
get_UsableWidth(a.l)
get_UsableHeight(a.l)
get_MathCoprocessorAvailable(a.l)
get_MouseAvailable(a.l)
get_International(a.l,b.l)
get_Build(a.l)
get_CapsLock(a.l)
get_NumLock(a.l)
get_UserName(a.l)
put_UserName(a.l)
get_UserInitials(a.l)
put_UserInitials(a.l)
get_UserAddress(a.l)
put_UserAddress(a.l)
get_MacroContainer(a.l)
get_DisplayRecentFiles(a.l)
put_DisplayRecentFiles(a.l)
get_CommandBars(a.l)
get_SynonymInfo(a.l,b.l,c.l)
get_VBE(a.l)
get_DefaultSaveFormat(a.l)
put_DefaultSaveFormat(a.l)
get_ListGalleries(a.l)
get_ActivePrinter(a.l)
put_ActivePrinter(a.l)
get_Templates(a.l)
get_CustomizationContext(a.l)
put_CustomizationContext(a.l)
get_KeyBindings(a.l)
get_KeysBoundTo(a.l,b.l,c.l,d.l)
get_FindKey(a.l,b.l,c.l)
get_Caption(a.l)
put_Caption(a.l)
get_Path(a.l)
get_DisplayScrollBars(a.l)
put_DisplayScrollBars(a.l)
get_StartupPath(a.l)
put_StartupPath(a.l)
get_BackgroundSavingStatus(a.l)
get_BackgroundPrintingStatus(a.l)
get_Left(a.l)
put_Left(a.l)
get_Top(a.l)
put_Top(a.l)
get_Width(a.l)
put_Width(a.l)
get_Height(a.l)
put_Height(a.l)
get_WindowState(a.l)
put_WindowState(a.l)
get_DisplayAutoCompleteTips(a.l)
put_DisplayAutoCompleteTips(a.l)
get_Options(a.l)
get_DisplayAlerts(a.l)
put_DisplayAlerts(a.l)
get_CustomDictionaries(a.l)
get_PathSeparator(a.l)
put_StatusBar(a.l)
get_MAPIAvailable(a.l)
get_DisplayScreenTips(a.l)
put_DisplayScreenTips(a.l)
get_EnableCancelKey(a.l)
put_EnableCancelKey(a.l)
get_UserControl(a.l)
get_FileSearch(a.l)
get_MailSystem(a.l)
get_DefaultTableSeparator(a.l)
put_DefaultTableSeparator(a.l)
get_ShowVisualBasicEditor(a.l)
put_ShowVisualBasicEditor(a.l)
get_BrowseExtraFileTypes(a.l)
put_BrowseExtraFileTypes(a.l)
get_IsObjectValid(a.l,b.l)
get_HangulHanjaDictionaries(a.l)
get_MailMessage(a.l)
get_FocusInMailHeader(a.l)
Quit(a.l,b.l,c.l)
ScreenRefresh()
PrintOutOld(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l,i.l,j.l,k.l,l.l,m.l,n.l,o.l)
LookupNameProperties(a.l)
SubstituteFont(a.l,b.l)
Repeat(a.l,b.l)
DDEExecute(a.l,b.l)
DDEInitiate(a.l,b.l,c.l)
DDEPoke(a.l,b.l,c.l)
DDERequest(a.l,b.l,c.l)
DDETerminate(a.l)
DDETerminateAll()
BuildKeyCode(a.l,b.l,c.l,d.l,e.l)
KeyString(a.l,b.l,c.l)
OrganizerCopy(a.l,b.l,c.l,d.l)
OrganizerDelete(a.l,b.l,c.l)
OrganizerRename(a.l,b.l,c.l,d.l)
AddAddress(a.l,b.l)
GetAddress(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l,i.l)
CheckGrammar(a.l,b.l)
CheckSpelling(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l,i.l,j.l,k.l,l.l,m.l,n.l)
ResetIgnoreAll()
GetSpellingSuggestions(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l,i.l,j.l,k.l,l.l,m.l,n.l,o.l)
GoBack()
Help(a.l)
AutomaticChange()
ShowMe()
HelpTool()
NewWindow(a.l)
ListCommands(a.l)
ShowClipboard()
OnTime(a.l,b.l,c.l)
NextLetter()
MountVolume(a.l,b.l,c.l,d.l,e.l,f.l,g.l)
CleanString(a.l,b.l)
SendFax()
ChangeFileOpenDirectory(a.l)
RunOld(a.l)
GoForward()
Move(a.l,b.l)
Resize(a.l,b.l)
InchesToPoints(a.l,b.l)
CentimetersToPoints(a.l,b.l)
MillimetersToPoints(a.l,b.l)
PicasToPoints(a.l,b.l)
LinesToPoints(a.l,b.l)
PointsToInches(a.l,b.l)
PointsToCentimeters(a.l,b.l)
PointsToMillimeters(a.l,b.l)
PointsToPicas(a.l,b.l)
PointsToLines(a.l,b.l)
Activate()
PointsToPixels(a.l,b.l,c.l)
PixelsToPoints(a.l,b.l,c.l)
KeyboardLatin()
KeyboardBidi()
ToggleKeyboard()
Keyboard(a.l,b.l)
ProductCode(a.l)
DefaultWebOptions(a.l)
DiscussionSupport(a.l,b.l,c.l)
SetDefaultTheme(a.l,b.l)
GetDefaultTheme(a.l,b.l)
get_EmailOptions(a.l)
get_Language(a.l)
get_COMAddIns(a.l)
get_CheckLanguage(a.l)
put_CheckLanguage(a.l)
get_LanguageSettings(a.l)
get_Dummy1(a.l)
get_AnswerWizard(a.l)
get_FeatureInstall(a.l)
put_FeatureInstall(a.l)
PrintOut2000(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l,i.l,j.l,k.l,l.l,m.l,n.l,o.l,p.l,q.l,r.l,s.l)
Run(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l,i.l,j.l,k.l,l.l,m.l,n.l,o.l,p.l,q.l,r.l,s.l,t.l,u.l,v.l,w.l,x.l,y.l,z.l,a1,l,b1.l,c1.l,d1.l,e1.l,f1.l)
PrintOut(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l,i.l,j.l,k.l,l.l,m.l,n.l,o.l,p.l,q.l,r.l,s.l)
get_AutomationSecurity(a.l)
put_AutomationSecurity(a.l)
get_FileDialog(a.l,b.l)
get_EmailTemplate(a.l)
put_EmailTemplate(a.l)
get_ShowWindowsInTaskbar(a.l)
put_ShowWindowsInTaskbar(a.l)
get_NewDocument(a.l)
get_ShowStartupDialog(a.l)
put_ShowStartupDialog(a.l)
get_AutoCorrectEmail(a.l)
get_TaskPanes(a.l)
get_DefaultLegalBlackline(a.l)
put_DefaultLegalBlackline(a.l)
Dummy2(a.l)
get_SmartTagRecognizers(a.l)
get_SmartTagTypes(a.l)
get_XMLNamespaces(a.l)
PutFocusInMailHeader()
get_ArbitraryXMLSupportAvailable(a.l)
EndInterface
Code: Select all
DataSection
IID__Document:
Data.l $0002096B
Data.w $0000,$0000
Data.b $C0,$00,$00,$00,$00,$00,$00,$46
EndDataSection
IID__DocumentStr.s="{0002096B-0000-0000-C000-000000000046}"
Interface _Document Extends IDispatch
get_Name(a.l) ;
get_Application(a.l) ;
get_Creator(a.l) ;
get_Parent(a.l) ;
get_BuiltInDocumentProperties(a.l) ;
get_CustomDocumentProperties(a.l) ;
get_Path(a.l) ;
get_Bookmarks(a.l) ;
get_Tables(a.l) ;
get_Footnotes(a.l) ;
get_Endnotes(a.l) ;
get_Comments(a.l) ;
get_Type(a.l) ;
get_AutoHyphenation(a.l) ;
put_AutoHyphenation(a.l) ;
get_HyphenateCaps(a.l) ;
put_HyphenateCaps(a.l) ;
get_HyphenationZone(a.l) ;
put_HyphenationZone(a.l) ;
get_ConsecutiveHyphensLimit(a.l) ;
put_ConsecutiveHyphensLimit(a.l) ;
get_Sections(a.l) ;
get_Paragraphs(a.l) ;
get_Words(a.l) ;
get_Sentences(a.l) ;
get_Characters(a.l) ;
get_Fields(a.l) ;
get_FormFields(a.l) ;
get_Styles(a.l) ;
get_Frames(a.l) ;
get_TablesOfFigures(a.l) ;
get_Variables(a.l) ;
get_MailMerge(a.l) ;
get_Envelope(a.l) ;
get_FullName(a.l) ;
get_Revisions(a.l) ;
get_TablesOfContents(a.l) ;
get_TablesOfAuthorities(a.l) ;
get_PageSetup(a.l) ;
put_PageSetup(a.l) ;
get_Windows(a.l) ;
get_HasRoutingSlip(a.l) ;
put_HasRoutingSlip(a.l) ;
get_RoutingSlip(a.l) ;
get_Routed(a.l) ;
get_TablesOfAuthoritiesCategories(a.l) ;
get_Indexes(a.l) ;
get_Saved(a.l) ;
put_Saved(a.l) ;
get_Content(a.l) ;
get_ActiveWindow(a.l) ;
get_Kind(a.l) ;
put_Kind(a.l) ;
get_ReadOnly(a.l) ;
get_Subdocuments(a.l) ;
get_IsMasterDocument(a.l) ;
get_DefaultTabStop(a.l) ;
put_DefaultTabStop(a.l) ;
get_EmbedTrueTypeFonts(a.l) ;
put_EmbedTrueTypeFonts(a.l) ;
get_SaveFormsData(a.l) ;
put_SaveFormsData(a.l) ;
get_ReadOnlyRecommended(a.l) ;
put_ReadOnlyRecommended(a.l) ;
get_SaveSubsetFonts(a.l) ;
put_SaveSubsetFonts(a.l) ;
get_Compatibility(a.l,b.l) ;
put_Compatibility(a.l,b.l) ;
get_StoryRanges(a.l) ;
get_CommandBars(a.l) ;
get_IsSubdocument(a.l) ;
get_SaveFormat(a.l) ;
get_ProtectionType(a.l) ;
get_Hyperlinks(a.l) ;
get_Shapes(a.l) ;
get_ListTemplates(a.l) ;
get_Lists(a.l) ;
get_UpdateStylesOnOpen(a.l) ;
put_UpdateStylesOnOpen(a.l) ;
get_AttachedTemplate(a.l) ;
put_AttachedTemplate(a.l) ;
get_InlineShapes(a.l) ;
get_Background(a.l) ;
put_Background(a.l) ;
get_GrammarChecked(a.l) ;
put_GrammarChecked(a.l) ;
get_SpellingChecked(a.l) ;
put_SpellingChecked(a.l) ;
get_ShowGrammaticalErrors(a.l) ;
put_ShowGrammaticalErrors(a.l) ;
get_ShowSpellingErrors(a.l) ;
put_ShowSpellingErrors(a.l) ;
get_Versions(a.l) ;
get_ShowSummary(a.l) ;
put_ShowSummary(a.l) ;
get_SummaryViewMode(a.l) ;
put_SummaryViewMode(a.l) ;
get_SummaryLength(a.l) ;
put_SummaryLength(a.l) ;
get_PrintFractionalWidths(a.l) ;
put_PrintFractionalWidths(a.l) ;
get_PrintPostScriptOverText(a.l) ;
put_PrintPostScriptOverText(a.l) ;
get_Container(a.l) ;
get_PrintFormsData(a.l) ;
put_PrintFormsData(a.l) ;
get_ListParagraphs(a.l) ;
put_Password(a.l) ;
put_WritePassword(a.l) ;
get_HasPassword(a.l) ;
get_WriteReserved(a.l) ;
get_ActiveWritingStyle(a.l,b.l) ;
put_ActiveWritingStyle(a.l,b.l) ;
get_UserControl(a.l) ;
put_UserControl(a.l) ;
get_HasMailer(a.l) ;
put_HasMailer(a.l) ;
get_Mailer(a.l) ;
get_ReadabilityStatistics(a.l) ;
get_GrammaticalErrors(a.l) ;
get_SpellingErrors(a.l) ;
get_VBProject(a.l) ;
get_FormsDesign(a.l) ;
get__CodeName(a.l) ;
put__CodeName(a.l) ;
get_CodeName(a.l) ;
get_SnapToGrid(a.l) ;
put_SnapToGrid(a.l) ;
get_SnapToShapes(a.l) ;
put_SnapToShapes(a.l) ;
get_GridDistanceHorizontal(a.l) ;
put_GridDistanceHorizontal(a.l) ;
get_GridDistanceVertical(a.l) ;
put_GridDistanceVertical(a.l) ;
get_GridOriginHorizontal(a.l) ;
put_GridOriginHorizontal(a.l) ;
get_GridOriginVertical(a.l) ;
put_GridOriginVertical(a.l) ;
get_GridSpaceBetweenHorizontalLines(a.l) ;
put_GridSpaceBetweenHorizontalLines(a.l) ;
get_GridSpaceBetweenVerticalLines(a.l) ;
put_GridSpaceBetweenVerticalLines(a.l) ;
get_GridOriginFromMargin(a.l) ;
put_GridOriginFromMargin(a.l) ;
get_KerningByAlgorithm(a.l) ;
put_KerningByAlgorithm(a.l) ;
get_JustificationMode(a.l) ;
put_JustificationMode(a.l) ;
get_FarEastLineBreakLevel(a.l) ;
put_FarEastLineBreakLevel(a.l) ;
get_NoLineBreakBefore(a.l) ;
put_NoLineBreakBefore(a.l) ;
get_NoLineBreakAfter(a.l) ;
put_NoLineBreakAfter(a.l) ;
get_TrackRevisions(a.l) ;
put_TrackRevisions(a.l) ;
get_PrintRevisions(a.l) ;
put_PrintRevisions(a.l) ;
get_ShowRevisions(a.l) ;
put_ShowRevisions(a.l) ;
Close(a.l,b.l,c.l) ;
SaveAs2000(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l,i.l,j.l,k.l) ;
Repaginate() ;
FitToPages() ;
ManualHyphenation() ;
Select() ;
DataForm() ;
Route() ;
Save() ;
PrintOutOld(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l,i.l,j.l,k.l,l.l,m.l,n.l) ;
SendMail() ;
Range(a.l,b.l,c.l) ;
RunAutoMacro(a.l) ;
Activate() ;
PrintPreview() ;
Goto(a.l,b.l,c.l,d.l,e.l) ;
Undo(a.l,b.l) ;
Redo(a.l,b.l) ;
ComputeStatistics(a.l,b.l,c.l) ;
MakeCompatibilityDefault() ;
Protect2002(a.l,b.l,c.l) ;
Unprotect(a.l) ;
EditionOptions(a.l,b.l,c.l,d.l) ;
RunLetterWizard(a.l,b.l) ;
GetLetterContent(a.l) ;
SetLetterContent(a.l) ;
CopyStylesFromTemplate(a.l) ;
UpdateStyles() ;
CheckGrammar() ;
CheckSpelling(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l,i.l,j.l,k.l,l.l) ;
FollowHyperlink(a.l,b.l,c.l,d.l,e.l,f.l,g.l) ;
AddToFavorites() ;
Reload() ;
AutoSummarize(a.l,b.l,c.l,d.l) ;
RemoveNumbers(a.l) ;
ConvertNumbersToText(a.l) ;
CountNumberedItems(a.l,b.l,c.l) ;
Post() ;
ToggleFormsDesign() ;
Compare2000(a.l) ;
UpdateSummaryProperties() ;
GetCrossReferenceItems(a.l,b.l) ;
AutoFormat() ;
ViewCode() ;
ViewPropertyBrowser() ;
ForwardMailer() ;
Reply() ;
ReplyAll() ;
SendMailer(a.l,b.l) ;
UndoClear() ;
PresentIt() ;
SendFax(a.l,b.l) ;
Merge2000(a.l) ;
ClosePrintPreview() ;
CheckConsistency() ;
CreateLetterContent(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l,i.l,j.l,k.l,l.l,m.l,n.l,o.l,p.l,q.l,r.l,s.l,t.l,u.l,v.l,w.l,x.l,y.l,z.l,a1.l,b1.l,c1.l,d1.l,e1.l,f1.l) ;
AcceptAllRevisions() ;
RejectAllRevisions() ;
DetectLanguage() ;
ApplyTheme(a.l) ;
RemoveTheme() ;
WebPagePreview() ;
ReloadAs(a.l) ;
get_ActiveTheme(a.l) ;
get_ActiveThemeDisplayName(a.l) ;
get_Email(a.l) ;
get_Scripts(a.l) ;
get_LanguageDetected(a.l) ;
put_LanguageDetected(a.l) ;
get_FarEastLineBreakLanguage(a.l) ;
put_FarEastLineBreakLanguage(a.l) ;
get_Frameset(a.l) ;
get_ClickAndTypeParagraphStyle(a.l) ;
put_ClickAndTypeParagraphStyle(a.l) ;
get_HTMLProject(a.l) ;
get_WebOptions(a.l) ;
get_OpenEncoding(a.l) ;
get_SaveEncoding(a.l) ;
put_SaveEncoding(a.l) ;
get_OptimizeForWord97(a.l) ;
put_OptimizeForWord97(a.l) ;
get_VBASigned(a.l) ;
PrintOut2000(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l,i.l,j.l,k.l,l.l,m.l,n.l,o.l,p.l,q.l,r.l) ;
sblt(a.l) ;
ConvertVietDoc(a.l) ;
PrintOut(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l,i.l,j.l,k.l,l.l,m.l,n.l,o.l,p.l,q.l,r.l) ;
get_MailEnvelope(a.l) ;
get_DisableFeatures(a.l) ;
put_DisableFeatures(a.l) ;
get_DoNotEmbedSystemFonts(a.l) ;
put_DoNotEmbedSystemFonts(a.l) ;
get_Signatures(a.l) ;
get_DefaultTargetFrame(a.l) ;
put_DefaultTargetFrame(a.l) ;
get_HTMLDivisions(a.l) ;
get_DisableFeaturesIntroducedAfter(a.l) ;
put_DisableFeaturesIntroducedAfter(a.l) ;
get_RemovePersonalInformation(a.l) ;
put_RemovePersonalInformation(a.l) ;
get_SmartTags(a.l) ;
Compare2002(a.l,b.l,c.l,d.l,e.l,f.l) ;
CheckIn(a.l,b.l,c.l) ;
CanCheckin(a.l) ;
Merge(a.l,b.l,c.l,d.l,e.l) ;
get_EmbedSmartTags(a.l) ;
put_EmbedSmartTags(a.l) ;
get_SmartTagsAsXMLProps(a.l) ;
put_SmartTagsAsXMLProps(a.l) ;
get_TextEncoding(a.l) ;
put_TextEncoding(a.l) ;
get_TextLineEnding(a.l) ;
put_TextLineEnding(a.l) ;
SendForReview(a.l,b.l,c.l,d.l) ;
ReplyWithChanges(a.l) ;
EndReview() ;
get_StyleSheets(a.l) ;
get_DefaultTableStyle(a.l) ;
get_PasswordEncryptionProvider(a.l) ;
get_PasswordEncryptionAlgorithm(a.l) ;
get_PasswordEncryptionKeyLength(a.l) ;
get_PasswordEncryptionFileProperties(a.l) ;
SetPasswordEncryptionOptions(a.l,b.l,c.l,d.l) ;
RecheckSmartTags() ;
RemoveSmartTags() ;
SetDefaultTableStyle(a.l,b.l) ;
DeleteAllComments() ;
AcceptAllRevisionsShown() ;
RejectAllRevisionsShown() ;
DeleteAllCommentsShown() ;
ResetFormFields() ;
SaveAs(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l,i.l,j.l,k.l,l.l,m.l,n.l,o.l,p.l) ;
get_EmbedLinguisticData(a.l) ;
put_EmbedLinguisticData(a.l) ;
get_FormattingShowFont(a.l) ;
put_FormattingShowFont(a.l) ;
get_FormattingShowClear(a.l) ;
put_FormattingShowClear(a.l) ;
get_FormattingShowParagraph(a.l) ;
put_FormattingShowParagraph(a.l) ;
get_FormattingShowNumbering(a.l) ;
put_FormattingShowNumbering(a.l) ;
get_FormattingShowFilter(a.l) ;
put_FormattingShowFilter(a.l) ;
CheckNewSmartTags() ;
get_Permission(a.l) ;
get_XMLNodes(a.l) ;
get_XMLSchemaReferences(a.l) ;
get_SmartDocument(a.l) ;
get_SharedWorkspace(a.l) ;
get_Sync(a.l) ;
get_EnforceStyle(a.l) ;
put_EnforceStyle(a.l) ;
get_AutoFormatOverride(a.l) ;
put_AutoFormatOverride(a.l) ;
get_XMLSaveDataOnly(a.l) ;
put_XMLSaveDataOnly(a.l) ;
get_XMLHideNamespaces(a.l) ;
put_XMLHideNamespaces(a.l) ;
get_XMLShowAdvancedErrors(a.l) ;
put_XMLShowAdvancedErrors(a.l) ;
get_XMLUseXSLTWhenSaving(a.l) ;
put_XMLUseXSLTWhenSaving(a.l) ;
get_XMLSaveThroughXSLT(a.l) ;
put_XMLSaveThroughXSLT(a.l) ;
get_DocumentLibraryVersions(a.l) ;
get_ReadingModeLayoutFrozen(a.l) ;
put_ReadingModeLayoutFrozen(a.l) ;
get_RemoveDateAndTime(a.l) ;
put_RemoveDateAndTime(a.l) ;
SendFaxOverInternet(a.l,b.l,c.l) ;
TransformDocument(a.l,b.l) ;
Protect(a.l,b.l,c.l,d.l,e.l) ;
SelectAllEditableRanges(a.l) ;
DeleteAllEditableRanges(a.l) ;
DeleteAllInkAnnotations() ;
AddDocumentWorkspaceHeader(a.l,b.l,c.l,d.l,e.l) ;
RemoveDocumentWorkspaceHeader(a.l) ;
Compare(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l) ;
RemoveLockedStyles() ;
get_ChildNodeSuggestions(a.l) ;
SelectSingleNode(a.l,b.l,c.l,d.l) ;
SelectNodes(a.l,b.l,c.l,d.l) ;
get_XMLSchemaViolations(a.l) ;
get_ReadingLayoutSizeX(a.l) ;
put_ReadingLayoutSizeX(a.l) ;
get_ReadingLayoutSizeY(a.l) ;
put_ReadingLayoutSizeY(a.l) ;
EndInterface
Finally the Documents interface.
Code: Select all
DataSection
IID_Documents:
Data.l $0002096C
Data.w $0000,$0000
Data.b $C0,$00,$00,$00,$00,$00,$00,$46
EndDataSection
IID_DocumentsStr.s="{0002096C-0000-0000-C000-000000000046}"
Interface Documents Extends IDispatch
get__NewEnum(a.l) ;
get_Count(a.l) ;
get_Application(a.l) ;
get_Creator(a.l) ;
get_Parent(a.l) ;
Item(a.l,b.l) ;
Close(a.l,b.l,c.l) ;
AddOld(a.l,b.l,c.l) ;
OpenOld(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l,i.l,j.l,k.l) ;
Save(a.l,b.l) ;
Add(a.l,b.l,c.l,d.l,e.l) ;
Open2000(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l,i.l,j.l,k.l,l.l,m.l) ;
CheckOut(a.l) ;
CanCheckOut(a.l,b.l) ;
Open2002(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l,i.l,j.l,k.l,l.l,m.l,n.l,o.l,p.l) ;
Open(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l,i.l,j.l,k.l,l.l,m.l,n.l,o.l,p.l,q.l) ;
EndInterface
To use these interfaces use the following code.
Code: Select all
IncludeFile "Word_Application.pb"
IncludeFile "Word_Documents.pb"
IncludeFile "Word_Document.pb"
#CLSCTX_INPROC_SERVER = 1
#CLSCTX_INPROC_HANDLER = 2
#CLSCTX_LOCAL_SERVER = 4
#CLSCTX_REMOTE_SERVER = 16
#vbNormal = 0
Global oWord._Application
Global oDocs.Documents
Global oDoc._Document
Procedure.s Uni2Ansi(unicodestr.l)
lenA = WideCharToMultiByte_(#CP_ACP, 0, unicodestr, -1, 0, 0, 0, 0);
ansistr.s = Space(lenA)
If (lenA > 0)
WideCharToMultiByte_(#CP_ACP, 0, unicodestr, -1, @ansistr, lenA, 0, 0);
EndIf
ProcedureReturn ansistr
EndProcedure
Procedure.l Ansi2Uni(ansistr.s)
lenA.l = Len(ansistr)
lenW = MultiByteToWideChar_(#CP_ACP, 0, ansistr, lenA, 0, 0)
If (lenW > 0) ; Check whether conversion was successful
unicodestr = SysAllocStringLen_(0, lenW)
MultiByteToWideChar_(#CP_ACP, 0, ansistr, lenA, unicodestr, lenW)
result = unicodestr
SysFreeString_(unicodestr)
ProcedureReturn result
Else
ProcedureReturn 0
EndIf
EndProcedure
;- Start program
OleInitialize_(0)
If CoCreateInstance_(?CLSID_Application,0,#CLSCTX_LOCAL_SERVER,?IID__Application,@oWord)<>0
MessageRequester("Warning:","Couldn't init oWord",0)
End
EndIf
Debug oWord
oWord\put_WindowState(#vbNormal)
oWord\put_Height(300)
oWord\put_Width(400)
oWord\put_Left(40)
oWord\put_Top(300)
oWord\put_Caption(Ansi2Uni("Word from PureBasic"))
oWord\put_Statusbar(Ansi2Uni("Date: " + FormatDate("%mm/%dd/%yyyy", Date())))
oWord\put_Visible(#True)
oWord\Quit(#False,#False,#False)
oWord\Release()
OleUninitialize_()
End
Code: Select all
oWord\get_NewDocument(@oDoc)