WinBatch Tech Support Home

Database Search

If you can't find the information using the categories below, post a question over in our WinBatch Tech Support Forum.

TechHome

Samples from Users

Can't find the information you are looking for here? Then leave a message over on our WinBatch Tech Support Forum.

Append RTF files Using COM


THis script will merge 2 RTF files via COM OLE OCX. You will need to have Microsoft's RichTx32.ocx file installed and registered as a COM object on your PC so that the RICHTEXT.RichtextCtrl.1 prog ID is found. RichTx32.ocx comes with VB 6 and is often distributed with many VB created applications, so you might already have it on your PC... if not, you can figure out how to get it and install it properly.. just google it. RICHTEXTCOMTEST.WBT
; Simple example of how to merge RTF files using Microsoft's (RichTx32.ocx) RICHTEXT.RichtextCtrl.1 COM control shipped with Visual Basic v6
; If you don't have RichTx32.ocx installed and registered on your PC, then I'm sure you can get it easily enough... google it!
; Once you have the required ocx and it is installed properly (might need to use RegSvr32 to register it), then you will need to ...
; Change the lines for the source RTF files in the Dialog Init area  that look like this:
; RTObj.LoadFile("C:\Document1.rtf") ; Load First RTF file  <<<<<<<<<<***************** CHANGE TO YOUR FILE NAME **************
; where the path and file name are your RTF files
; kept simple for this demo, but you could extend it much further if you like and have a FileOpen control prompt for the source files etc. etc.
; Enjoy  ....IFICantBYTE 2007

#DefineSubRoutine InitDialogConstants()
;DialogprocOptions Constants
MSG_INIT=0 ; The one-time initialization
MSG_TIMER=1 ; Timer event
MSG_BUTTONPUSHED=2 ; Pushbutton or Picturebutton
MSG_RADIOPUSHED=3 ; Radiobutton clicked
MSG_CHECKBOX=4 ; Checkbox clicked
MSG_EDITBOX=5 ; Editbox or Multilinebox
MSG_FILESELECT=6 ; Filelistbox
MSG_ITEMSELECT=7 ; Itembox
MSG_COMBOCHANGE=8 ; Combobox/Droplistbox
MSG_CALENDAR=9 ; Calendar date change
MSG_SPINNER=10 ; Spinner number change
MSG_CLOSEVIA49=11 ; Close clicked (Enabled via DialogProcOptions 1002
MSG_FILEBOXDOUBLECLICK=12 ; Get double-click message on a FileListBox
MSG_ITEMBOXDOUBLECLICK=13 ; Get double-click message on an ItemBox
MSG_COMEVENT=14 ; COMCONTROL Event notification from DialogObject (NOT DialogProcOptions)

DPO_DISABLESTATE=1000 ; codes -1=GetSetting 0=EnableDialog 1=DisableDialog
DPO_CHANGEBACKGROUND=1001 ; -1=Get Current otherise bitmap or color string
DPO_CHANGESYSMENU=1002 ; -1=Get Current 0=none 1=close 2=close/min 3=close/max 4=close/min/max
DPO_CHANGETITLE=1003 ; Set/Get Dialog Title - (-1 to get)

;DialogControlState Constants
DCSTATE_SETFOCUS=1 ; Give Control Focus
DCSTATE_QUERYSTYLE=2 ; Query control's style
DCSTATE_ADDSTYLE=3 ; Add control style
DCSTATE_REMOVESTYLE=4 ; Remove control style
DCSTATE_GETFOCUS=5 ; Get control that has focus
DCSTATE_MOVEMOUSEOVER=6 ; Move the mouse over the control

DCSTYLE_INVISIBLE=1 ; Set Control Invisible
DCSTYLE_DISABLED=2 ; Set Control Disabled
DCSTYLE_NOUSERDATA=4 ; Note: Setable via DialogControlState function ONLY SPINNER control only
DCSTYLE_READONLY=8 ; Sets control to read-only (user cannot type in data) EDITBOX MULTILINEBOX SPINNER
DCSTYLE_PASSWORD=16 ; Sets 'password mode' where only *'s are displayed EDITBOX
DCSTYLE_DEFAULTBUTTON=32 ; Sets a button as the default button PUSHBUTTON PICTUREBUTTON
DCSTYLE_DIGITSONLY=64 ; Set edit box to accept digits only EDITMOX MULTILINEBOX
DCSTYLE_FLAT=128 ; Makes a 'flat' hyperlink-looking button PUSHBUTTON PICTUREBUTTON
DCSTYLE_NOADJUST=256 ; Turns off auto-height adjustment ITEMBOX FILELISTBOX
DCSTYLE_TEXTCENTER=512 ; Center text in control VARYTEXT STATICTEXT
DCSTYLE_TEXTRIGHT=1024 ; Flush-Right text in control VARYTEXT STATICTEXT
DCSTYLE_NOSELCURLEFT=2048 ; No selection, cursor left EDITBOX MULTILINEBOX
DCSTYLE_NOSELCURRIGHT=4096; No selection, cursor right EDITBOX MULTILINEBOX

;DialogControlSet / DialogControlGet Constants
DC_CHECKBOX=1 ; CHECKBOX
DC_RADIOBUTTON=2 ; RADIOBUTTON
DC_EDITBOX=3 ; EDITBOX MULTILINEBOX
DC_TITLE=4 ; PICTURE RADIOBUTTON CHECKBOX PICTUREBUTTON VARYTEXT STATICTEXT GROUPBOX PUSHBUTTON
DC_ITEMBOXCONTENTS=5 ; ITEMBOX FILELISTBOX DROPLISTBOX
DC_ITEMBOXSELECT=6 ; ITEMBOX FILELISTBOX DROPLISTBOX
DC_CALENDAR=7 ; CALENDAR
DC_SPINNER=8 ; SPINNER
DC_MULTITABSTOPS=9 ; MULTILINEBOX
DC_ITEMSCROLLPOS=10 ; ITEMBOX FILELISTBOX
DC_BACKGROUNDCOLOR=11 ; RADIOBUTTON CHECKBOX VARYTEXT STATICTEXT GROUPBOX PUSHBUTTON ITEMBOX FILELISTBOX DROPLISTBOX SPINNER EDITBOX MULTILINEBOX
DC_PICTUREBITMAP=12 ; PICTURE PICTUREBUTTON
DC_TEXTCOLOR=13 ; RADIOBUTTON CHECKBOX VARYTEXT STATICTEXT GROUPBOX PUSHBUTTON ITEMBOX FIELLISTBOX DROPLISTBOX SPINNER EDITBOX MULTILINEBOX
DC_ITEMBOXADD=14 ; ITEMBOX FILELISTBOX DROPLISTBOX
DC_ITEMBOXREMOVE=15 ; ITEMBOX FILELISTBOX DROPLISTBOX
DC_RADIOVALUE=16 ; RADIOBUTTON


;DialogObject constants
DLGOBJECT_ADDEVENT=1 ; Call dialog callback when the specified event occurs
DLGOBJECT_STOPEVENT=2 ; Stop calling dialog callback when an event previously requested with
DLGOBJECT_GETOBJECT=3 ; Return an object references to the specified control
DLGOBJECT_GETPICTURE=4 ; Create and return an object reference to a picture object

;Return code constants
RET_DO_CANCEL=0 ; Cancels dialog
RET_DO_DEFAULT= -1 ; Continue with default processing for control
RET_DO_NOT_EXIT= -2 ; Do not exit the dialog
Return
#EndSubRoutine
;============================================================
;============================================================
;============================================================



#DefineFunction MyDialogCallbackProc(MyDialog_Handle,MyDialog_Message,MyDialog_ID,MyDialog_EventInfo,rsvd)
InitDialogConstants() ; Initialize Dialog Constants
Switch MyDialog_Message ; Switch based on Dialog Message type
Case MSG_INIT ; Standard Initialization message
; DialogProcOptions(MyDialog_Handle,MSG_TIMER,1000)
DialogProcOptions(MyDialog_Handle,MSG_BUTTONPUSHED,@TRUE)
; DialogObject(MyDialog_Handle,003,DLGOBJECT_ADDEVENT,"ComEventName",1000)
; DialogObject(MyDialog_Handle,009,DLGOBJECT_ADDEVENT,"ComEventName",2000)

RTObj = DialogObject(MyDialog_Handle, 003, DLGOBJECT_GETOBJECT)
RTObj.LoadFile("C:\Document1.rtf") ; Load First RTF file  <<<<<<<<<<***************** CHANGE TO YOUR FILE NAME **************
RTxt1 = RTObj.TextRTF ; Set RTxt1 as all the RTF data from the first file loaded
RTObj.LoadFile("C:\Document3.rtf") ; Load Second RTF file <<<<<<<<<<***************** CHANGE TO YOUR FILE NAME **************
RTObj.SelRTF = RTxt1 ; Set the selection (insert) RTxt1 data from first file


Return(RET_DO_DEFAULT)

Case MSG_BUTTONPUSHED

Switch MyDialog_ID
Case 001 ; ID 001 SAVE
RTObj = DialogObject(MyDialog_Handle, 003, DLGOBJECT_GETOBJECT)
RTObj.SaveFile("C:\DocumentMerged.rtf") ; Save the newly merged file
RTObj = "" ; Close it
Return(RET_DO_DEFAULT)

Case 002 ; ID 002 Cancel
RTObj = "" ; Close it
Return(RET_DO_DEFAULT)

;return(RET_DO_NOT_EXIT)

EndSwitch ; MyDialog_ID
Return(RET_DO_DEFAULT)

EndSwitch ; MyDialog_Message
Return(RET_DO_DEFAULT)
#EndFunction ; End of Dialog Callback MyDialogCallbackProc

;============================================================
;============================================================
;============================================================


MyDialogFormat=`WWWDLGED,6.1`

MyDialogCaption=`Preview of merged RTF files... click and use cursor keys to move up and down in it - SAVE button to save merged file to C:\`
MyDialogX=010
MyDialogY=010
MyDialogWidth=510
MyDialogHeight=299
MyDialogNumControls=003
MyDialogProcedure=`MyDialogCallbackProc`
MyDialogFont=`DEFAULT`
MyDialogTextColor=`DEFAULT`
MyDialogBackground=`DEFAULT,DEFAULT`
MyDialogConfig=0

MyDialog001=`009,277,036,012,PUSHBUTTON,DEFAULT,"SAVE",1,1,32,DEFAULT,DEFAULT,DEFAULT`
MyDialog002=`463,277,036,012,PUSHBUTTON,DEFAULT,"Cancel",0,2,DEFAULT,DEFAULT,DEFAULT,DEFAULT`
MyDialog003=`009,009,490,260,COMCONTROL,DEFAULT,"RICHTEXT.RichtextCtrl.1",DEFAULT,4,DEFAULT,DEFAULT,DEFAULT,DEFAULT`

ButtonPushed=Dialog("MyDialog")

Article ID:   W17456
File Created: 2008:04:10:15:10:48
Last Updated: 2008:04:10:15:10:48