*** WinBatch+Compiler 2014B BETA ***

Started by Deana, July 09, 2014, 01:20:47 PM

Previous topic - Next topic


We are in the early stages of soliciting beta testers for WinBatch+Compiler 2014B. We would appreciate any feedback you have to offer.
WinBatch+Compiler customers on an active maintenance plan may download a Beta version of the WinBatch+Compiler package.


The beta is available for download on the WinBatch+Compiler download page, under the 'Alternatives Available' by selecting the 'Alternative' button

Thanks in advance,
Wilson WindowWare Support Team
Deana F.
Technical Support
Wilson WindowWare Inc.


QuoteWB 2014B Jul 02, 2014

DLL 6.14bnb First showing up in WB 2014B

    Made several performance related enhancements to the Windows Interface Language parser.

    Modified the 64-bit version of the FileMenu to use the 64-bit version of the WIL interpreter instead of the 32-bit
    interpreter. This change improves performance and stability on 64-bit versions of Windows.

    Fixed a defect in ArrayItemize function that cause it to return an empty item list when the first array element was
    an empty string even though the array had additional elements.

    The 'FileAppend' function now writes system error information to the wwwbatch.ini file when the function fails for
    an otherwise unknown reason.

    Modified the setup program to reduce the occurrence of automatic reboots when performing silent installs.
    NOTE: This change does not remove the need to manually reboot the system to insure that the installation is completed.

    New Functions

       This IntControl frees all resource associated with all Dll Structure handles created by one or more calls to the
       'DllStructAlloc' function. All Dll Structure handles are invalid after using this IntControl.
       The IntControl returns the number of Dll Structure handles destroyed.

       Use this IntControl obtain information about a DLL structure handle.
       p1 a valid DLL structure handle returned by a call to the DllStructAlloc function.
       p2 determines the type of information returned by the IntControl.
       1 = return the size in bytes of a structure represented by the DLL structure handle.
       2 = return the memory address of the buffer holding the C-language structure represented by the DLL structure handle.

    DllStructAlloc(s:member-descriptor[, i:memory-address])
       Create a Dll Structure handle to an entry in the WIL Structure descriptor table.

       The returned handle can be used with DllCall or DllCallcdecl when calling an external DLL entry point that
       requires the memory address of a C/C++ language style structure as a parameter.  The handle can be used to both pass
       information to or retrieve information from the DLL entry point depending on the entry point's implementation.

       The member descriptor string parameter must contain the string representation of the C/C++ language structure to create. 
       Each member of the structure must have both a supported data type specifier and a name.  The data type specifier
       can be any data type from the list below.  The member name can be any text excluding tab (@tab), space (" "), colons ( : ),
       or semicolons ( ; ).  Each data type/member pair can be separated by white space or semicolons. The member data types must
       be compatible with the documented data types for the DLL structure. Each structure member descriptor must be listed in
       the order indicated by the external DLL's documentation or 'header' file.  Use the '[elements]' qualifier to indicate that
       a member is an array.  The opening square bracket ([) must immediately follow the name with no intervening white space and
       'elements' must be an integer indicating the number elements in the array.

       When used, the optional second parameter must be a structure memory address returned by an external DLL entry point. 
       The function copies the contents of the supplied memory location into memory allocated for the structure described by
       the first parameter.  This parameter is only necessary when an entry point returns a memory address to a structure or
       has an out parameter that is a pointer to a pointer to a structure.

       Use the returned DLL structure handle with DllCall or DllCallcdecl by passing the handle to the external function with
       the new 'lpstruct' parameter type specifier. The structure descriptor table shares resources with binary buffers so a
       combined maximum of 128 binary buffer and DLL structure handles can be active at one time.

       "member-descriptor" Tab or space character delimited list of data type*:name pairs of structure members. Data type and
        name must be separated by a colon ( : ) character.

       "memory-address" DLL entry point supplied memory address to a DLL structure.

       Note: the function assumes standard Windows 8 byte structure alignment.

       *Supported data type string include: atom, byte, bool, boolean, char, colorref, dword, dwordlong, dword_ptr, double,
       float, handle, hbitmap, hbrush, hmenu, hcursor, hdesk, hfile, hfont, hglobal, hicon, hiinstance, hkey, hmodule, hmonitor,
       hpen, hrgn, hwnd, hresult, int, int_ptr, int64, long, lptr, long_ptr, lparam, long64, lpstr, lpwstr, short, uchar,
       unsigned char, ushort, uint, ulong, unsigned long, unsigned int, word, wchar, wparam, wndproc.

    DllStructPeek(i:structure-handle, s:member-name)
       Retrieves the value of a member of a DLL structure represented by a structure table handle. Usually, call the function
       after the structure handle has been passed as a parameter during a DLL entry point call to retrieve data suppled by the
       DLL entry point. The structure-handle parameter must be a value returned by the DLLStructAlloc function and the
       member-name parameter must be one of the structure member names supplied in the member descriptor string used to
       create the handle.

       The function returns a string when the member data type is 'lpstr' or 'lpwstr' and an array when array syntax is
       used on the member name in the descriptor string.  A string of decimal digits (a huge number) is returned for most
       8 byte integer data types and a floating point number is returned for the 'double' and 'float' data types. Most other
       data types are represented by an integer return value.

       "structure-handle" Dll Structure handle returned by the DllStructAlloc function.

       "member-Name" Structure member name from the structure descriptor string used to create the 'structure-handle'

    DllStructPoke(i:structure-handle, s:member-name, s/i/a:member-value)
       Set the value of a member of a DLL structure represented by a structure table handle.
       The structure-handle parameter must be a handle supplied by the DllStructAlloc function and the member-name
       parameter must be one of the structure member names from member descriptor string used to create the handle.
       Call the function before passing a DLL structure to a DLL entry point when the entry point is using a structure
       to obtain information from the caller.

       The function attempts to convert the member-value parameter to the data type of the member indicated in the
       structure descriptor string.  However, the value must be an array for array structure members.

       The function returns 1 (@True) on success.

       "structure-handle" Dll struct table handle return by the DllStructAlloc function.

       "member-Name" Structure member name from the structure descriptor string used to create the 'structure-handle'

       "member-value" New value of the structure member. Must be an array for member with an array data type qualifier.

       Free all resources associated with a DLL structure handle. The handle is no longer valid after being passed
       to this function.

       Returns 1 (@True) on success

       "structure-handle" Dll struct table handle return by the DllStructAlloc function

    New Operators

    The Windows Interface Language now supports eleven new compound assignment operators. Compound assignment operator,
    like the simple assignment operator, store the value of the second operand in the variable specified by the first
    operand. However, they also perform  an arithmetic, shift, concatenation, or bitwise operation prior to storing the
    result.  The operation is performed on the existing value of the first operand and the results of the operation is
    then stored as the new value of the first operand.

    Compound assignment operators with examples, simple assignment equivalents, and descriptions:
    <<=           x <<= y        x = x << y     Left Shift with Assignment
    >>=           x >>= y        x = x >> y     Right Shift with Assignment
    &=            x &= y         x = x & y      Bitwise And with Assignment
    |=            x |= y         x = x | y      Bitwise Or with Assignment
    ^=            x ^= y         x = x ^ y      Bitwise Exclusive Or with Assignment
    *=            x *= y         x = x * y      Multiplication with Assignment
    /=            x /= y         x = x / y      Division with Assignment
    +=            x += y         x = x + y      Addition with Assignment
    -=            x -= y         x = x - y      Subtraction with Assignment
    :=            x := y         x = x : y      String Concatenation with Assignment
    mod=          x mod= y       x = x mod y    Modulo with Assignment

   WinBatch Studio

   Corrected a problem in the 64-bit WinBatch Studio debugger that could cause the DllLoad, DllCallCdecl, and
   DllCall functions to fail unexpectedly.

    Fixed several defects that sometimes cause quick help and auto-complete text to be clipped.

    WIL Dialog Editor

    Changed handling of left mouse button events so that a left button click on a control that is part of a
    multiple control selection list will cause the control to be removed from the list.  Previously, left clicking
    on a control caused the multiple selection to be cancelled. This change only applies when the control key is
    not pressed along with the left mouse button.

    Added the 'Select All' menu item to the 'Edit' menu. Selecting this menu item will result in the adding of all
    controls to the multiple selection list.
Deana F.
Technical Support
Wilson WindowWare Inc.