A list of products available on this site
Documentation for XtraMania's xtras
Prices and links to the online store
Xtras, PDFs, samples
Have a question? Ask us!
Contacts
Logo. www.xtramaina.com  
Home Search E-mail
VbSCriptXtra Reference/Version History

VbScriptXtra v1 for Macromedia Director

October 14th, 2003

Version 1.03.004 Build 49
Fixed a bug with setting object property with a value that is a reference to other COM object. It failed with error "Member not found". Fixed.

June 16th, 2003

Version 1.03.003 Build 47
Fixed a bug with passing object pointers back to the event source via event arguments passed by reference.
For example, here is the event handler for Internet Explorer. The event is fired when IE is going to open new browsing window (Shift + Click):
on NewWindow2 me, args
  ie = xtra("VbScriptXtra").\
    createObject("InternetExplorer.Application")
  ie.EventsHandler = script("IEEventsHandler").new()
  ie.StatusBar = false
  args.ppDisp = ie
end

ppDisp argument is expected to be set to new instance of IE that will handle the new window being opened. This object pointer passed by reference as in this example caused exception that prevented the handler to correctly perform its task.
Fixed. Now it works as expected. For more details on events processing see the description of the EventsHandler property.

Added undocumented feature for accessing items of a collection. Collection objects in VB could be iterated via VB: repeat with each item in Collection ... next. There is no way to implement similar technique with Lingo xtra. Usually collections are iterated via Collection.Item(...) method. Sometimes, it is not very convinient. I met this while working with WMI collections.
Now VbScriptXtra's type casting routine can produce a Lingo list with all iterated objects. Use:
lstItems = CollectionObject.__NewEnum
Note two underscores in __NewEnum

December 23rd, 2002

Version 1.03.002 Build 43
Revised error handling methods.

Added new debugging mode. Now when VbScriptXtra detects an error, it tries to call movie level method VbScriptXtra_DebugEvent errMes, errCode. If break point is set inside this method, then whenever error occurs, it allows to see the Lingo statement where error happened, including the calling context.
To activate this mode use xtra("VbScriptXtra").Init(2).

December 23rd, 2002

Version 1.03.001 Build 35
Fixed a bug which caused significant slow down of xtra("VbScriptXtra").CreateObject calls. Especially when creating an object from a type library that has a lot of enumeration values.

December 5th, 2002

Version 1.03.000 Build 33
Added more sophisticated control over "Busy dialog". Now it is up to Lingo to decide how to respond on application's busy state. Xtra-level SetBusyHandler allows to set a parent script instance, which is called when COM server application returned a busy state or when message is waiting while COM call is in progress.

Added support for simple callback objects based on parent script instance. Such objects could be passes as IDispatch object to a custom COM application. External or internal calls to this object are mapped by VbScriptXtra to the wrapped parent script instance. Please, contact me directly if you are interested in this feature.

September 17th, 2002

Version 1.02.006 Build 26
Improved error checking support. Added LastErrorCode wrapper object's property which indicates the numerical code of the error, which corresponds to the error description available via LastError property.

August 5th, 2002

Version 1.02.005 Build 22
Improved support for enumeration constants. Now VbScriptXtra can handle constant values of types other than Integer.

This version supports string constant values found in CDO (Collaboration Data Objects).

ObjectBrowserXtra was updated to properly display these values too. The current version is v1.2.3.14.

May 5th, 2002

Version 1.02.004 Build 21
Added support for custom Unicode text conversion.
Director uses MBCS (Multibyte Character Set). Every character is encoded by one or two bytes. The encoding is based on the particular code page number.
Many COM Automation applications store text data in Unicode encoding (Office, Databases etc.). Unicode text does not rely on the current code page setting, since every character is encoded by two bytes.
The previous versions of VbScriptXtra used system's default ANSI code page to convert Unicode data into MBCS required by Director.
Now you may specify particular code page number to be used in text conversion routines of the xtra. See CodePage wrapper's property for more details. By default the xtra behaves the same way as it did before.

March 24th, 2002

Version 1.02.003 Build 20
Fixed a bug, which prevented events from exe servers (Word, Excel) to be passed to the events handler. Events called by in-proc servers (ADO) worked properly.

Fixed a bug, which caused Director to crash on quitting if events handler was used.

Events handling code was improved to allow VbScriptXtra to accept events with named arguments (Excel uses named arguments). Arguments list that is passed to events handler parent script now changed to a property list. Property names in that list directly correspond to names of arguments. See description of the EventsHandler property for more details.

Applied a workaround to prevent quitting Director while calling 'Quit' event (Word uses it) to a events handler parent script. 'Quit' event is send now as '_Quit' with leading underscore.

Events handler parent script gets every event twice now. The first one is sent in a direct form:
on eventName me, argsList
Then the universal handler is called:
on IncomingEvent me, EventSymbol, argsList
This improvement helps discovering what is sent by a COM Automation object. Note: IncomingEvents gets argsList modified by the first handler (if any).

January 11th, 2002

Version 1.02.002 Build 18
Xtra's code was optimized a bit. Optimization involves a 'GetProperty' method of the wrapper instance. This method first checks for enumeration property values to handle cases like:
put rst.adUseServer
and then if property not found it is passed to the wrapped automation object.
Search of those optimization values was simple linear scan of array, which happens with every property getting.
Now, linear search is replaced to binary search, which is significantly faster when there are a lot of enumeration values.
Performance of 'GetProperty' operation like:
attr=cnn.Attributes
has increased up to ten percents.

December 13th, 2001

Version 1.02.001
Added a detection of the 'busy' state of the server application.
The problem arose for example with Excel being in a cell editing state. VbScriptXtra failed with Lingo error 'Property or method not found' when accessing any method or property of Excel while it was in 'busy' state.
Now VbScriptXtra waits for 5 seconds and then if the application is still busy invokes standard OLE dialog which informs a user about 'busy' state of an application and suggests to either cancel the call or switch to that application and solve the problem or just retry.
Simple (non-cascading) property access does not generate now a 'Property not found' Lingo alert when server application is in busy state. Cascading properties still may issue such error.

November 18th, 2001

Version 1.02.000
Added support for #True and #False symbols to VbScriptXtra typecasting routines. Now it is possible to get Boolean COM Automation values from symbols #True and #False. See typecasting for more details.

November 11th, 2001

Version 1.01.000
Added support for COM Automation Events. VbScriptXtra wrapper objects now support EventsHandler property. Events generated by wrapped automation objects are passed to a parent script attached to this property of the wrapper.

November 4th, 2001

Version 1.00.005
Updated automatic type casting rules when converting Lingo linear or property list into COM SafeArray. Now VbScriptXtra scans all list entries and sees whether they are of unique type (float or integer). If so it creates a SafeArray of that type (double or integer respectively). Otherwise it creates a SafeArray of Variants.

October 29th, 2001

Version 1.00.004
Fixed a bug with Automation objects reference assignment. It always used PropertyPut even when it should be PropertyPutRef. It is possible that some application might behave incorrectly with it, although I did not noticed anything caused by this bug. Fixed.

Fixed a minor bug with outputting error messages into Director's Messages window. Backslashes disappeared from message text. Fixed.

Added 'return' function handling, to allow Director to actually return a Lingo wrapper for ADODB.Connection object. This connection object may accept any function name, since it tries to execute a stored procedure in this way. So using return cnn did not worked as expected. Fixed.

Added 'underscore handling'. Now VbScriptXtra removes a single underscore from the beginning of any symbol passed to the wrapper as method or property name (if any). This allows eliminating a Director's problem of not passing certain names to the xtra at all. Currently noticed names are 'Delete' and 'Append'.
Attempt to invoke Delete method of some Automation object generates a Lingo error before Delete is passed to the xtra (D7, D8, D8.5). The same way behaves D8.5 with Append method. To eliminate this problem use:
object._Delete()
object._Append()
VbScriptXtra will remove the first underscore before passing method name to the wrapped Automation object.

October 15th, 2001

Version 1.00.003
Added support for BinaryXtra.

October 12th, 2001

Version 1.00.002
Bug fix: Failed and Succeeded properties always indicated that everything was good, even if LastError property contained some error description. The internal last error flag was incorrectly cleared before setting or getting any property including Failed and Succeeded.
Now the internal last error flag is cleared right before accessing properties or methods of a wrapped object.

June 26th, 2001

Version 1.00.001
The first public release.

Site homeSearchContact author © Eugene Shoustrov. www.xtramania.com