Telescript West, Inc.

1504 Dartmouth Ave

Austin, TX  78757

office (512) 302-0766


Help Icon

To contact Telescript Technical Support, please visit  Telescript Help Desk and submit a "ticket" (service request.)  You can also find the answers to common questions in the  Knowledgebase (FAQ).

 Telescript Teleprompting Equipment Logo
Revision history for TeleScript software:

TeleScript TECH
TeleScript AV
TeleScript ProNEWS


TeleScript TECH
TeleScriptTECH Installer -- TeleScriptTECH Ver10.1.2.102 Rev Dec 1, 2016

Dec 1, 2017, Ver.
  1. Set text margins in increments of 1/4"
Oct 30, 2017, Ver.
  1. Increased limit on file size to about 1,000,000 characters (about 625 book pages.)
Aug 24, 2017 Ver
  1. Fixed logic error in NEXT/PREV marker in PROMPT, while scrolling
Aug 2, 2017 Ver
  1. Option to paste with attributes of adjacant text
  2. Enabled TABBING in Find/Replace dialogs
  3. Repaired typos in menus
  4. Adjusted accelerator key for Inverse
  5. Added accelerators for "White on Black" and "Black on White"
2017Apr18 TECH VER
  1. Check to see if other copies are running.
2016Dec22 TECH VER
  1. Fixed a bug in assigning the position of the secondary (external) monitor. This also affected the placement of the reflex window
  2. Fixed error in TSurfaceManager()::TSMMeasureTargetHeight to prevent word or line doubling.
2016Nov15- Ver
  1. Changed the manner in which TECH determines the resolution of the monitors Windows 10 is reporting a lower resolution when the user sets "Change the size of text, apps, and other items" to above 100%, even though resolution remains the same.
  2. Changed error in Font Keyboard Accelerator in context menu to
2016Aug02 Ver
  1. Fixed bug in Inverse Function
2016 June 1 Version
  1. Changed 10 button controller [PRV] to Previous Bookmark
  2. Changed 10 button controller [NXT] to Next Bookmark
  3. Revision of help files 3/15/2016
  4. Script Path displayed in Windows Title Bar with '*' if changed
  5. arrow position / active display on edit screen
  6. Fixed "Save As..." bug and added Save As.. to menu bar
  7. QuickZoom ratio setting in Preferences
  8. Some labels changed in preferences
  9. Added a preferences page, and moved some items.
  10. Confirm exit message box
  11. Fixed bookmark default value
  12. [PRV] / [NXT], [INV], and [FONT GROW]/[FONT SHRINK] in Prompter mode
  13. [GREEN] on 10 button controller goes to Prompt and Scroll
  14. [BLUE] on 10 button controller goes to Edit and QuickZoom
  15. Fixed Reflex for all flip modes
  16. XK12 Options set in preferences for markers or load/save
  17. [QUICKZOOM] goes to Edit / QuickZoom
2016 Feb 16
  1. Fixed compatibility with Windows 10
  2. Added Bookmark function
  3. Added Find/Replace function
  4. Improved cooperation with other windows
083113 JS - Version
  1. 1. Minor revisions and bug fixes.
  2. 2. Corrected implementation of MEM, RCL functions.
  3. 3. Added power
051613 JS
  1. Recompiled with modified files.
  2. Windowed main edit window
  3. Added DINF for persisten D3D objects
  4. Updated reading of PI with startup defaults, and -Y and -Z options
  5. Corrected several minor errors
  6. Revised Preferences dialog for easier selection of monitor configuration.
  7. Corrected right click on arrow for dual monitor use.
  8. Hot-swap AR and PI controllers w/confirmation dialog for AR.
  9. Suspend prevention
  10. Regression tested for release.
030312 JS - build
1. Minor tweaks

030312 JS - build
  1. 1. Inverse modification like TPRO and TAV
  2. 2. Fixed potential memory leak in ConvertDoc functions
012712 JS - build
1. Easy Mouse/Touch clicks in center of arrow.
Edit Mode - left click = prompt
Prompt Mode - right click = edit
Prompt Mode stopped - left click = go
Prompt Mode scrolling - left/right click = stop

120611 JS - build
1. Added <CTRL+ALT+D>, minimize edit window
2. Modified Sentinel Protection initialization

112111 JS - build
1. Fixed problem with INV from controller
2. Fixed Mem/Rcl
3. Added some support functions

102411 JS Build
1. Support for 10 Button Controller with auto-arbitration
2. Support for multiple foot control with auto-arbitration
3. Changed splash screen to new TECH logo
4. Added "Wait" dialog intro to prompting.
5. Added MS-Conversion Pack support & support modules

052511 JS - Buile First TECH Release
1. Added work around for HKLM access error on startup
2. Added Hello Dialog
3. Added link to TelescriptWest.com
4. Added link to Support Web site (telescriptservice.com)
5. Checked all default PI values for validity
6. Added creation of TeleScriptTECHData folder


TeleScript AV
TeleScriptAV Installer -- TeleScript AV V7.3.1.034, Rev Jan 24, 2018

Jan 24, 2018, Ver
  1. Indicate altered runlist with '*' in the Windows title bar.
  2. Redraw runlist after runlist is changed showing altered script with '*'.
2017Sep18 Ver
  1. Changed how attributes are applied when no text is selected. All apply only to the insertion point, except "unhide" which applies to the entire script.
2017Jul10 Ver
  1. Change in selecting and storing default script font
  2. KeyWord revision to allow applying only style to selection without stored text
  3. Timed License Code
  4. Prompter preview window - can be used for flipped display.
2016Nov07 - Ver
  1. Additional Text Attribute (Shadow)
  2. TAV Properly reshows taskbar if hidden by TAV
  3. Hides text cursor as well as mouse cursor if "Hide Cursor while Prompting" is selected in Preferences.
  4. Command line switch, -T, make scroling window TOPMOST. Use with caution! TOPMOST windows cover all other "non-topmost" windows, including the taskbar, and can make it difficult to perform other Windows tasks.
  1. Default Lexicon folder renamed
  2. Fixed bug in application of attributes.
2016Feb08 Ver:
  1. Changed the mechanism of attribute application... if attribute is not consistent throughout selection, then apply attribute throughout selection.
  2. Changed criteria for applilcation of attributes -- if no text is selected, apply to entire script.
  3. NORMAL will remove all the following attributes:
  4. Added Unhide All attribute
  5. <F2> reassigned to Toggle Runlist
  6. Alternate accellerator assigned to ZoomIn/ZoomOut (<Ctrl+Alt+Keypad6>/<Ctrl+Alt+Keypad4>) to avert issue with Intel Hotkeys
  7. Linked with revised SSCD32_REL.DLL, U06
  8. Spell check 1) un-hides all text, 2) unhides and rehides bookmarks
  9. Added Single Right Quote (Unicode U+2019, used by MS-Word) to characters skipped by Spell Check Engine
2015 Sep 02 - Ver
  1. Changed font selection to be more like TECH... if text is selected, apply font to selection, otherwise, all.
  2. Script selection is used to initialize "Apply to All Text", but user can override by selecting other box.
  3. If SCF_ALL, then make default font for scripts
  4. Removed the "Make Default" checkbox.
2015 Aug 13 2015 - TAV
  1. Modified behavior of Font selection dialog.
  2. Added "Use attribute" check box.
2015 July 3 2015 - TAV - Cumulative changes in "Gold" Version Sep 12 2012 - Jul 3 2015
  1. Corrected bug in naming of Sample File Runlist
  2. Option to hide mouse cursor while scrolling (Tools/Preferences/Controllers)
  3. Provided work-around for difficulty loading .DOC and .DOCX when linking forward.
  4. Preference to set 8 or 16 bit mode when starting TAV in Win 8. Warning dialog override.
  5. Line to top hot key
  6. QuickZoom in and out -- quick edit hot key -- zoom out by predetermined amount, and on normal, set line to top as preference.
  7. Standardized AboutBox function (all TeleScript software)
  8. Maximum sctrl port determined by PI (PIGetSctrlPortMax())
  9. Changed insertion of "\uNNNNN " and character count in XmlUtility::CopyToOutputBuffer() -- XMLUtility
  10. Additional diagnostic lines
  11. Minor change to add-in manager to enable "Apply" when check box state changes.
  12. PI Engineering XK-12 controller interface
  13. Made XK-12, and footpedals "hot swappable"
  14. Made AR Controller "hot swappable"
  15. Smoother D3D scrolling with fallback to DDraw for unsupported systems. / Win8 acceptable
  16. Editable limit to serial port (SctrlPortMax=[0...256])
  17. Changed port ID's to software generation.
  18. Vista minimum requirement
  19. 7.3 splash and icons
  20. Optional Import of 7.2 Settings
  21. <Ctrl+D> Dlg Ctrl Toggle
  22. Modified startup defaults:

    Use Runlist
    Always on Top
    Forward Linking Enabled
    Rev Link defeated
    Add opened scripts to existing runlist
    Save runlist on close (if changed)

    Set to midpoint
    Line to Top on Exit

    Set to 8 by default

  23. Insert header info in TPX or selected scripts. / PI Header info added
  24. Verified that <Ctrl+Shift+0> shortcut works... must be fixed at Windows level
  25. Corrected error in keyword copy to clibboard feedback message which caused program crash
  26. Corrected Paragraph Properties Apply to Selection
  27. Changed Runlist Save As... to perform Export if the path is changed.
  28. Changed Demo Mode dialog to 20 seconds / 8 times / and new dialog images.
  29. Copyright changed to TSWTX MultiMedia Development
  30. Corrected bug in PIDHID initializations
  31. Corrected bug which renamed runlist when a script was added under some circumstances.
  32. Corrected bug in Up/Down buttons in Runlist Dialog
  33. Adapted Font selection dialog to new Windows standards.
  34. Implement method to lock out multiple instances of TeleScript AV
  35. Corrected bug in HKLM version import, TavProgramInfo::PIImport7DOT2Setting()
  36. TavProgramINfo::ProgramInfoInit() -- check if previous version registry information exists before displaying import message
  37. Changed the manner in which runlist is loaded as follows:
      When a runlist is created, a new folder will be created in the default /Scripts folder.... all new scripts will be created in this folder.
      When runlist are loaded, scritps which are "relative (ie, do not include a fully qualified path) will be prepended with the unlist path
      Runlists may be "loaded' or "imported". Imported runlist will be "loaded" into a new folder in the default Scripts path.
  38. Added sync byte to SK -- allows use of Listec controller with properly programmed keys.
  39. Display sync byte on About box
  40. Author = TSWTX Multimedia Development
  41. Corrected error in 10 btn control initialization
  42. Linked with SSCE Ver U05 to correct spell check errors.
  43. Changed security access request to HKLM
  44. Fixed bug in Friendly Names -- was nulling in SCPT when script closed...
  45. Cleaned up tabs in friendly name
  46. ENPS Dump to Prompter cleanup

GREEN VERSION -- Legacy XP Compatible

2012 Aug 26, Ver
  • 1. Changed accelerator for Next/Prev to Sh+F8/Sh+F9 to avoid conflict with ScreenBlanker
  • 2. AddIns Manager
  • 3. Fixed DefaultPaths to use Personal Folders
  • 4. Changed how program searches for keyword file
2012 May 16 27 Ver
  • 1. Recompiled with modified XmlUtility.lib
2012 Apr 27 Ver
  • 1. Added state flags to XmlUtility and implemented in TavXmlBufferProcess()
  • 2. Changed when defaults are applied to re in loading TPX files
2012 Mar 25 Ver
1. Added error dialog message after unsuccessful save of xps_setup
2. Fade to black/white when reverse linking.
3. Bug fix... maximum log file size was set too low
4. Write preferences changes to log file
5. Two messages added to error returns in TavPropertyPage()
6. Stop prompter before entering Preferences
7. Improved reporting of controller detection in Preferences/Find all controllers.

2012 Mar 03 - Ver
1. Fixed memory leak in ConvertDoc functions
2. Added additional defined .TPX tag and to XMLBufferProcess
3. Changed Inverse to behave like Tpro mod.

2012 Jan 27 - Ver

1. Added confirmation message box after saving Print Setup

2011 Dec 19 Ver
1. KeyWord dialog was not setting "keep attr" and "keep color" according to saved preferences.

2011 Dec 05 Ver
1. Updated Sentinel Pro interface according to SafeNet support documents
2. Added "Upgrade" and "Online Suppot" items to help menu

2011 Oct 18 Ver
1. Fixed not asking to save changed script in single script mode
2. Fixed disappearing script if "Cancel" selected in Save Script Messagebox
in Runlist mode.

2011 Sep 26 Ver
1. Added additional log message for DOC conversion interface.

2011 Sep 14 Ver
1. Repaired the program flow to allow double click of
registered extensions to load properly, .TRL, .TPW, or any
other valid script if modified in system.

2011 July 11 Ver
2011 July 19 Ver
Misc. internal modifications for system maintenance.

062811 JS - Version
1. Added speed control using mouse wheel.
2. Added wheel/cursor to Preferences dialog and to registry data
3. Logs ControllerOptions

062011 JS - Version, 117
062111 JS - Ver
1. Fixed some bugs in Remote relating to the use of the rl filespec
2. 117 -- addded UpdateRemote on Remote Menu
3. UpdateRemote saves a currently unsaved script before updating
4. Open Script when not in Add To Runlist mode is less abrupt.
5. Added UpdateRemote button to runlist dialog.
6. Corrected a couple of minor issues in remote operation.

060611 JS - Version
1. Changed access rights access to registry data
2. Improved handling of default paths, apps... creates TAV app path.
3. Improved handling of potential HKLM or HKCU error in Windows 7 32/64
4. "Reset defaults selection on next restart" added to Preferences dialog.
5. Corrected some poor choices for DataSafetm default values.
6. -Z added to command lines reset defaults

030711 JS - Ver
1. Support for multiple xKeys footpedals

020511 JS - Ver
1. On Controller property page, SCtrlTimeout was not being recorded correctly.

012711 JS - Version
1. Added code in ProgramInfo to initialize the Spell Check dictionary path and lexicon files.
2. Added menu access to dictionary dialog (SSCE_EditLexDlg())
3. Will display MessageBox on completion of Spell Check
4. Fixed bug in Go to Bookmark which left user hanging if no bookmarks were found.
(nothing at all happened except in log file)
5. Completed typing of all function and vars which had been originated as assumed type int.

012511 JS - Version
1. Added to PIGetDefaultScriptPath() to create paths in MyDocuments folder when program is started.
2. Renewed copyright - 2011

011511 JS - Ver (108) 1. ENPS Dat file bug fixed
2. First build with VS2010, PSDK7.0A and DX-SDK June 2010

122010 JS - Ver
1. These minor bug fixes:
a. Changed message in TavMessageLog::TavMessageLogKill() from "Error closing logfile" to simply "Closing logfile" which is the accurate description of the action.
b. Added TavControlDevice::ControlDeviceInit() diagnostic messages for the startup of PIEHID, or success if a handle assigned. Before, it didn't log the reason for inability of PIEHID to start.
c. changed size of TCHAR array in TproProgramInfo::PIDumpSettingsToLog() to 0x1800... there was not sufficient storage to handle all setting info.
d. Added /r/n after user info, and before Windows Version in MessageLog.

112910 JS - Ver
1. Fixed small bug in TavRunlistData::RLDAppendToList() in the function TavRunlistData::RLDPrependRlSourcePath() if the path is "relative", that is, it does not contain root information, then I added PathStripPath to remove all but the filename. As it was, the function had problems with shorthand filenames such as ..\filename.rtf.

102510 JS - Ver
1. Minor bug fixes in HelloDlg and Preferences (typos)
2. Additional Initialization error alalysis, rewrite of TAVAnalyzeInitializationError()
3. Updated Get/Set fns in TAVGlobalData module.
4. Removed (fixed) all untyped int functions and int vars in accordance with C++ standard.

100610 JS - Ver
1. Added SK upgrade to SDK71... requires 7.6 runtime
2. About box shows security key driver information
100310 JS - Ver
1. minor typo fix

100310 JS - Ver
1. Fixed problem in initialization of HDEVMODE which cause incorrect values to be inserted in PrintDlgEx(), and possibly exhaustion of resources.
1. Successfully compiled and tested 64bit compatibility.

Version 091510 JS
1. I had somehow removed timer preferences when I redid the propterty pages. This version restores the Timer Properties in Prop page 9... new tab.
Version 060710 JS
1. PageSetupDataInit() returns false if no default printer is detected. NOTE: on a customers XP computer with no default printer set, the program will seem to hang -- this is the dread MS PageSetupDlg() difficulty, the same one that takes forever to time out when an XP network printer is defaulted on a Vista computer. Win 7 seems to fix this problem.
2. Changed the manner in which the transtion between Single Script to Runlist modes is done. See TavWinMain::TPWRunlistMode()
3. Added HelloDlg to help users get started. See TelescriptAV::TAVOnHelloDlg()

Ver JS 2010May7
1. Fixed funky __FUNCTION__ messages in three modules.

Ver JS 2010Feb08
1. Added pih support
2. Diagnosing why PageSetupDlg() hangs with network default printer in Vista... it does eventually return, but after an extraordinarily long interval.
3. Moved Controllers to new properties page, 8
4. Added items to property page: sctrl timeout, pedal gradient
5. Added foot pedal control module and preferences for gradient, center pedal options, and r/l pedal when stopped.

Ver JS 2010Feb08
1. Corrected bug in ProgramInfo.cpp that defaulted PARAFORMAT2::lineSpacing to 200 instead of 20.
2. Fine tuned ReadDatProc() so that characters would not be skipped in the rare, but likely event that the output buffer would be full when a non CR/LF char is read.
3. Moved READ NCS/DAT behind TNR key.

Ver JS 2010 Jan 25
1. Added ENPS/NCS/DAT load...

Ver JS 2010 Jan 25
1. Recompiled with corrected XMLUtility

Ver 2009Dec29
1. Conform printer functions to those developed for TPro, V108
2. Corrected some messages
3. Changed to /LTCG and /O2 options
Ver 2009Jun27
1. Added "Clean" button to Logging Tab on Property Pages.

Ver 2009Jun26
1. Corrected reading of Win32_OperatingSystem
2. Fixed minor bugs in TsGetDhs and TavPasswordSecurity
3. Added Win32_NetworkAdapter which reads the mac address of the NIC with the lowest index and a permanent (hard coded) address.
Ver 2009Jun26
1. Diagnostic version for Password assignment.

ver 2009Jun11 JS
1. Fixed Password problem that would allow all non-administrators to run with a common password. The non-administrators can still run with a runas /noprofile /env /user:domain\user "telescriptav.exe" command line
2. Added version info tied to VS_VERSION_INFO rather than the string table.
3. Added windows version info to About box.
4. Changed copyright to TeleScript West, Inc. per conversation with JF... reads copyright date from VS_VERSION_INFO rather than string table.

Ver 2009May06 JS
1. Changed printer routines to handle variable size DEVMODE
2. Changed TPX load to accomodate insertion of header info to scripts as they are loaded.
Ver 2009Apr28 JS
1. Linked to TdGetHdn library in dbg and rel versions
2. Fixed error in Export that prevented some files from being copied to exp directory
3. Added preference to save full path to export runlist

Ver 2009Apr22 JS
1. Fixed paste color and attr ambiguity.

Ver 2008Sep30
1. Windows Core Audio
2. Audio Configuration box
3. Text based file naming
4. Bookmark double click goes to bkmark

Ver 2008Aug31
The following features were added to the Audio enabled version
1. Delete files (selected, checked, unchecked)
2. Check files (all, none, invert)
3. Context menu for Record dialog
4. Windows position for Record dialog
5. Black button shows record dialog
6. Command line switches to start program in RA mode

Ver 2008Aug12 // changes to conform with Tpro TPX mechanism
1. Error detection mechanism changed following EM_STREAMIN functions. Following the documentation (or lack thereof), it appears that retv==0 is the only reliable error detection mechanism. This applies to both file streaming and streaming from a buffer. This was done in response to a Dhevihi script provided by CIS which returns es.dwError == 0xfffffffa and retv == 1009. The script is apparently intact, even though the error return is set. These es.dwError codes are not documented by MS.
2. This revision is a workaround to a problem reported with streaming a Dhivehi TPX script. The problem turned out to be the the inability of the RichEdit EM_STREAMIN function (apparently for Thaana Unicode ONLY) to deal with \u13 \u10 instead of \par. I amended the XmlUtility. Also, the TproXmlBufferProcess utility header is simplified.

Ver JS 2008jUL31
1. Audition record feature added for Harper-Collins

Ver JS 2008Mar19 1. Disabled WM_MBUTTONDBLCLK message
2. Set Dialog Ctrl visible as default
3. Added code to TavRemoteProc module to prevent "recursive" runlist reload. For some reason, multiple notifications are sent when the PROMPT.TRL file is changed -- I don't know why -- but this caused the runlist file to reload at least twice which is a needless bottleneck.

1. Static linking to MSVCRT80.DLL and XmlUtility.lib
1. Removed Octopus NCS workaround and moved to MOS-Gateway

Ver 2007Dec11
1. Octopus embedded tags workaround -- command line driven.
Ver 2007Apr25
Command line switch, -V, disables converter enumeration at startup. Also, moved ForceRiched20Dll, ForceDemoMode and NetAutoStart into a PI group of ephemeral values (not saved in Registry).

Ver 2007Apr25
Modified to work with MS-Office12 converter

Adjusted timeouts for serial ports in SCDV.

Ver USB 10 Button controller support.

Ver 1. Fixed a couple of bugs Chris found:
a. incorrect assignment of default background color
b. bug in concatenation of default save name for new scripts
2. Added lines allowing use of enhanced SHBroweForFolder(). This enhancement included:
a. calling CoInitializeEx()/CoUninitialize when propertypages are initialized/deinitialized
b. Storing the iMalloc interface and calling iMalloc->Free()/iMalloc->Release() for structures allocated by SH functions.
d. added BIF_USENEWUI for bi.ulFlags member of BROWSEINFO structure.

Ver 7.2.1063
1. Changed LineSpace to slider (from combo box)
2. Added Before and After paragraph spacing... in points...
3. Corrected error in how PARAFORMAT2 was applied to script
4. Runlist is Resizable... controls moved to left (like Hermes)
5. Added "Close Script" and "Close Runlist" to menus.
a. Close Script action depends of whether runlist is in use and on the PI "Close Removes Script from Runlist"
b. if not using runlist, Close just deletes the script, after checking if the script is changed and needs to be saved, if that preference is set. It's basically the same as clicking "New"
c. if runlist is in use, action depends upon state of PI value CloseRemovesScript. If this flag is TRUE, then close deletes the script from the runlist and displays the next script in the runlist. If the script is the only script in the runlist, then NEW is issued after the script is deleted.
d. if CloseRemovesScript is FLASE, then close script is pretty much the same as NEXT.
6. External Pipe Client is disabled in this release... it cannot be enabled from the preferences boxes.

030807 JS
1. Added Apply Defaults to Perferences (page Script 2). This is
similar to the one in Tpro, allowing various character and
paragraph attributes to be applied as scripts are loaded.
2. Added Read Direction combo box to Paragraph properties
3. Hooked the paragraph properties box into the preferences (Script 1) box.

122106 JS
1. TAV will works as client for Pantheon/Zeus

080406 JS
1. Modified Password security for use with internet liscense scheme.
a. Added lines to force demo mode (these existed, but I added them in more centralized locations.

071306 JS
1. Fixed bugs in Echo that prevented sending scripts

061406 JS
1. Fixed bugs in chatbox
2. Added B/I/U and FONT to chatbox options. Removed "Configure" and "Hide"
3. Added to Preferences
a) Allow receiver to reset prompter window size
b) Re-echo scroll position to receiver
c) Echo prompter window size on connect
d) rearranged IPAddress box and Disable box
e) CheckALL and Check None are disabled

060606 JS - the Version / The Apocalypse Version
1. Autohide taskbar performance option
2. Send/Receive echo chatbox dialog

O51806 JS
1. Testing sending large script (named pipe is limited to 0x7fff on network)

050506 JS / Cinco De Mayo
1. Fixed bug which overwrote old runlist after starting a new runlist
2. Added accelerator for MoveUp and MoveDown in runlist dialog
3. Modified ExtPipeClient for read/write, multi-threaded
4. Modified RingBuffer for multithreaded use

042706 JS / NAB - 1. Fixed bug in SetBookmark... selection was hidden after set.

042106 JS - 1. Fixed minor problem with initial showing of Echo dialog

042006 JS -
1. Echo -- allows commands from Sender to be reflected to the Receiver
. a. Prompter Sync mode causes Receiver to follow script position of Sender
Receiver can switch to local control by pressing Green Button on any controller, or center click mouse button.
b. Echo controller allows dual operation, but with limitation on Receiver sync based upon vertical interval timing.
c. Basic Menu command echo allows basic control of Receiver from Sender
d. Load / Save coordinates script on Receiver with Sender
e. Load / Save runlist for complete show order backup on Receiver
2. Additions to PacketData to process Receiver End
3. Additions to ExtPipeClient to process Sender End
4. Addition to PropertyPage for configuration of Echo Send/Receive
5. Dialog to connect and disconnect echo... quick disconnect for receiver/sender
041306 JS --
1. Added ExtPipeClient module (XPCL) which can echo program activity from one copy of TAV across network to another copy VIA named pipe.

032106 JS -
1. Fixed bugs in pipe interface
2. Set security descriptor for pipe
3. Created random pipe naming scheme based upon current date
4. added preferences to close external port and code to accomplish this at runtime.

020106 JS -
1. Added pipe interface to external controls

111105 JS -
1. Removed spurious item from drop down menu

110905 JS - -- release version
1, Frame rate adjustment dialog and modifications in the manner in which non-sync timing occurs
2. Minor bug fixes and typo corrections

092905 JS -
1. Insert Item (Date, Time, Revised, Runlist Name, Script Name, User Name, Program Version)
2. Preference / SpellCheck / Options (display SSCE options dialog)
3. Preferences / Logging / View Log File
4. Preferences / Logging / Viewer application
5. Preference / Apply defaults when loading scripts.

090505 JS
1. Added Script Information dialog
2. Added SpellCheck Dialog Box
3. Repaired error in SSCE which wrote Unicode string incorrectly to registry & linked with TAV

061005 JS -
1. Remote runlist monitor
2. Changed Doc converterdetection from hard coded path to Registry Key enumeration.

060905 JS -
1. Added serial control timeout value tp pi... this allows slow responding computers such as IBM to work properly.

042505 JS -

1. Added bypass for MLMessageDisplay() in TavMessageLogKill() that caused recursion when log file size was exceeded.
2. Added f_handle check to WriteLog()
3. Changed log message type in TWPOnTimerCommand() to EPF_DBG... the process data function TPDSendMessageToProcess(), writes to the log also and this message is, generally, redundant.

041105 JS -
1. LinkScript options was not recorded when exiting PropertyPage dialog... bug was in ProgramInfo
2. Set yellow-wait icon when script scrolling begins... if the controller was zeroed when GO issued, then the yellow WAIT icon was not displayed.

041105 JS -
1. Fixed bug in demo mode
2. Added TavDecodeCommandLine override switches
3. Added ForceDemoMode command switch, pi var, NetAutoStart command switch and pi var
Currently defined command switches are:
{TEXT("-E"), PISetForceRiched20Dll, TRUE, DATA_TYPE_BOOL}, // force use of richedit .dll
{TEXT("-D"), PISetForceDemoMode, TRUE, DATA_TYPE_BOOL}, // force password use (demo mode)
{TEXT("-S"), PISetRestoreLastScript, TRUE, DATA_TYPE_BOOL}, // restore last script
{TEXT("-Q"), PISetRlOptionUseRunlist, TRUE, DATA_TYPE_BOOL}, // force use of runlist
{TEXT("-L"), PISetLastScript, NULL, DATA_TYPE_LPCTSTR}, // set last script name
{TEXT("-R"), PISetRlOptionReloadAtStartup, TRUE, DATA_TYPE_BOOL}, // restore last runlist, must be used with -Q
{TEXT("-U"), PISetLastRunlist, NULL, DATA_TYPE_LPCTSTR}, // set last runlist name
{TEXT("-F"), PISetFullScreen, TRUE, DATA_TYPE_BOOL}, // initialize in full screen mode
{TEXT("-N"), PISetNetAutoStart, TRUE, DATA_TYPE_BOOL}, // automatically connect to net

032005 JS - Release

1. Added Power Management functions SetThreadExecutionState(), and interecption of WM_POWERBROADCAST
2. KeyWord module added
3. Collected F5Lockout, DisableFontSmoothing, DisableScreenSaver and DisablePowerMgr into one subkey, PerformanceOptions
4. Preferences for font_smoothing, screen saver and power management take effect when applied, not just at startup.

020205 JS - Release

1. Added PGSLogPageSetupDlg() to activity log. It has a tag of EPF_DBG
2. Changed the naming convention of activity logs to allow alphabetic grouping by month (eg., TAV-JAN20-2005-C.LOG)
3. Added opsys version info to log
4. Added number of pages to preview dialog
5. Added output file file on printer setup
6. Added "Save Image" to preview dialog

111304 JS --
1. Fixed <Ctrl+Home> accelerator... it would not set to home if cursor was at the top of the script.
2. Re-assigned <Ctrl+D>, show dialog control; <Ctrl+Alt+D>, hide dialog control. Also, added Show/Hide Controller on View menu.
3. Assigned <Ctrl+F2> to hide runlist. Also added Show/Hide Runlist on view menu.

111204 JS -

1. Mouse Scroll / <Ctrl + F6> was disabled in DEMO mode
2. Added "Export Runlist" function to File menu. This will copy the runlist and each script in the runlist to a selected destination, eg., a floppy disk. It uses the SaveAs dialog to select the location and file name for the exported runlist. This will be very helpful,I think, to operators and in archival situations.
111004 JS -

1. Changed the order of removing scrollbar / removing title bar in IDM_SETPROMPTER/IDM_SETEDITOR
2. Compensation for the size of WS_DLGFRAME window attribute in WM_SIZE processing -- this prevents word wrap from changing
3. Altered behavior of ChooseFont... if Face name of selection is inconsistent, then the box will not be initialized with a name. When the function returns, if there's still no name, then only the size is set. If the Size returned is 0, then the face name will be applied, but the size won't change.
4. Added persistent setting for runlist dialog position.
5. Applied on-screen positioning when switching from mini-dlg controller to full dialog controller.
6. Improved Font Select Dialog... has Face/Size check box, Apply to All, Apply to Selection and Make default boxes.
7. Improved Grow/Shrink font feature... grows and shrinks by finer gradient... if no selection is made, then it applies to entire script.
8. Added hot key for subscript <CTRL + '+'> and superscript <CTRL + SH + '+'>
9. <Ctrl + F6> (Mouse scroll) was not functioning in DEMO mode
10. <Ctrl + F6> moves mouse to POINT of the ARROW and zero's prompter speed.

110404 JS - 1. Reordering the initialization of objects left the controller thread not enabled. 110104 JS -

1. Fixed context help on runlist dialog -- it was invoking F1 help contents
2. Fixed definitions in string table which displayed incorrect message for context help
3. Corrected potential problem with Spell Check not showing selection
4. Corrected TOPMOST problem with Runlist (would not arrange to non-topmost, regardless of preference).
5. File menu was not being properly filtered by program mode.
6. Keyboard accelerators removed from context menu

102504 JS - 7.2.018 1. Finer control over line spacing in Paragraph Properties box

102104 JS - Beta
1. Demo mode is now functional. If no key is present when the program is started, the program will operate in DEMO MODE.

102004 JS - (Beta-2)
1. Corrected thread contention issue
2. Added "UseScriptColor" preference
3. Beta released

101904 JS - (Beta-1)
1. First beta with runlist released

Oct 2004 - Cumulative Alpha versions 1. Runlist feature added and alpha tested
2. Numerous modifications copied from Tpro 6.1.2.xxx
3. first compiled on 4/12/04
4. Added memory stack module (TMS)
5. Added Message Logging function (TML)
6. Added comprehensive property page
7. Added paragraph properties
8. Added paste options
9. Improved Find/Replace (per Tpro)
10. Runs as demo if no key installed
11. Can use msftedit.dll which has corrected many richedit bugs
12. Additional defaults saved in registry by ProgramInfo (PI)
13. Context help added to Dialogs
14. Diagnostic About Box
15. Reorganized all data into TavGlobalData
16. Improved bookmark performance
17. Mouse/controller/dialog and minidialog controllers with auto-arbitration
18. Advanced DirectX scroll... dual monitor & display card auto-sense
19. Network connection to TeleScript NR module
20. WSAAsyncSelect() bug repair
21. Added TavTimerThreadData.cpp/.h... launch TeleScriptTIMERtm from TAV
22. Loop to top added
23. ProcessData... process command pipe to TeleScriptTimer
24. Ported all print-related modules from Tpro (replaced old TavPrintScript with new)
25. Added processing for Print Preview
26. Compiled and alpha tested
27. Runlist feature added and alpha tested



TeleScript ProNEWS
TeleScript ProNEWS Installer TeleScript ProNEWS Ver Rev Dec 1 2017
120117 JS - Ver
  1. Fixed line length consistency issue.. was reading attributes of first char when loading but default when changing line length.
  2. Fixed file compatibility issue with .KWD legacy files
2017Sep18 - Ver
  1. Changed how attributes are applied when no text is selected. All apply only to the insertion point, except "unhide" which applies to the entire script.
Revision Details - History
July 31, 2017 Ver
  1. 1. Fixed error in Font Shrink/Grow logic.
2017Jul18 Ver
IMPORTANT NOTE: This version of TeleScript ProNEWS requires TSW-MosGateway-059 for MOS 2.8.4
  1. SendTo dialog
  2. KeyWord apply attributes and colors only.
  3. SendTo menu changes
  4. Grow/Shrink font (Ctrl+Alt+=/-)
  5. Changed DTD for TPX script to conform <storyPresenter> and <storyPresenterRR> to proper place for MOS 2.8.4
  6. Changing script name via grid did not mark the script as changed and didn't update remote.
  1. Compiled against most recent MS Updates
2017Jan20 - Ver
  1. Replace / Replace ALL was not clearing current version flag
  2. Changes in how RTF files set CPL Index -- allow user to select target resolution for reading/writing
  3. Link to updated XmlUtility.lib
  4. Allow floating files via .TPX input. MOS doesn't yet implement this, but iNews/NSML does.
  1. Addition of "Shadow" attribute
  2. SendTo Database Manager for HTTP and FTP Connections
  3. Commands for Remote Prompter (TECHi and TECH)
2016Aug02 Ver
  1. .CVS export of runlist (spreadsheet)
  2. Improved Runlist Printout
  3. Fixed bug in application of Attributes
2016May 20 - Rev
  1. Fixed compiler bug which did not allow keyed version to start prompting, and EditOnly mode locked.
  2. Added diaalog box to prevent freeze if Security Key is removed or otherwise becomes non-functional during scrolling.
2016 Apr 30 Ver (Cumulative)
  1. Changed name of default Lexicons folder (Lexicons)
  2. HTTP Transfer mechanism / TECHi interface
  3. Fixed file naming bug in Export Files and TNR Host Mode.
  4. Fixed 401 bug in HTTP
  5. Improved version logging in .LOG files.
  6. Removal references to "DEMOMODE". Unlicensed copies of TProNEWS are useable in "Edit Mode Only" with only Scrolling and Newsroom function disabled.
  7. Fixed issue with reporting mechanism when a USB control device is removed.
2016Feb08 Ver
  1. Changed attribute setting to follow these rules:
    If attribute is consisten through out the selection, then toggle the attribute
    If attribute is mixed in the selection
    Set all attributes in the selection to match the first character
    This applies to
    CFM_SHADOW (not displayed)
    "Normal" does not affect colors or highlighting (inverse).
  2. Likewise, changed conditioning of attribute list in Text/Attribute menu
  3. Alternate accellerator assigned to ZoomIn/ZoomOut (<Ctrl+Alt+Keypad6>/<Ctrl+Alt+Keypad4>) to avert issue with Intel Hotkeys
  4. Linked with revised SSCD32-REL.DLL, U06
  5. Single Right Quote (Unicode U+2019, used by MS-Word in possessives) skipped by Spell Check Engine
  6. Spell check 1) un-hides all text, 2) unhides and rehides bookmarksd
  7. Alternative Accelerator assigned to Zoom In / Zoom Out to avoid conflict with globally assigned HotKeys by Intel Graphics driver.
2015 Oct 28 - Tpro
  1. Changed RemoteOptions default definition
  2. Altered Text Converters to use GlobalAlloc() instead of "new" operator
2015 Sep 30, Tpro
  1. Workaround reading file stats to fix issue which would incorrectly identify an existing script as "newer".
2015 Sept 18, Tpro
  1. Modified thread synchronization to accomodate changes in Windows
  2. Added scroll position check.
  3. Fixed bug that incorrectly enumerated the number of HID Controllers
2015 Aug 28 - Tpro
  1. Font Dialog Changes to accomodate TrueType Revisions
  2.   Added 'Use Typeface'
  3.   Added 'Use Line Len'
  4.   Added 'Use Style'
2015 Jul 02 - Ver
  1. Fixed minor typos in menus
  2. Export uses "Unsupported File Type" when exporting .DAT file.
  3. Process header items from DAT load
  4. Process PI from header file during DAT load
  5. Activated NCS-DAT in standard edition
2015 Jun 10 - Tpro / LPro
  1. Thread Synchronization improvement
  2. Multiple small tweaks
2015 May 28 - Tpro
  1. Changed security access to registry
2015 May 19 - Tpro
  1. Added command line switch to disable check for RDP terminal services
  2. Fixed threading issue with NBMK/PBMK
2015 May 19 - Tpro
  1. Added assignable button on 10 button controller (done via registry edit
  2. Corrected behavior of NEXT BOOKMARK / PREVIOUS BOOKMARK
  3. Minor code tweaks to conform to current MS Windows DLL libraries.
2015 May 15 - Tpro
  1. Fixed issue with live update of paused script.
2015 May 14 - Tpro
  1. Fixed error in Un-zoomed save.
2015 May 13 - Tpro
  1. Corrected SCMerge issue with flash and zoom.
  2. Extensive testing of host / client operation
  3. Added "Unzoom" option for host (TODO)
  4. Added additional resolutions to ScalerIndex
    This allows the host to save scripts at a predictable font for non-zooming clients
2015 Apr 21 - Tpro
  1. Tweaked multithreading critical sections
  2. Removed some EnChange code
  3. Modified threading in Start/Stop/Scroll.
  4. Changed registration URL
  5. Expanded PW licensing scheme to allow full times demos.
  6. New CHM help files incorporated
  7. Security Key Warning
  8. Minor changes
  9. Restored mouse wheel scrolling... not yet completed
2014May07 - Ver
  1. Minor changes in RL and NR modules
  2. Modified how RL and NR deal with relative path specs
  3. Script "merge" code for allowing changes to on-prompter script in NR mode
  4. Quick insert of Date, Revision, Version, etc.
2014Apr28 - Ver
  1. Corrected bug in HKLM version import, TproProgramInfo::PIImport7DOT2Setting()
  2. TproProgramINfo::ProgramInfoInit() -- check if previous version registry information exists before displaying import message
2014 Mar 10 - RTM Version
  1. Font dialog revised to provide more precise specification of size.
  2. Font work to show Arial Black and Arial Narrow fonts.
2014 Feb 05 - Ver
  1. Completed LPNR license scheme (see notes)
  2. Began hook for "Split File" function
  3. Default action for prompt and edit... F3/F5 actions can be changed.
  4. Conditional compilation for custom version complted
  5. Can use TECH programmed XK12JS controller
  6. Changed "Options..." to "Preferences..." which is the more accepted verb now.
  7. Corrected complier bug in PI-XK12 initialization
2014 Jan 28 - Ver.
  1. Corrected bug in PIEHID initialization per TECH.
2014 Jan 07 - Ver
  1. Rixed problem with default logfile path.
2013 Nov 15 - Version Release Candidate
  1. Direct3D scroll trigger
  2. Version 6.2 graphics
  3. Hot swapping of USB and HID controllers
  4. Editable Trigger Tag file
  5. Dynamic allocation of SCPT
2013 September 08 - Ver
  • Added HID controller
  • QuickZoom and Line to Top function
2013 April 30 - Ver
  • Changed insertion of "\uNNNNN " and character count in XmlUtility::CopyToOutputBuffer() / XMLUtility Ver
  • Removed CF_SCREENFONTS from TproSCWinProc::SCWSetTextFont().
  • DrawIcon() was using SM_CXICON where SM_CYICON should have been used. Fortunately, they are the same value.
  • Standardized About box.
  • "No to All" added to multi-file save... aids in closing runlist.
  • Registry editable SctrlPortMax limit on highest COM to check for controller -- up to 255.
  • Added "-CVR1" - "-CVR10", "-CVR 1" to "-CVR 10" to Trigger Tags
2013 Feb 01 -
  • 1. Added "-CVR" to Trigger Tags
  • Added TeleScriptSB-Setup to installer
  • Added SafeNet FieldExchangeUtility Setup to installer
2013 Jan 31 -
  • 1. Addition of requested "Trigger Tags" for newsroom/ENPS operation Trigger tags can be included in the StorySlug field (ex, -GV01). A "trigger tag" can be used to automatically mark a script as "Not for prompting" in the runlist. These scripts are marked by a greyed-out script icon. "Next" skips over tagged scripts.
  • 2. Updated (c) date -- 2013
2013 Jan 15 -
  • 1. Restored ability to edit script name in runlist view
  • 2. Added tolerance value to Inverse Comparison... though COColorIsClose()
2012 Oct 11 -
  • 1. Add menu tracking for TFW, Runlist, and Debug menus for AddIns
  • 2. Simplified Debug Window menu... removed most commands.
2012 Sep 20 -
  • 1. Trace shut down
2012 July 23 - (now in regression testing)
  • 1. AddIn Manager
  • 2. Moved default Keyword, Printer and AddIns path to TeleScriptProData in Users area
  • 3. MOved GlobalDataKill() to WM_CLOSE section of FWWinProc.cppxt menus.
  • 4. Changed how program searches for keyword file
2012 July12 -
  • 1. Fixed bug in ClosedCaptioning that would not allow use of COM10-COM16
2012 June 3 -
  • 1. Added excluded Segments for Newsroom version
  • 2. Fixed bug in ScriptInfo/ShowName
  • 3. Status->Link with check on context
2012 May 11 -
  • 1. Fixed reverse link bug
  • 2. Relinked with modified XmlLibrary
  • 3. Change On-air icon for newsroom use
2012 May 2
  • 1. TPX files add '+' to end of story body... pad ends of scripts
  • 2. {} sequences are colorized at time of loading when PI and PKG are processed
  • 3. PI option to "OMIT BLANK LINES"... if a line has only white space, omit for prompting.
2012 May 1
  • 1. CCTV mod to escape curly brace when processing TPX
  • 2. Non prompting scripts with -W startup... see list in XBPProcess
2012 Apr 27
  • 1. Modified TproXmlBufferProc to read <StoryPresenter> inside <storyBody> tags. They will be inserted in the script in inverse attribute.
  • 2. Made changes in XmlUtility to support a state flag.
2012 Apr 17 - Version
1. Corrected single script looping bug in TproSCWinProc.
2. Added user preference to ignore controller sync errors.
3. Some text changes in controller detection procedure.
4. Corrected lParam ambiguity in IDM_PROMPT_SCRIPT command processor.

2012 Apr 03 - Version
1. Added error dialog message after unsuccessful save of xps_setup in TproPageSetupProc.cpp
2. Improved reporting controller detection from Options/Controllers - Find all controllers
3. Forced stop scrolling before displaying Options dialog.

2012 Mar 07 - Version
1. Extended "Control Panel" (XCP) dashboard
2. Added Options button to extended Control Panel (XCP)
3. Made big prompt and big edit button on XCP
4. Fixed some broken shortcuts
5. Add blank lines to new scripts on property page 1A with spin control
for number of lines
6. Flash windows and display Messagebox after setting position
7. Added Prompt Ext Mon function
8. Fixed Control Panel links
9. Added Inverser butoon to XCP
10. Added Exit to drop down menus.
11. Allow slug or "friendly name" to be displayed in column 0 with activity icon
12. Update runlist properly after preference set.
13. minor plumbing changes
14. Fixed potential memory leak in ConvertDoc functions.
15. TPX files hide bracketed sections.
16. Changed processing of Context menu in script mode to show current line length
17. Changed the way inverse is applied to colors in selections vs. entire script

2012 Jan 27 - Version

1. Confirmation message box displayed after saving Print Page Setup.

2011 Dec 19 Ver
1. KeyWord dialog was not setting "keep attr" and "keep color" according to saved preferences.

(Note: following this point, revisions are listed in chronological order -- newest last)

Started reorganizing PV5 files for PV6 builds

040299 JS Reorganized following new architecture as follows: Data structures store HWND's
HWND's store handles to subordinate data structures (in extra storage -- GetWindowLong (hwnd, 0))
1. TNR App stores Frame Wnd Handle
2. Frame Wnd stores TFD_HANDLE (frame window data structure
3. TFD stores array of HWND's to RLW's
4. RLW data stores HWND's of Script's
5. SCW extra storage stores SCPT handles

121201 Converted to long file names
121301 Revisions
1. Moved SCCalcTextPosition() to PRCalcTextPosition()
2. Added Direct Draw element to Prompter.cpp/Prompter.h
although they're not yet allocated or active.
3. Modified CDSctrlCmdProc(), the manner in which the active controller target is determined.
4. Added code to support Memory Stack (TMS), though it's functionality has not been added to the program
5. Reassigned and added some shortcut keys (was -> is):
Ctrl+F5 -> Alt+F5: (all bars off - Full screen prompt)
Alt + F3; (all bars on - edit)
F7 -> F6 (Go)
CTRL + F7 -> Ctrl + F6 (send simulated mouse center button)
F8 -> F7 (Stop)
F9 (Push on Mem stack)
Ctrl + F9 (Clear stack)
F10 (Goto... don't pop)
Ctrl + F10 (Recall and pop)
F10 -> F8 (NXT Script)
F11 -> Ctrl + F8 (PRV Script)
F11 (Set Bookmark)
Ctrl + F11 (Go to Bookmark)
Alt + F11 (Show / Hide Bookmarks in script)
Ctrl + Alt + F11 (Clear all bookmarks)
F12 (Next Bookmark)
Ctrl + F12 (Previous Bookmark)
F4 -> Ctrl + F3 (Edit Script Info)
6. I eliminated these accelerators:
Windows/Cascade = Shift + F5
Windows/Tile Horizontal = Shift + F4
Windows/Tile Vertical = Ctrl + Shift + F4
7. I moved Prompter functions to a top level menu
8. Removed Script Info... from File menu... it's already on the Script/Edit menu

122901 JS Revisions and bug fixes: 1. Fixed non-working Edit accellerator when in Prompt Mode and from edit/context menu
2. Added bars-on, edit command
3. Moved Prompter/Edit back to sub-menu / full screen and prompt Edit and bars on edit
4. Completed debugging of Bookmarks
5. Added registry entries for ToolBar and StatusBar visibility preferences, though i've not given these a public access. When the user shuts OFF the ToolBar or StatusBar, the preference is changed and the program will restart in that state.
6. Changed View/Hide Runlist to View/Runlist with a check Changed View/Hide Script to View/Script with a check
7. Added "Show" column to runlist. The function of this column is controlled by the Runlist/View/ShowTime menu item (both top and context menus)
Start Time = the time shown is the estimated time that this script will air measured from the show start
End Time = The time that the script will finish measured from the show start
Back Time = Time remaining in the show when this script airs
8. Exploding window in prompter
9. Runlist timer
Open from Runlist dropdown or Tools/Timer
Timer menu
Start - start timer (except Time Of Day)
Stop - stop timer
For start/stop timing
Pause - stop display but continue timing
Countdown - return to start time
Stopwatch - return to Zero
Set (Countdown only)
Adjust - Set the starting time for countdown
Auto - Automatically set start time to runlist Show time on Reset
Type - Stopwatch
Time of Day
Sync - Sync start and stop to red and green button on the controller
NOTE: timer window must be closed from the runlist menus

012202 JS - Bug fixes per Chris: - spell checker doesn't highlight word that's being checked. in AV, when the spell checker "questions" a word, the script is re-positioned and the word in question selected, so the user can see the context.
HMMM... must be a bug in the SSCE code... this'll take time to find.
- 'Ctrl + F3' for script info broken, as well as toolbar button - (context and program menus working fine ...)
FIXED: If you recall, I moved the "extra" Script Info off the tools menu... I had inadvertently defined TWO different messages that did the same thing... the accelerator was associated with the one I eliminated.
- here's a really wierd one: open a script, then do an 'Alt + F5' to put it into full-screen prompt mode. start the script scrolling, and click the 'close' button that's at the top-right corner (which only appears with 'Alt + F5') I then choose "no" to save the script. at this point, bring up the Task Manager, and you'll notice that PRO's CPU usage shoots up to 99% ... I'm assuming - and yes, I know what happens when one assumes - that this has something to do with the heightened thread priority of the scrolling prompter window, and that since the 'close' button is usually not available, the program doesn't expect a scrolling prompter window to close, and therefore doesn't "clean up" the high-priority thread that's going... something like that??? (ack!!! runaway threads!?!?!)
GOOD WORK!!! It turns out, I'd not ported the thread close-down from TeleScript AV... so the direct draw object was not deleted (a memory leak) and the thread was not shut down. Windows closes all threads associated with a process when it shuts down that process, but until TeleScriptPro.exe was completely shut down, the prompter thread was still running.
Also, I changed the means of fitting the window to the Frame window... this eliminates the system gadgets. So... the problem is fixed TWO ways.
- still getting "operation completed successfully" box when the 'cancel' button is pressed in the Open Script dialog. note that this dialog also appears when 'cancel' is pressed in the Save As Runlist dialog.
FIXED: This is not the same place as before, but it's the same reason.
- in Tools > Prefs > Options dialog, the 'reset to defaults' button under bookmarks doesn't seem to do said operation. note that I changed the bookmark character (to '[' for old-times sake) and had the 'hide new bookmarks' option un-checked when I tried it.
Actually, that's just "Reset to Default" for the bookmark string. That way, you can change the string inserted by the bookmark function to something weird, then reset it when the novelty wears off. Since my bookmark thingy is not easy to type from the keyboard, I added that button.
At any rate, I forgot to add the code that would actually make this do what it advertises! So... it's fixed.
- 'Ctrl+F6' displays some odd behavior: open a script, do an 'Alt+F5', then press 'Ctrl+F6'. for me, this switches to the runlist (which is then maximized) and then re-sets the prompter window back into edit position. also, if the script is just in edit mode, 'Ctrl+F6' switches between the currently opened windows (a la 'Ctrl+Tab') note that middle mouse button works fine, as well as top-level menu item for initiating a 'mouse scroll'.
I have to change this accelerator... <Ctrl + F6> is processed by the MDI client and switches to the next child window (in fact, JUST like Ctrl+Tab). I'll try changing it to Alt + F6... see if Microsoft has any hidden meaning for that key.
(P.S. It seems to work OK)
- <F10> 'Set Bookmark' not working - instead goes to the top of the script.
<F10> is RCL, <F11> is Set Bookmark. The reason that <F10< goes to the top of the script is that's the default for RCL if nothing's in the memory stack. Do I still have <F10> on a menu as "set bookmark"?
- bookmark delete: set a bookmark, say at the beginning of a line of text. now, set another bookmark on the same line, and the character to the right of the cursor gets deleted (as with each subsequent bookmark that's set.) of important note is that this also happens in TAV (a customer called me today with this problem, which prompted me to check it in PRO...)
This is apparently a bug related to the Start of File bug I discovered... for whatever reason, the Rich Edit proc won't insert a character if the preceding character is hidden attribute... and won't let you change the attribute!!! In addition, the function which inserts characters in the rich edit control DOES NOT return an error to show that the insert failed. I've developed an elaborate kludge to detect this situation. The caller will display the error "There's already a bookmark in this location." This'll have to do for now... MicroSoft still hasn't fixed the bug I documented over a year ago!
- when PRO is started with no registry settings, and the 'New Script' command is issued, the script and runlist window geometries start out as very, very small windows (as small as you can manually re-size a window - similar to the way a minimized window looks in a MDI: just the titlebar, icon, and buttons, with the client area completely in-visible.) note that Opened scripts show up rather "normally"; the runlist however is still in the above-mentioned state. also, when any script is put into prompt mode, the window "disappears" - as if its window position is out of the application frame. also also, when the 'Edit' button is pushed, the script window pops back to a position out of the app frame, as if the x and y coordinates were inversed (positive/negative instead of negative/positive?)
Better, but I still have some work to do on placement when multiple monitors are in use... currently, it just defaults to the primary monitor, but I'd like it to resize to span both if that's the preference set.
- question: is it just a total pain in the ass to save the "customized" state of the toolbar? also, if the toolbar settings can't be saved, under what circumstances would someone use the 'Customize' feature? (btw - it IS a very snazzy feature, nonetheless :)
YES... it's a pain, but certainly desirable and possible. It's my intention to save this for a rainy day. Also, the same is true of saving Runlist column positions.
- The INS/OVR indicator in the Status Bar is reversed: OVR is really Insert, and vice versa.
Well, that was easy.
- Here's a wierd pseudo-crash "application error": click on the 'new script' button, then click the "X" close button in the title bar. I then click on 'cancel' when it asks to save the runlist. The program pauses for a second, then a dialog appears asking to save the current script. I click 'cancel', and the program then exits with an "application error: memory could not be 'read'" dialog box. Note that I'm running the program with a "clean" registry - hence the save if changed option is in effect.
I can't seem to duplicate the application error, but there was the problem that the WM_QUERYENDSESSION message was not processed by clicking on the close box, but only when the menu item, Exit, was selected (or Alt+F4). However, canceling the runlist save can't stop the system from closing because the structures are already destructing. I'll study this a bit more... maybe there's some way to eliminate the "Cancel" button during this shutdown. I've noticed that several applications behave this way... don't know the answer.
- Repaired incorrectly displayed accelerator, Ctrl+Up
- Changed the way in which the frame window position is recorded so as to allow spanning of multiple monitors.
- Changed the position to which the runlist returns upon Arrange Defaults to stored default rather than last stored runlist position.

060702 JS
- Added Registry var, display_rk_error. When set to TRUE, if the security key initialization fails, the reason for the failure will be displayed.
062102 JS -
- Repaired bug that prevented script updates from being performed in NR
- Added code to enable/disable NR features via security key
- Read/Write registry setting that controls initial visibility of timer window
- Added Preferences check box for initial timer window visibility
- Enabled registry settings to send log data to the "debug window".
- Worked on MDI menu consistency (all commands on all menus with appropriate greying)
- Altered controller choices to allow changing while program is active
- repaired some minor problems with timer window
050803 JS (release candidate)
- MLMessageDisplay() function added to replace disparate messasging functions
- Timer moved to modeless dlg
- New help files
- Full screen / no menu
- Fixed "find all controllers" button
- Preferences consolidated on one dialog
- Print setups and wysiwyg printing
- Add header information to new scripts
- Fixed invert function for speed.

- 051603 JS - Ver
- Removed menu commands some commands:
Script/Edit/Alignment/Justify -- this just doesn't do what it's supposed to and is covered by a RE accelerator, Ctrl+J
- Added menu commands:
Script/Edit/Redo - Ctrl + Y (system key assignment) (also on edit context menu)
Script/Text/Attributes/Superscript (Ctrl+ +) (system key assignment)
Script/Text/Attributes/Subscript (Ctrl+ =) (system key assignment)
Script/Text/Attributes/Small Caps (Sh+Ctrl+L)
- Changed accelerators:
Undo: Ctrl+Z (this is the new standard keystroke... replaces Alt + Backspace which will still work, it's just not listed)
Replace: Ctrl+R changed to Alt+F to avoid conflict with system keystroke (Ctrl+R = Right alignment)
Script/Alignment/Left = Ctrl+L (system key assignment)
Script/Alignment/Right = Ctrl+R (system key assignment)
Script/Alignment/Center = Ctrl+E (system key assignment)
Script/Line Spacing/1 Ctrl+1 = changes spacing in selection... menu item does entire script
Script/Line Spacing/2 Ctrl+2 = changes spacing in selection... menu item does entire script
Script/Line Spacing/1.5 Ctrl+5 = changes spacing in selection... menu item does entire script
Script/Line Length/all... changed to Alt+Sh+1..0,Q,W,E,R to avoid conflict with system defined accelerator, Ctrl+Sh+6 = caret accent
Script/Runlist/View/Runlist changed to Ctrl+Sh+R to avoid conflict with Script>Line Length>80
Script/View/Zoom In/Out/Normal changed to Ctlr+Alt+Right/Left/Space to avoid conflict with system keyboard driver
- Moved menu items:
Script context menu... all attributes included but moved to Attributes popup sub-menu
- System keys not found on Tpro menus
After pressing the short cut key, press the appropriate letter (for example a, e, or u). This applies to English, French, German, Italian, and Spanish keyboards only.
Ctrl+' (apostrophe) Accent acute
Ctrl+` (grave) Accent grave
Ctrl+~ (tilde) Accent tilde
Ctrl+; (semicolon) Accent
Ctrl+Shift+6 Accent caret
Ctrl+, (comma) Accent
Alt+X Converts the Unicode hexadecimal value preceding the insertion point to the corresponding Unicode character.
Alt+Shift+X Converts the Unicode character preceding the insertion point to the corresponding Unicode hexadecimal value.
Ctrl+Delete Delete the next word or selected characters.

073103 JS - Ver
- Added Mouse Scrolling module (CDM)
- Fixed Alt+F3 during scrolling (prevent)
- Added system parameters fixes
Prevent font smoothing
Disable screen saver during scrolling
- Added mouse sensitivity to options dialogs
- Corrected menu accelerator displayed for Save Runlist (Ctrl+Alt+S)

NOTES: Problem with Next and Previous... also problem persists with exiting scrolling window and re-entering with mouse.
081103 JS - ver
Bug Fixes:
1. Fixed erratic behavior of F8/Ctrl+F8... scripts need not be focused/selected to use this command
2. Alt+F5 sets PWP temporarily in PR->PWP... Alt+F3 resets Prompt win pos to PI-PWP... this way, full screen does no co-opt default position.
3. Default positions fixed: runlist need not be focused / scripts/prompt position sets properly
4. Lock out Alt+F5 while scrolling
5. Lockout F5 while scrolling via option on Tools/Options/Prompter Lockout F5 while scrolling = TRUE/FALSE
6. Fixed Cursor placement problems on F3 (edit script)
7. Added mini dialog control strip
8. Prompter icon on tool bar sends prompter FULL SCREEN.

091003 JS - verion
1. Fixed cursor location bug
2. Changed accelerators for some commands:
Runlist view type on Runlist, Script and Log windows:
Shift+Alt+Y = Small Icons
Shift+Alt+H = Large Icons
Shift+Alt+U = List
Shift+Alt+J = Details
Store layout on Script, Runlist and Log Windows:
Shift+Alt+O = Store script position
Shift+Alt+P = Store prompter position
Shift+Alt+K = Store Runlist position
Shift+Alt+L = Store layout

100703 JS - version
1. Fixed _tsccpy() type security exposures
2. Added COMMAND file read/write
3. Added Rebuild command -- refreshes scripts in runlist from original copies
4. Added many MLMessageDisplay() lines to track errors
5. Fixed bug that prevented resizing, reloading when "No Client Edit" was set in NR Remote mode
6. Revamped search/replace
7. Reworked Bookmarks
8. Allowed using RichEdit 4.0 with Windows XP (this is a different dll... msftedit.dll)

110403 JS - Version B1
1. Added Display info to detect and set up DDraw object for secondary displays
2. Changed about box

111403 JS - Version B1
1. Fixed search/replace all for \r
2. Added constant \l (search for RTF /line = UNICODE 0x000b)
3. Shortened VBI test interval
4. Added PrompterInit diagnostic messages
5. Corrected formatting bug in Show File
6. Fixed some typos, dlg box and menu items as per Chris Notes = 111403.txt

111503 JS - Version B1
1. Fixed keyboard accelerators in Search/Replace
This involves a Hook procedure for Search/Replace and additional data maintained in TproMain.h
2. ControlDeviceKill() didn't kill mini-dialog or mouse-controller
3. Changed Ronald Rat icon for mouse controller to more conventional icon image! <grin>

111603 JS - Version B1
1. (Ref. no bug report filed) Changed direct draw enumeration to include primary monitor... if there is ONLY one monitor, then DirectDrawEnumerateEx() returns only a NULL pointer to the primary monitor -- the actualy GUID handle is never passed to the enumeration function. This workaround also includes
2. (Ref. Bug Report -- 111703-01) Removed _DEBUG conditional compile in Bookmark which was making release version fail to re-show bookmarks
3. (Ref. Bug Report 111903-03) Changed the behavior of the Cancel Button when the Script Info dialog is displayed. Previously, it cancelled changes made in the info dialog. In this version, Cancel will cease creation of the new script.
4. (Ref. Bug Report 111903-01) Updated SSCE5332.DLL to work with msftedit.dll... new ssce5332.dll is ver
5. (Ref. B.R.111903-02) Fixed problem with printing of large files. In the funciton TproSCLoadSave::SCCopyHwndRe(), the event mask for the destination RichEdit window was causing problems -- similar to what's documented in ReadScript(). An EM_SETEVENTMASK message is now sent to clear the event mask before the EM_STREAMIN, and restored after.
6. (Ref. Changed the header and footer positioning in TproSCPrintScript::PrintScriptToDC(). The left and right page margins are now used for the header/footer left/right margins.
7. (Ref. B.R.112103-01) In the function TproPageSetupProc::PGSSetControlsToPsetNdx(), The string length passed to StringCchCat() to append the .XPS extension to the style name was the size of the wrong string.
8. (Ref. Bug Report 111703-02) Repaired Level 1 bugs.

112503 - Version
1. (Ref. Bug Report 111303-04) Regarding Window Title bar positioning under the Toolbar. Some lines in TproSCWinProc::SCOnWmSize() had been commented out, probably for some other debugging trial. Re-enabling them solved this problem.
2. (Ref. Bug Report 112503-01) Prompter script was jumping to top on right click after stop. Some lines had been commented out from TproFWWinProc::TFWAdjustMdiClientRect(). These lines compensated window positions for the height of the toolbar. They had been commented out during an earlier debugging operation and we not re-enabled.
3. SpeedGradient on Properties/Prompter tab... sets maximum scroll speed vs. fine control of speed.
4. Repaired mememory leak in Find/Replace that could accumulate and cause problems... this is NOT the source of another Find/Replace problem dealing with a large number of find/replace actions on long scripts.
5. Ported the function TproSCWinProc::SCWInvertTextColor() and related functions into the TProSCPrintScript module. Now the Page Setup "Invert text if BG is black" option will actually do a proper inverse of the script colors, only on black-backgrounded scripts.
6. Added Goto Line.. on Script Edit menu.
7. Added new method for entering special chars as Find/Replace strings:
{CR} = Carriage return
{LF} = Line feed
{SPACE} = space (may also be entered literally
{LINE} = line break (as entered in script during editing by pressing <CTRL+ENTER>)
{NULL} = null character... may be entered literally. Used to delete occurances of other text
{TAB} = tab character

To find literal occurances of special strings, use "\" as an escape character. for example, \{SPACE} finds actual occurances of {SPACE} in the text.

To find the backslash itself, use the string "\\"
1. (Ref. Bug Report 120303-01) Added line to TproSCWinProc::SCOnScriptScrollStop() to return priority class to NORMAL when scrolling is stopped.
2. (Ref. Bug Report 120303-02) Fixed MLMessageDisplay() parameters which cause crash will loading XML scripts.
3. (Ref. Bug Report 120303-03) Fixed problem related to storing the position of maximized child windows.
4. (Ref. Bug Report 120303-04) Test for RLRemoteLockout() was logging but not preventing runlist activity.
5. Improved pre-defined screen arrangements (vertical & horizontal)

1. (Ref. Bug Report 120503-01) Creating show file disabled notifications. Fixed incorrect window handle reference in SCLoadSave::SCCopyHwndRe() which prevented properly resetting notifications.
2. Continued improvement on default screen arrangements.
3. Repair potentially harmful memory leak in StoreLayout()

1. Added Tools/Options/Script - Paste Colors and Paste Attributes. If either is checked, then the Paste engine will use the corresponding properties from the SOURCE selection when pasting... i.e., if Paste Colors is checked, and you copy from a Word Document that is black characters on a white background, then Black characters on White Background will be pasted into the TeleScript Pro document, regardless of the colors of the TeleScript Pro document. Clear either and the corresponding properties of the target at the insertion point will be applied to the entire selection. Thus, the selection from Word would be white chars on black (if that's what the script is at the insertion point), but all SPECIAL coloring would be removed as well. This adds a registry key, PasteOptions, to store the preference. Default is to use colors and attributes of the SOURCE, and to copy only the face and size from the TARGET,
2. (Ref. Bug Report 120803-01) Fixed MLMessageDisplay() log entry with incorrect parameter specification which caused a crash if the last runlist was not found.
3. Fixed problem with Link to Previous

1. (Ref. BR121003-01) Fixed problem with restoring window to default, non-maximized position.
2. (Ref. BR121003-01) Fixed problem with PiTagOpen/PiTagClose and PkgTagOpen/PkgTagCLose registry keys
3. (Ref. BR121003-01) Selection not shown after setting bookmark.
4. Changed "Bars On/Off" edit dropdown menu item to "Edit Bars On", equivalent to pressing <Alt+F3>
5. Added "Prompt Fullscreen" item to edit dropdown menu, equivalent of <Alt+F5>
6. (Ref. BR121003-01) Arranged timer to appear in correct place when operating on secondary monitor
7. (Ref. BR120903-01) Disabled script and runlist open/save commands while remote is active and disable is selected in options.
8. Minor changes made to StoreLayout dealing with Prompter Window Position (PWP) and Script Window Position (SWP):
a. If a non-prompting script is the active window when Store Layout is invoked, that will be saved as SWP, any window in initialized as a prompting script will be stored as PWP
b. if a prompting script window is the active window when Store Layout is invoked, then that will be saved as PWP, and the first non-prompting script in the runlist will be stored as SWP. If there are no other scripts than the prompter script, then no change will be made to SWP.
c. If another window is the active window when Store Layout is invoked, the script in Prompter position will be store as PWP, then the first non-prompting script in the runlist will be stored as SWP. If no script exists other than the prompter script then no change will be made to SWP.
9. Added a simple Load/Save Layout on the File Menu... This will save the current default (not the current arrangement) to a file which may be loaded later to restore the specified layout. Layout files have the default extension T$P

1. Saves and restores toolbar customization in registry
2. Fixed problem with cursor after inverse or other attribute assignment.

1. Saves toolbar customization upon exit and restores on re-start.
2. Repaired bug which caused controller dialogs to be improperly displayed in some instances.

1. Incorporates work-around to address potentail MS bug (BR 011404-01). Recalculates coordinates and properly links to next script.

1. Changes the order in which certain operations are performed on a window when the text is resized. In so doing, this addresses not only BR011504-01, but also BR011404-01.

1. Incorporates work-around to bug in RichEdit which resizes the destination rectangle after encountering certain combination of attributes on the same line of text. This cause such scripts to print less on each page as printing progressed.
2. Re-organized printer functions for easier maintenance.
3. Improved performance of Print Preview
4. Added page selection to Print Preview
5. Linked Page-Setup to Print-Preview and vice versa
6. Fixed problem restoring font smoothing if screen saver was not active.
7. Improved the programs ability to reposition the Frame Window on multi-monitor/single-monitor systems.
8. Fixed a bug which could cause a script to stop printing before the end in WYSIWYG mode.

Version - Release
1. New splash screen
2. Fixed bug in "Print All"
3. Added "print" and "page setup" to script context menu
4. Added transition direction to Prompter Options dialog

Version - Release
1. Fixed memory leak in PrintScpt... hDevMode not checked for NULL in Cleanup function

1. Fixed printer preview selection problem
2. Program operates in "Demo Mode" when key is not found. This limits scrolling time to 8 seconds and 5 starts.
3. Added "Paragraph" properties box.

1. Corrected bug in Paragraph Properties Apply... line spacing
2. Corrected bug which prevented printer from reflecting paragraph settings.

Version - Release
1. Corrected bug in TproSCFindReplace::SFFindInScptCleanup which nulled hDlg at end of operation...

Version - Release - 020205 JS
1. Added PGSLogPageSetupDlg() to activity log. It has a tag of EPF_DBG
2. Changed the naming convention of activity logs to allow alphabetic grouping by month (eg., TPRO-JAN20-2005-C.LOG)
3. Added time stamp to each message sent via MLMessageDisplay()
4. Added opsys version info to log
4. Added number of pages to preview dialog
5. Added output file file on printer setup
6. Added "Save Image" to preview dialog
7. Added Document converters
8. Adapted TAV "Use Script Colors" (prevents black on black, etc.)

Version - Release
1. Print runlist -- omitted from previous build
2. Closed Caption Device
3. Vertical Sync Object... control of events related to VBI
NOTE: The concept of triggering VBI events proved NOT to work... still, the VSO is useful to coordinate related events.
4. Security key applied to VSO, removed from prompter thread

Version --
1. corrected bugs in Closed Caption routines

1. Added Enable and Disable captioning to Prompter menu.
2. added IDM_CAPTIONING_CLOSEDCAPTION menu ID. This toggles PI--CapEnable() and sends the Init/Deinit string to the captioning device. It doesn't work well to use Start/Stop or Prompt/Edit as these commands are also sent during linking operations.

1. Added "Clear caption" which allows operator to clear the caption output for commercial breaks, etc.
2. Added "Send line" which allows live caption line insertion.
3. Fixed inexplicably broken accelerator for set default runlist position (Alt+Sh+K)
4. Added code which prevents changing caption options while prompting.
POTENTIAL ISSUE: I experienced a crash when I changed the captioning port while I was prompting. I have since inserted code which prevents setting captioning preferences while prompting and I have not been able to duplicate the problem, however I believe it occurred because the re-configuration cause deletion of the event which triggers release of a caption and the system was triggering a non-existent event.

Version - March, 2005
1. KeyWord feature added
2. Added response to WM_POWERBROADCAST if prompter is scrolling
3. Collected F5Lockout, DisableFontSmoothing, DisableScreenSaver and DisablePowerMgr into one subkey, PerformanceOptions
4. Preferences for font_smoothing, screen saver and power management take effect when applied, not just at startup.

1. Repaired bug in TproNRRemoteProperties(), line 496 & 504, used PRFIsValidHandle() on fst_handle... this would cause a minor resourse leak if the remote were repeatedly initialized and de-initialized.
1. Preferences -- Choices for translate of non-supported save types in Host mode
2. Clicking the X (close) gadget on a script... preference to allow close or hide
3. Some changes in the way in which file types are detected -- in particular, added
space for rcode in the script header structure. This way, it's not necessary to determine file type from extensions once it's been determined.
4. Changed Converter detection from a hardcoded drive path to registry key enumeration.
5. Processed many TODO's from past.

Version - 072905
1. TFWEnumWindows() was returning FALSE and ceasing enumeration when closing windows...sometimes not all windows were closed and program would crash on exit... fixed 'er.
2. Fixed error in saving TPW_FILE... not only did it not set rcode correctly, but somehow left the file open and the file could not be reloaded by other apps.
3. Added Export Runlist command... this uses the SaveAs dialog, then saves the existing runlist to the path specified and a copy of each script to the specified path.
4. Converters drop-list in Help/About box.
5. Repaired "not all script loaded" error on cancelled File Open box.
6. Fixed fault with RLLoadList() when a specified script failed to load.
7. Fixed error reporting on detecting File Converters
8. Fixed error report on Cancelled GetOpenFileName() dialog.
9. Added drag and drop runlist ordering / runlist toolbar
10. Chris bug report: - I was able to close the runlist window and leave script window(s) open. First, I opened a runlist file from C:\Telescript, which referenced script files which did not exist on disk. The runlist opened, creating temporary "empty" scripts for each script in the list -- however no script data appeared in the runlist list view. I then clicked the runlist window's close gadget, at which time the script windows remained open. Subsequent actions raise various assert() statements (mostly about rl being NULL)... This won't happen on machines that don't have MS Visual Studio, so I can't quite tell if it's doing the right thing or not... Seems the bug here is the temporary script objects don't get killed when the runlist is closed. -- fixed flaw in RLLoadList()

1. Corrected minor bugs found in testing
2. More closely tied runlist toolbar to program state

1. More bug fixes
: TeleScript PRO
Beta Test Report
OK - When a Rainbow key that isn't programmed is present, on startup, many assertions are thrown (correct behavior), but the program hangs on the "Initializing DirectX" step. It does not go into DEMO mode.
OK - When the program is maxmized on my secondary monitor, upon re-start, the program shows up maximized on the primary monitor. If the program isn't maximized, it does re-appear correctly on the secondary monitor. By the way, the program exhibits *excellent* behavior when the secondary monitor has been disabled -- the program appears very nicely as close to the stored position as possible.
OK - Dialog control (using full mode) isn't re-appearing correctly on re-start when positioned on secondary monitor.
OK - The "Hide script windows after loading" doesn't appear to work after the "Connect" command is given.
OK - Odd behavior: 1) I connected to the remote runlist which contained three scripts that existed on disk. 2) Using Notepad, I changed the file names in PROMPT.TRL to "x", "y", and "z", which were non-existent, then saved the runlist file. 3) PRO created "placeholders" for x and y correctly, but the filename for z was a TSC####.TPW name. 4) On the runlist toolbar, I clicked the "Disconnect" button, then "Connect". No scripts appear in the runlist, and all runlist columns are collapsed. 5) A manual Save of the runlist file in Notepad updates the runlist with the correct data, --- but the columns remain collapsed. (Haven't figured this out yet)
Also, an addendum to one of the items in my report:
OK - The dialog controller *is* reappearing on the secondary monitor on re-start. However, it (and the timer) are off, just a little bit, in terms of their position. It may be one of those client vs. window coordinate things, or not factoring in some other window element such as a title bar. Timer may still be off
TeleScript PRO
Beta Test Report
OK- Asterisk after filename in runlist window title bar (which indicates modified status) isn't showing up after certain modifications (such as my drag & drop testing), but still being displayed after the Save Runlist command was given. Note that the Save if Changed and Confirm Overwrite settings are off. First, I loaded a runlist file that contained 5 TPW scripts. I performed some drag & drop re-ordering, which did NOT change the asterisk in the runlist tite bar. I then did some re-ordering using the Up and Down context menu commands, which DID set the asterisk. I then used File > Save Runlist, which then did write the data to the file (timestamp in Windows Explorer changed) but the asterisk remained. A subsequent re-opening of the runlist file confirms that the save was successful.
OK- Unveiled some odd behavior using the 'Save As Runlist' command: first, I opened a runlist file, then gave the 'Save As Runlist' command, and saved using a new, unique file name. However, in the program, the previous runlist file name was still displayed in the runlist title bar. I then made modifications to the runlist (removed all files) at which point the runlist title bar displayed the new file name with an asterisk. However, then I used the 'Save Runlist' command, and a debug error resulted: "MS Visual C++ Debug Library: Debug Error! Program [...]\TeleScriptPro.exe, DAMAGE: after normal block (#1769) at 0x00FDA0B8. Abort, Retry, Ignore..." This doesn't seem like a critical error, since clicking 'Ignore' seems to allow the program to continue, and upon checking the runlist on re-load it seems like the save was successful.
OK-Could not initialize remote Host -- error "Can't Save Runlist While in Host Mode", didn't update.
OK-Not recording "Use stored colors" preference on Script tab of preferences.
-I printed out blank runlist from Tpro... what's up?
OK--Disable caption on preferences is not following menu item.
OK--"Link Speed" on Prompter preferences tab -- what's that?
OK--Export -- would it be better to set scripts to .\ instead of export path?
OK--Caption Send Line dialog not appearing
still a TODO:
TODO: RPPReloadScript()::There's a problem here, if the script is on the prompter, it will not reload at this point, and the change will be lost unless the host resends the script. I've considered several possibilities. At this point the script is marked with a flag (SCSetReloadAfterPrompt()). It's possible to set a thread that will recheck flagged scripts, or a timer or some just-in-time check before a script is re-prompter, edited. It could even be hooked into the WM_MDIACTIVATE routine.
2. Changed "Store Layout", corrected a problem in Save/Load Layout

Ver Aug 19, 2005
1. Migrated TPIDecodeCommandLine() from TAV, added these switches:
{TEXT("-C"), PISetCommandFileName, NULL, DATA_TYPE_LPCTSTR}, // set command file name
{TEXT("-D"), PISetForceDemoMode, TRUE, DATA_TYPE_BOOL}, // force password use (demo mode)
{TEXT("-E"), PISetForceRiched20Dll, TRUE, DATA_TYPE_BOOL}, // force use of richedit .dll
{TEXT("-F"), PISetRemoteFileName, NULL, DATA_TYPE_LPCTSTR}, // set remote file name
{TEXT("-K"), PISetKeyWordFileName, NULL, DATA_TYPE_LPCTSTR}, // set keyword filename
{TEXT("-L"), PISetF5Lockout, TRUE, DATA_TYPE_BOOL}, // set F5 lockout
{TEXT("-M"), PISetRemoteStartup, TRUE, DATA_TYPE_BOOL}, // automatically connect to net
{TEXT("-N"), PISetCapEnable, TRUE, DATA_TYPE_BOOL}, // set last script name
{TEXT("-P"), PISetDefaultRemotePath, NULL, DATA_TYPE_LPCTSTR}, // set remote path
{TEXT("-R"), PISetRestoreLastRunlist, TRUE, DATA_TYPE_BOOL}, // restore last runlist, must be used with -Q
{TEXT("-U"), PISetLastRunlist, NULL, DATA_TYPE_LPCTSTR}, // set last runlist name
2. Added "Include Path in Remote Runlist" preference.
3. Added additional error and trace message

Ver Sept 1, 2005
1. Fixed 2 bugs in reading COMMAND file
a. incorrect message parameters
b. TAV writes complete file spec, but active prompt9ingfile is based on name only... stripped path to name only.

Ver Oct. 3, 2005
1. Added preferences: Scale fonts when saving, and the related Scale index. When scripts are saved from Tpro, the font is stored as applied to the viewable window size. If this script is loaded into, for example, TeleScript AV, then the proportional font size will appear smaller as TAV does not scale fonts according to window size. The "ScaleIndex" combo box lists possible target resolutions and should be set by the user to the expected prompting target resolution... for example, if TAV is the expected target and will run in a 1024X768 window, then the scale index should be set to reflect this. Index 0 is always the DesktopWindow size on the source machine.

In order to affect the changes, the function SCScaleFontToWindow() function was changed. This function is at the heart of many other operations, however, I don't expect any repercussion from these changes as the code is fundamentally unchanged.

Note that this preference will affect only other programs, not Tpro, since Tpro automatically scales all scripts read.
Ver Feb. 2006
1. Altered FontSelect dialog... added hook procedure to allow choice of line length and the ability to apply the font selection to scripts globally, and to set the default font and size to the selection. In performing this change, I re-wrote the font dialog proc -- eliminated the LOGFONT wrapper (TFS). The new function is in SCWinProc(), but uses a hook procedure found in TFS.

1. Fixed minor bugs found in testing changes to font selection routines.
1. Added accelerator fot fg & bg colors

1. Applied PIGetDefFace() to TPX files, which were applying Times New Roman to imported TPX files (f0 in RTF headers).

Ver JS
1. Fixed bug in PRScrollScript() which allowed ScrollPostition to accumulate negative value when at the top of the script in reverse scroll position. This was due to a call to PRGetScrollPosition() which returns a pointer to data which was modified by the program. More correctly, PRGetScrollPosition should require a container. For this funciton however, I simply copied the data to a local POINT, perform operation then restore.

Ver JS - Regression test...
1. I added a combo box to the paragraph properties box for RtoL reading
2. added a "default paragraph properties" to the ProgramInfo structure... it seems to be functioning
3. I added a complete new properties page to the Options... it is headed "Defaults" and has two group boxes
4. Apply Defaults - Loaded Scripts
5. Apply Selected Defaults to scripts as they are loaded checkbox...
followed by
Default Font
Default Line length
Default colors
Default line spacing
Default alignment
Default read dir
6. Apply Defaults - Paste
Paste colors from selection into script
Paste attributes from selection into script
7. All attributes are applied when any script loading action is taken.
8. Colors, if not apply defaults, are determined by sampling the incoming script at random points, then determining which color attributes are statistically most frequent. The background color of this pair will be used for the window color. No script coloring will be done other than this. If a native format (for now TPW) then the script window color will be as stored in the scriptheader.
9. For non-native script formats, a slug line will be derived from the first line of each loaded script.

1. Added PI var that lets the user define the command that's issued by the blue button on the controller. There is no user interface for this preference and, for the moment, Telescript support personnel should be consulted.
2. Fixed the minor bug that did not update the entire runlist after a ScriptInfo field had been changed.

1. Changed LineSpace to slider (from combo box) 2. Added Before and After paragraph spacing... in points... 3. Corrected error in how PARAFORMAT2 was applied to script Ver
1. Fixed runlist re-load bug
2. Fixed Bug with reverse link
3. Fixed bug with defualt value of Line spacing.

1. Added lines allowing use of enhanced SHBroweForFolder(). This enhancement included:
a. calling CoInitializeEx()/CoUninitialize when propertypages are initialized/deinitialized
b. Storing the iMalloc interface and calling iMalloc->Free()/iMalloc->Release() for structures allocated by SH functions.
d. added BIF_USENEWUI for bi.ulFlags member of BROWSEINFO structure.

Added revised serial control routines that work with USB serial control.

Adjusted serial port timeouts.

Version 2007Apr25
Modified to work with MS-Office12 converter

Version 2007Apr25
Includes commandline switch, -V, BypassConvertInit
Version 2008Feb02
This version was originally modified to remove nested tags in TPX script. However, this module was removed. When I compiled and ran the code, I encountered problems which I traced to the use of _itot_s(). There are still three instances of this function, but after study, it appears they're OK in these spots. This version is considered a release, though it has not be subject to the full Alpha/Beta cycle because the changes are minimal.

I also changed a line in XmlUtility.cpp, which now inserts a SPACE for unknownn characters, rather then a '?'. This is to help WAQT with a specific problem. If this causes difficulties for other clients, we can provide for a preference that will assist.

Ver 2008Mar03
Static linking to MSVCRT80.dll... doesn't require runtime installation.

Ver 2008Aug06
1. Error detection mechanism changed following EM_STREAMIN functions. Following the documentation (or lack thereof), it appears that retv==0 is the only reliable error detection mechanism. This applies to both file streaming and streaming from a buffer. This was done in response to a Dhevihi script provided by CIS which returns es.dwError == 0xfffffffa and retv == 1009. The script is apparently intact, even though the error return is set. These es.dwError codes are not documented by MS.
Ver 2008Aug12
1. This revision is a workaround to a problem reported with streaming a Dhivehi TPX script. The problem turned out to be the the inability of the RichEdit EM_STREAMIN function (apparently for Thaana Unicode ONLY) to deal with \u13 \u10 instead of \par. I amended the XmlUtility. Also, the TproXmlBufferProcess utility header is simplified.
Ver. 2008Oct03 JS
1. Fixed this problem reported with defaults, TPW loads and line length (reported by Lisa Owens):
User applies a line length using the Default settings As a file is loaded... the default line length appears to be applied. If the the user then right clicks and goes to Line Length and selects the current Line Length then the user will see the text adjust to a different size -- that size seems to be the correct line length as opposed to the one that is applied as the default.
A series of dashes at the top of the script has been used by Lisa Owens' ops to monitor if the correct line length is being applied.

Ver. 2008Dec09 JS
1. An uninitialized structed in TproControlDeviceSerial/203 might have been causing WHCA problem. I zeroed and set the structure length.
Ver 2009Apr23 JS
1. Fixed keyword attribute assignment inconsistency
2. Added PI KeywordOptions instead of sharing PasteOptions

Ver 2009May06 JS
1. Changed printer routines to handle variable size DEVMODE
2. Changed TPX load to accomodate insertion of header info to scripts as they are loaded.

Ver 2009May18 JS
1. Added some error handling to ProgramInfoInit() that might have allowed a registry permissions violation go undetected.

Ver 2009Oct26 JS
1. Changed the way some errors are handled in the printing functions.
2. Changed TproGlobalFreeIfValid() in TproUtility.cpp
3. This is a TRACE enabled version to see if the Owens & co. printer problem can be remedied by the error handling change.

1. Changed the manner in which the version number is written to the log file and the about box
2. Altered the printer scheme slightly so that the HGLOBAL value for DEVMODE is stored rather than the values from the DEVMODE.
3. The default printer is logged and the DEVMODE and DEVNAMES from this logging is stored to initialize PrintDlgEx() and PageSetupDlg().

Version 2009Nov05 JS
An "RC" version with supertrace compliled out... this can be sent to clients requiring a more current EXE.

Version 011210 JS
Release version with minor changes and some messages that might help find problems for a client using Tpro/News in Greece.
1. Changed EOF error to EPF_INF in WFU_fgets() function. It's not an error -- just end of file.
2. Changed some remote logging messages.

Version 012510 JS
1. Recompiled with corrected XmlUtility which had a latent bug that required Elements to appear in a certain order. This was corrected on 012310.

Version 060710 JS
1. Diagnostic for customer whose version won't go past printer initialization. Use -T switch.
Version 060710 JS
1. PageSetupDataInit() returns false if no default printer is detected. NOTE: on a customers XP computer with no default printer set, the program will seem to hang -- this is the dread MS PageSetupDlg() difficulty, the same one that takes forever to time out when an XP network printer is defaulted on a Vista computer. Win 7 seems to fix this problem.

100310 JS - Version
1. Fixed problem in initialization of HDEVMODE which cause incorrect values to be inserted in PrintDlgEx(), and possibly exhaustion of resources.

100310 JS - Version
1. minor typo fix

100610 JS - Version
1. Altered to run with most current version of RNBO library, spromeps.lib
2. Added help/about to read key information

101410 JS - Version
1. Changed RKCheckLicense() function to log errors.

122710 JS - Version
First compile with VS2010, PSDK V7.0A, DirectXSDK June 2010

122810 JS - Version
1. Added PIEHID capability
2. Added "Controller" property page
2. Added Progress dialog for controller serach
4. Corrected some untyped functions... still more to do.

122910 JS - Version
1. Corrected bug in TproGetUtilities::FormatVersionInfo() which did not foresee possible variable formatting of version strings.

012511 JS - Version
1. Added code to PIGetDefaultScriptPath() which will create a data structure in MyDocuments when Tpro is started if the paths are still set for default values. The subfolders created are Script, Remote and Logfiles
2. Changed splash screen for 2011 releases.
3. Fixed unspecified return types (assumed int) on all source files. There should be no consequences of this, although I did change the return type from int to void on all structure init functions, and I changed a few ints to BOOLS, or UINTs.
4. Fixed inexplicable bug caused by insertion of '!' before "IsWindowVisible" in TproFWWinProc::FWPSetCopntrolDefPosOnScreen(). How this got there, I have no idea!!!

012711 JS - Vertion
1. Added code in ProgramInfo to initialize the Spell Check dictionary path and lexicon files.
2. Added menu access to dictionary dialog (SSCE_EditLexDlg())

030711 JS = Version
1. Added support for multiple xKeys foot pedals.

031511 JS - Version
1. Changed access rights for PIGetCurrentUserKey()

041611 JS - Version
1. Fixed bugs in Font and Paragraph boxes.

052411 JS = Ver
1. Added ProgramInfo workaround for HKLM access error.

061411 JS - Ver
1. Added capability of translating HTML literal entities to XMLUtility.h These literals are not specifically allowed by XML definition, but are used in PCDATA messages from ENPS.
2. Changed ReadBufferCallback() function to return 0 when the number of bytes to transfer is 0... this seems to stop mysterious read failures.
3. Added status in RKDecryptTable function. I don't know why it wasn't already there.

061411 JS - Ver
1. minor changes to remote initialization, including new diagnostic messages.

062311 JS - Ver
1. Added PageNo field
2. Also ability to extract PageNo from TXP files.
3. Added XmlUtilty version to about box.
4. Widened about box to allow more text to show in video section

081811 JS - Version
1. Red arrow option for Frischkorn CA, use -O to enable
2. Repaired reload last runlist on startup bug
3. More reliably startup correct file on double click of file in Windows

081911 JS - Version
1. Modified red arrow for multi color... select from options/General
NOTE: This is a custom option for Frischkorn/Brad... the control widgets are invisible and should remain so for after release to customer.
2. /NR added to about line if NR key is found.

082411 JS Version
1. Custom version for Frischkorn CA... with Dialog box option for arrow color This will become general release in March 2012.

090811 - JS - Version There are no changes in the version. It is the general release with the arrow color dialog gadgets hidden, otherwise, identical to,
100311 JS - Version
1. Mouse wheel or move includes ControllerOptions() in PI and Reg. I copied from TAV... be sure to test thoroughly -- NOTE: mouse wheel proved not to be good for TPRO and I removed the feature.
2. Added SctrlTimeout exposure in PI.

111011 JS - Version
1. Added solid red arrow for one customer / included in general release
2. Graceful port shutdown if virtual port removed while controller is operating.
a. Added section to sync_timeout at line 2175+ in TproControlDeviceSerial.cpp
b. Added command processor for ID_NOTONMENUS_LOSTSCDVCLEANUP
c. added CDCleanUpSctrlError() in ControlDevice.cpp
3. Changed ProgressDlg so message are displayed by WM_PAINT.

120211 JS - Version
1. Added password scheme similar to TAV and TECH
2. Updated RK module according to SafeNet support
3. Updated AboutBox to display driver info and win version
4. Added "Online Support" to Help menu

121011 JS - Version
1. Changed when Inverse sets window color so the results will be more like TAV and TECH.
2. Added "Protected" to attributes and added checking of attributes in selection.