-----------------------------------------------
                          VFP ADVANCED (X64) HISTORY
                                January 2020
                 -----------------------------------------------
                                    CCB



**************************************************
2020/9/16

    1, Fix some compatible problems for high DPI settings.

--------------------------------------------------
   VFP Advanced 32-bit & 64-bit Update 20200916
--------------------------------------------------

Please refer to:
https://support.microsoft.com/en-us/help/3025083/windows-scaling-issues-for-high-dpi-devices

When set scaling to greater than 100% on Windows 10,
some elements such as applications, the taskbar, icons, toolbars, text, and dialog boxes appear to be fuzzy.

For the VFP Advanced old version,
we can change some application properties to solve the problem, for example,
In Explorer or on the Start menu, right-click the application name, select Properties, select the Compatibility tab,
and then select the "Disable display scaling on high DPI settings" check box.

In Windows 10 Version 1703 and later version of Windows,
the text of the "Disable display scaling on high DPI settings" option is changed to "Override high DPI scaling behavior",
scaling performed by: Application.

Please refer to the manifest data of the old VFP Advanced executable file vfpa.exe and the compiled executable files:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<assemblyIdentity 
	version="1.0.0.0" 
	type="win32" 
	name="Microsoft.VisualFoxPro" 
	processorArchitecture="x86"
/>
<description>Visual FoxPro</description>
<dependency>
    <dependentAssembly>
        <assemblyIdentity
            type="win32"
            name="Microsoft.Windows.Common-Controls"
            version="6.0.0.0"
            language="*"
            processorArchitecture="x86"
            publicKeyToken="6595b64144ccf1df"
        />
    </dependentAssembly>
</dependency>
</assembly>

Please refer to the manifest data of the new VFP Advanced executable file vfpa.exe and the compiled executable files:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<assemblyIdentity 
	version="1.0.0.0" 
	type="win32" 
	name="Microsoft.VisualFoxPro" 
	processorArchitecture="x86"
/>
<description>Visual FoxPro</description>
<dependency>
    <dependentAssembly>
        <assemblyIdentity
            type="win32"
            name="Microsoft.Windows.Common-Controls"
            version="6.0.0.0"
            language="*"
            processorArchitecture="x86"
            publicKeyToken="6595b64144ccf1df"
        />
    </dependentAssembly>
</dependency>
<application xmlns="urn:schemas-microsoft-com:asm.v3">
  <windowsSettings>
    <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">false</dpiAware>
    <dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitor</dpiAwareness>
  </windowsSettings>
</application>
</assembly>

So, for the VFP Advanced new version,
we needn't set the "Disable display scaling on high DPI settings" for the VFP Advanced executable file vfpa.exe
and the compiled executable files, because it's the default setting.


**************************************************
2020/8/30

    1, VFP 9.0 Fix123 - SYS(9035) Enables or Disables Adjusting the Precision for the Division Operator ok.
    2, VFP 9.0 Fix124 - Adjust the Precision for the Division Operator ok.


**************************************************
2020/8/29

--------------------------------------------------
   VFP Advanced 32-bit & 64-bit Update 20200829
--------------------------------------------------

I did some changes to fix the report problem,
please refer to:
http://baiyujia.com/vfpdocuments/f_vfp9fix40.asp
FIX THE REPORT OBJECTS ARE TOO LARGE

The new version has fixed some problems:
1, the the report objects with "Stretch with overflow" problem,
2, the "Line or Shape objects are too wide" problem,
3, the "LABEL FORM ..." statement.


**************************************************
2020/7/28

--------------------------------------------------
   VFP Advanced 32-bit & 64-bit Update 20200728
--------------------------------------------------

I did some changes to fix the Header.ToolTipText property problem in November 2016,
please refer to:
http://www.baiyujia.com/vfpdocuments/f_vfp9fix20.asp

Perhaps there are some problem in the fix code,
when we moving the mouse on the Grid control,
sometimes it occurs a C0000005 error.

The 20200728 version has removed the fix code for vfp9fix20,
I recommend to update VFP Advanced to the 20200728 version.


**************************************************
2020/7/22

    1, VFP 9.0 Fix120 - SYS(9033) Enables or Disables Setting the Maximum Buffer Memory Size to the Maximum Foreground Buffer Memory Size ok.
    2, VFP 9.0 Fix121 - Set the Maximum Buffer Memory Size to the Maximum Foreground Buffer Memory Size ok.
    3, VFP 9.0 Fix122 - SYS(9034) Sets or Returns the Title Bar Text of the Exception Dialog Box ok.


**************************************************
2020/5/30

    1, VFP Advanced (x64) 10.1 Beta version.

-----------------------------------------------------
   VFP Advanced 32-bit & 64-bit 10.1 Beta version
-----------------------------------------------------

VFP Advanced 10.1 or later version can use Large memory.

When VFP Advanced 32-bit 10.1 or later version running on Windows 32-bit system,
it can use 4 GB memory (double of VFP 9.0).
When VFP Advanced 32-bit 10.1 or later version running on Windows 64-bit system,
it can use 32 GB (maximum) memory.
When VFP Advanced 64-bit 10.1 or later version running on Windows 64-bit system,
it can use all memory.


**************************************************
2020/5/26

--------------------------------------------------
   VFP Advanced 32-bit & 64-bit Update 20200526
--------------------------------------------------

In the VFP Advanced old version, sometimes it occurs a C0000005 error when it running the "RELEASE WINDOW" statement.
The main reason is that the window USERDATA is bad.
So I recommend to update VFP Advanced to the 20200526 version.


**************************************************
2020/5/23

    1, VFP 9.0 Fix114 - SYS(9083) Sets or Returns the Number of Processes for Visual FoxPro Large Memory Manager ok.
    2, VFP 9.0 Fix115 - SYS(9084) Returns the Amount of Memory Used in Visual FoxPro Large Memory Manager ok.
    3, VFP 9.0 Fix116 - SYS(9031) Enables or Disables Evaluating the Label.Caption Property Expression ok.
    4, VFP 9.0 Fix117 - Evaluate the Label.Caption Property Expression ok.
    5, VFP 9.0 Fix118 - SYS(9032) Enables or Disables the COMPILE DATABASE Command to Compile Database Files into New File Format ok.
    6, VFP 9.0 Fix119 - The COMPILE DATABASE Command Compiles Database Files into New File Format ok.


**************************************************
2020/4/21

Bugs Fixed:

    1, Fix some problems for the SQLEXEC() function and remote views.

--------------------------------------------------
   VFP Advanced 32-bit & 64-bit Update 20200421
--------------------------------------------------

1, In the VFP Advanced 64-bit old version,
there are some problems for the SQLEXEC() function.

For example,
LOCAL lVar
lVar="aaaaa"
=sqlexec(m.q_connecthandle,"{CALL up_testa(?@lVar)}")
?lVar

ALTER PROCEDURE [dbo].[up_testa] 
    @p1 varchar(30) OUTPUT
AS
BEGIN
    SELECT @p1 = 'bbbbbxxx'
    RETURN
END

After call the SQLEXEC() function,
lVar="bbbbb"
it is wrong.

The main reason is that it does not update the length of the returned variable.

The bug has been fixed in the VFP Advanced 64-bit new version.

2, In the VFP Advanced 64-bit old version,
the Maximum number of parameters is 128 for the SQLEXEC() function and remote views.

For example,
=SQLEXEC(m.q_connecthandle,"UPDATE mytable SET fld1=?p1, fld2=?p2, ... WHERE fldk1=?k1 AND fldk2=?k2 AND ...")

For remote views,
if we set the WhereType property to:
2 (DB_KEYANDUPDATABLE),
or 3 (DB_KEYANDMODIFIED, the default setting),
it need more parameters.

In the VFP Advanced 64-bit new version,
the Maximum number of parameters is 512 for the SQLEXEC() function or remote views.


**************************************************
2020/4/5

    1, VFP 9.0 Fix112 - SYS(9081) Enables or Disables Supporting Large Files ok.
    2, VFP 9.0 Fix113 - SYS(9082) Enables or Disables Supporting Large Memory ok.


**************************************************
2020/3/30

    1, VFP Advanced (x64) 10.1 Alpha version.

-----------------------------------------------------
   VFP Advanced 32-bit & 64-bit 10.1 Alpha version
-----------------------------------------------------

VFP Advanced 10.1 or later version can use Large Files.

For Large Files, there is no any changes for the dbf, fpt and cdx files structure.

Maximum size of a file: 2048 TB.
Maximum # of records per table file:  1 billion (same as VFP 9.0).
Maximum size of a table file (or cursor): 1 billion * RECSIZE(), if RECSIZE()=65500 (maximum), it is 65 TB.
Maximum block of an FPT file: 2 billion.
Maximum size of an FPT file: 2 billion * SET("BLOCKSIZE"), if SET("BLOCKSIZE")=64 (default setting), it is 128 GB.
Maximum size of an index file: 4 GB (double of VFP 9.0).


--------------------------------------------------
   VFP Advanced 32-bit & 64-bit Update 20200323
--------------------------------------------------

There is a C0000005 error in VFP Advanced for a few years, now it has been fixed in the new version.
If we set Compatibility mode to "Windows 7" in Windows 10 for the executable file compiled with VFP Advanced,
we can reproduce the C0000005 error.
The main reason is that the executable file accesses the memory which has been freed.
So I recommend to update VFP Advanced to the 20200323 version.


**************************************************
2020/3/1

    1, VFP 9.0 Fix106 - SYS(9028) Returns the Current System Date and Time in Coordinated Universal Time (UTC) ok.
    2, VFP 9.0 Fix107 - SYS(9029) Sets or Returns the Number of Times to Try Again After Open File Exclusive Failed ok.
    3, VFP 9.0 Fix108 - The Number of Times to Try Again After Open File Exclusive Failed ok.
    4, VFP 9.0 Fix109 - SYS(9030) Sets or Returns the Number of Times to Try Again After Lock File Failed ok.
    5, VFP 9.0 Fix110 - The Number of Times to Try Again After Lock File Failed ok.
    6, VFP 9.0 Fix111 - RATC() Function ok.


--------------------------------------------------
   VFP Advanced 32-bit & 64-bit Update 20200301
--------------------------------------------------

VFP 9.0 Fix111 - RATC() Function ok.
http://www.baiyujia.com/vfpdocuments/f_vfp9fix111.asp

In vfp9 (and vfp6, vfp7, vfp8), sometimes vfp will crash when calling the RATC() function.
The bug only occurs in DBCS (Double-Byte Character Sets) environments.
In non-DBCS (Double-Byte Character Sets) environments, the RATC() function is the same as the RAT() function,
so there is no the bug.


**************************************************
2019/12/30

    1, VFP Advanced (x64) 2019 Release version.


**************************************************
2019/12/28

    1, VFP 9.0 Fix93 - SYS(9025) Enables or Disables Creating the Private Variable in the TEXT ... ENDTEXT Command Automatically ok.
    2, VFP 9.0 Fix94 - Create the Private Variable in the TEXT ... ENDTEXT Command Automatically ok.
    3, VFP 9.0 Fix95 - The Maximum Number of Characters per Command Line ok.
    4, VFP 9.0 Fix96 - The New Default Value for the SYS(3055) Function ok.
    5, VFP 9.0 Fix97 - SYS(9026) Enables or Disables Adjusting the Precision for the STR() Function ok.
    6, VFP 9.0 Fix98 - Adjust the Precision for the STR() Function ok.
    7, VFP 9.0 Fix99 - The Maximum Number of Characters for the Label.Caption Property ok.
    8, VFP 9.0 Fix100 - The Maximum Number of Characters for the GETENV() Function ok.
    9, VFP 9.0 Fix101 - DIR or DISPLAY FILES Command ok.
    10, VFP 9.0 Fix102 - The Maximum Number of Characters for the Application Search Path ok.
    11, VFP 9.0 Fix103 - The Maximum Number of Characters for the SET PATH Command ok.
    12, VFP 9.0 Fix104 - SYS(9027) Returns the Path of a Special Folder ok.
    13, VFP 9.0 Fix105 - The Maximum Number of Functions for the CALCULATE Command ok.


--------------------------------------------------
   VFP Advanced 32-bit & 64-bit Update 20191205
--------------------------------------------------

VFP 9.0 Fix101 - DIR or DISPLAY FILES Command ok.
http://www.baiyujia.com/vfpdocuments/f_vfp9fix101.asp

In vfp9 (and vfp6, vfp7, vfp8), the DIR or DISPLAY FILES command can only display the file size < 2 GB,
now the DIR or DISPLAY FILES command can display the file size > 2 GB.

There is no the bug for the DIR or DISPLAY FILES command displaying the total number of bytes remaining on the disk.


--------------------------------------------------
   VFP Advanced 32-bit & 64-bit Update 20191122
--------------------------------------------------

VFP 9.0 Fix100 - The Maximum Number of Characters for the GETENV() Function ok.
VFP 9.0 Fix102 - The Maximum Number of Characters for the Application Search Path ok.
VFP 9.0 Fix103 - The Maximum Number of Characters for the SET PATH Command ok.
http://www.baiyujia.com/vfpdocuments/f_vfp9fix100.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix102.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix103.asp

In vfp9 (and vfp6, vfp7, vfp8),
the maximum number of characters for the GETENV() function is 255,
now the maximum number of characters for the GETENV() function is 8191.

In vfp9 (and vfp6, vfp7, vfp8),
the maximum number of characters for the application search path (from the MS-DOS environment variable PATH) is 1023,
now the maximum number of characters for the application search path (from the MS-DOS environment variable PATH) is 8191.

In vfp9 (and vfp6, vfp7, vfp8),
the maximum number of characters for the SET PATH command (and the SET("PATH") function) is 4095,
now the maximum number of characters for the SET PATH command (and the SET("PATH") function) is 8191.


--------------------------------------------------
   VFP Advanced 32-bit & 64-bit Update 20191120
--------------------------------------------------

VFP 9.0 Fix99 - The Maximum Number of Characters for the Label.Caption property ok.
http://www.baiyujia.com/vfpdocuments/f_vfp9fix99.asp

In vfp9 (and vfp6, vfp7, vfp8), the maximum number of characters for the Label.Caption property is 255,
now the maximum number of characters for the Label.Caption property is 16383.


--------------------------------------------------
   VFP Advanced 32-bit & 64-bit Update 20191030
--------------------------------------------------

VFP 9.0 Fix95 - Maximum Number of Characters per Command Line ok.
http://www.baiyujia.com/vfpdocuments/f_vfp9fix95.asp

In vfp9 (and vfp6, vfp7, vfp8), the maximum number of characters per command line is 8192,
now the maximum number of characters per command line is 16384.

The following commands and functions have been fixed to support the maximum number of characters per command line is 16384:
COMPILE Command
Macro Substitution
EXECSCRIPT() Function
EVALUATE() Function
TYPE() function
VARTYPE() function
IIF() function
ICASE() function
SELECT - SQL Command
UPDATE - SQL Command
DELETE - SQL Command
INSERT - SQL Command
CREATE VIEW - SQL Command
MODIFY VIEW - SQL Command
LOCATE Command
BROWSE Command
EDIT Command
REPLACE Command
DELETE Command
APPEND Command

Please download the file vfp9fixall.7z from:
http://www.baiyujia.com/f_download.asp
VFP 9.0 Fixes [ALL-IN-ONE]
there are some test program files in the folder vfp9fix95\testlongline.

If you find any bugs,
or want to use other commands and functions to support the maximum number of characters per command line is 16384,
please send an email to me.


--------------------------------------------------
   VFP Advanced 32-bit & 64-bit Update 20191002
--------------------------------------------------

VFP 9.0 Fix93 - SYS(9023) Enables or Disables Creating the Private Variable in the TEXT ... ENDTEXT Command Automatically ok.
VFP 9.0 Fix94 - Create the Private Variable in the TEXT ... ENDTEXT Command Automatically ok.
http://www.baiyujia.com/vfpdocuments/f_vfp9fix93.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix94.asp

If we enable creating the private variable in the TEXT ... ENDTEXT command automatically
and the variable doesn't exist,
Visual FoxPro automatically creates it as a private variable.

For "the variable doesn't exist", that is:
if there is no "PRIVATE var1",
or there is only "PRIVATE var1" but there is no "var1 = ...",
then Visual FoxPro automatically creates it as a private variable.

If we disable creating the private variable in the TEXT ... ENDTEXT command automatically
and the variable has not yet been declared,
Visual FoxPro automatically creates it as a private variable.

For "the variable has not yet been declared", that is:
if there is no "PRIVATE var1" and there is no "var1 = ...",
then Visual FoxPro automatically creates it as a private variable.
if there is "PRIVATE var1" and there is no "var1 = ...",
then Visual FoxPro does NOT create it as a private variable.


**************************************************
2019/9/30

    1, VFP 9.0 Fix82 - The Command-Line Options ok.
    2, VFP 9.0 Fix83 - The Command Window is Small ok.
    3, VFP 9.0 Fix84 - SYS(9022) Enables or Disables the BUILD EXE Command to Use the Windows System Cache ok.
    4, VFP 9.0 Fix85 - The BUILD EXE Command Uses the Windows System Cache ok.
    5, VFP 9.0 Fix86 - The New Expressions for the CALCULATE Command ok.
    6, VFP 9.0 Fix87 - SYS(9023) Enables or Disables Closing the File Handle _TEXT Before Entry the ON ERROR Routine ok.
    7, VFP 9.0 Fix88 - Close the File Handle _TEXT Before Entry the ON ERROR Routine ok.
    8, VFP 9.0 Fix89 - SYS(9024) Enables or Disables Reading Data from the File in an Executable File when End-of-file ok.
    9, VFP 9.0 Fix90 - Read Data from the File in an Executable File when End-of-file ok.
    10, VFP 9.0 Fix91 - SQLSETPROP() Function ok.
    11, VFP 9.0 Fix92 - The New Access Keys for the Menu Items Enlarge Font and Reduce Font ok.


--------------------------------------------------
   VFP Advanced 32-bit & 64-bit Update 20190921
--------------------------------------------------

I did some changes, now the VERSION() function returns "Visual FoxPro 10.00.0000.yymm for Windows",
yymm - 2 digits of year and 2 digits of month, for example,
For the 20190921 version, the VERSION() function returns "Visual FoxPro 10.00.0000.1909 for Windows".


--------------------------------------------------
   VFP Advanced 32-bit & 64-bit Update 20190920
--------------------------------------------------

VFP 9.0 Fix92 - The New Access Keys for the Menu Items Enlarge Font and Reduce Font ok.
http://www.baiyujia.com/vfpdocuments/f_vfp9fix92.asp

     Visual FoxPro Advanced supports the following keyboard shortcuts in Editor: 
     ---------------------------------------------------------------------------------------------------------------
     | CTRL+SHIFT+UPARROW   | Enlarge font.                                                                        |
     ---------------------------------------------------------------------------------------------------------------
     | CTRL+SHIFT+DNARROW   | Reduce font.                                                                         |
     ---------------------------------------------------------------------------------------------------------------


--------------------------------------------------
   VFP Advanced 32-bit & 64-bit Update 20190830
--------------------------------------------------

VFP 9.0 Fix91 - SQLSETPROP() Function ok.
In vfp9 (and vfp6, vfp7, vfp8), sometimes the SQLSETPROP(0,"Transactions",1) function occurs an error:
Connection 0# is busy (Error 1541).
The bug only occurs on some Windows versions or some ODBC drivers.


--------------------------------------------------
   VFP Advanced 32-bit & 64-bit Update 20190818
--------------------------------------------------

VFP 9.0 Fix87 - SYS(9023) Enables or Disables Closing the File Handle _TEXT Before Entry the ON ERROR Routine ok.
VFP 9.0 Fix88 - Close the File Handle _TEXT Before Entry the ON ERROR Routine ok.
http://www.baiyujia.com/vfpdocuments/f_vfp9fix87.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix88.asp

In vfp9, vfp will close the file handle _TEXT before entry the ON ERROR routine.
The bug only occurs in vfp9, it does not occur in vfp6, vfp7 and vfp8.

We can set:
SYS(9023,0)
Disables closing the file handle _TEXT before entry the ON ERROR routine,
then it is the same as vfp6, vfp7 and vfp8.


--------------------------------------------------
   VFP Advanced 32-bit & 64-bit Update 20190815
--------------------------------------------------

VFP 9.0 Fix86 - The New Expressions for the CALCULATE Command ok.
http://www.baiyujia.com/vfpdocuments/f_vfp9fix86.asp

Specifies the expressions that can contain any combination of the following functions in Visual FoxPro Advanced:

BAND(nExpression)
Performs a bitwise AND operation on the values of nExpression.
Only records meeting the Scope and/or optional FOR or WHILE conditions are included in the result.

BOR(nExpression)
Performs a bitwise OR operation on the values of nExpression.
Only records meeting the Scope and/or optional FOR or WHILE conditions are included in the result.

BXOR(nExpression)
Performs a bitwise XOR operation on the values of nExpression.
Only records meeting the Scope and/or optional FOR or WHILE conditions are included in the result.

I did some test,
the code:
CALCULATE BOR(jj),BOR(jj2),BOR(jj3),BOR(jj4),BOR(jj5) TO laresult,laresult2,laresult3,laresult4,laresult5
runs faster than the code:
SCAN
   laresult=BITOR(m.laresult,jj)
   laresult2=BITOR(m.laresult2,jj2)
   laresult3=BITOR(m.laresult3,jj3)
   laresult4=BITOR(m.laresult4,jj4)
   laresult5=BITOR(m.laresult5,jj5)
ENDSCAN


--------------------------------------------------
   VFP Advanced 32-bit & 64-bit Update 20190718
--------------------------------------------------

VFP 9.0 Fix46 - The VARCHAR(MAX) Fields from SQL Server are Mapped as C(0) Fields ok.
http://www.baiyujia.com/vfpdocuments/f_vfp9fix46.asp
Now the VARBINARY(MAX) fields from SQL Server are mapped as Blob fields too,
and the XML fields from SQL Server are mapped as Memo fields too.


--------------------------------------------------
   VFP Advanced 32-bit & 64-bit Update 20190716
--------------------------------------------------

The new version fixed some bugs for the CursorAdapter.CursorFill() function.


--------------------------------------------------
   VFP Advanced 32-bit & 64-bit Update 20190706
--------------------------------------------------

The new version fixed some bugs for the library files samples\api\winapims.lib and ocxapi.lib.


--------------------------------------------------
   VFP Advanced 32-bit & 64-bit Update 20190624
--------------------------------------------------

The new version fixed some bugs for the APRINTERS() function.
In the VFP Advanced 64-bit old version, the APRINTERS() function can only return < 10 printers.
In the VFP Advanced 64-bit new version, the APRINTERS() function can return < 128 printers.


--------------------------------------------------
   VFP Advanced 32-bit & 64-bit Update 20190621
--------------------------------------------------

The new version fixed some bugs for the windows apis EnumProcessModules() and EnumProcessModulesEx().
In the VFP Advanced 64-bit old version,
the Windows APIs EnumProcessModules() and EnumProcessModulesEx() can only enumerate < 64 modules.
In the VFP Advanced 64-bit new version,
the Windows APIs EnumProcessModules() and EnumProcessModulesEx() can enumerate < 256 modules.


--------------------------------------------------
   VFP Advanced 32-bit & 64-bit Update 20190518
--------------------------------------------------

For the VFP Advanced 32-bit & 64-bit old version (from 20171203 to 20190510 version),
there are some issues for the fix "VFP 9.0 FIX - COPY FILE COMMAND" (http://www.baiyujia.com/vfpdocuments/f_vfp9fix35.asp),
for example,
COPY FILE testaaa.txt TO testbbb.txt
&& but there is no the file testaaa.txt, VFP Advanced occurs an error:
&& File "testaaa.txt" does not exist (Error 1).
OPEN DATABASE testdata.dbc
&& there is the DATABASE testdata.dbc, but the VFP Advanced old version occurs an error:
&& File "testdata.dbc" is not a database (Error 1552).

The VFP Advanced 32-bit & 64-bit 20190518 version has fixed the bug.


--------------------------------------------------
   VFP Advanced 32-bit & 64-bit Update 20190421
--------------------------------------------------

Fix some compatible problems about file access for the Windows Defender program or the antivirus programs.

For the VFP Advanced old version
================================
There are some compatible problems when the STRTOFILE() function calls the CreateFileA Windows API
for the Windows Defender program or the antivirus programs.
Now if the STRTOFILE() function calls the CreateFileA Windows API failed,
it will call the CreateFileA Windows API 5 times (perhaps it will delay 100ms x 5 = 500ms) again.

For the VFP Advanced 20190421 version
=====================================
There are some compatible problems when the STRTOFILE() function calls the CreateFileA Windows API
for the Windows Defender program or the antivirus programs.
Now if the STRTOFILE() function calls the CreateFileA Windows API failed,
it will call the CreateFileA Windows API 3 times (perhaps it will delay 50ms x 3 = 150ms) again.

For the VFP Advanced 64-bit 20190421 version
============================================
Fix some problems for the COM+ Applications in Component Services on Windows 10.


--------------------------------------------------
   VFP Advanced 32-bit & 64-bit Update 20190404
--------------------------------------------------

Fix some compatible problems for the antivirus programs.

     We get the following scan results from the website www.virustotal.com:
     ---------------------------------------------------------------------------
     | VFP ADVANCED 32-BIT FILES | SCAN RESULTS                                |
     ---------------------------------------------------------------------------
     | VFPA.EXE                  | Cylance: Unsafe                             |
     ---------------------------------------------------------------------------
     | VFPAR.DLL                 | Clean.                                      |
     ---------------------------------------------------------------------------
     | VFPAT.DLL                 | Clean.                                      |
     ---------------------------------------------------------------------------
     | Compiled exe files        | Clean.                                      |
     ---------------------------------------------------------------------------
     | Compiled dll files        | Clean.                                      |
     ---------------------------------------------------------------------------
     | Compiled mtdll files      | Clean.                                      |
     ---------------------------------------------------------------------------

     We get the following scan results from the website www.virustotal.com:
     ---------------------------------------------------------------------------------
     | VFP ADVANCED 64-BIT FILES | SCAN RESULTS                                      |
     ---------------------------------------------------------------------------------
     | VFPA.EXE                  | Clean.                                            |
     ---------------------------------------------------------------------------------
     | VFPAR.DLL                 | Clean.                                            |
     ---------------------------------------------------------------------------------
     | VFPAT.DLL                 | Clean.                                            |
     ---------------------------------------------------------------------------------
     | Compiled exe files        | Cybereason: malicious.6b8445                      |
     ---------------------------------------------------------------------------------
     | Compiled dll files        | Clean.                                            |
     ---------------------------------------------------------------------------------
     | Compiled mtdll files      | Clean.                                            |
     ---------------------------------------------------------------------------------


**************************************************
2019/3/30

Bugs Fixed:

    1, Fix some problems for the COM+ Applications in Component Services.


**************************************************
2019/3/20

    1, VFP 9.0 Fix59 - SYS(9080) Enables or Disables Releasing the COM Object ok.
    2, VFP 9.0 Fix60 - ComboBox Control Select Item ok.
    3, VFP 9.0 Fix61 - SYS(9011) Sets or Returns the Maximum Number of Window Items to Display in the Window Menu ok.
    4, VFP 9.0 Fix62 - The Maximum Number of Window Items to Display in the Window Menu ok.
    5, VFP 9.0 Fix63 - SYS(9012) Sets or Returns the Direction of the List Portion of the ComboBox Control ok.
    6, VFP 9.0 Fix64 - The Direction of the List Portion of the ComboBox Control ok.
    7, VFP 9.0 Fix65 - SYS(9013) Enables or Disables the FILETOSTR() Function to Use the Windows System Cache ok.
    8, VFP 9.0 Fix66 - The FILETOSTR() Function Uses the Windows System Cache ok.
    9, VFP 9.0 Fix67 - SYS(9014) Enables or Disables the STRTOFILE() Function to Use the Windows System Cache ok.
    10, VFP 9.0 Fix68 - The STRTOFILE() Function Uses the Windows System Cache ok.
    11, VFP 9.0 Fix69 - SYS(9015) Sets or Returns the Number of Times to Try Again After Delete File Failed ok.
    12, VFP 9.0 Fix70 - The Number of Times to Try Again After Delete File Failed ok.
    13, VFP 9.0 Fix71 - SYS(9016) Sets or Returns the Number of Times to Try Again After Create Directory Failed ok.
    14, VFP 9.0 Fix72 - The Number of Times to Try Again After Create Directory Failed ok.
    15, VFP 9.0 Fix73 - SYS(9017) Sets or Returns the Number of Times to Try Again After Remove Directory Failed ok.
    16, VFP 9.0 Fix74 - The Number of Times to Try Again After Remove Directory Failed ok.
    17, VFP 9.0 Fix75 - Open File or Save File Dialog Box ok.
    18, VFP 9.0 Fix76 - SYS(9018) Enables or Disables the VERSION() Function to Return the New Version Information ok.
    19, VFP 9.0 Fix77 - The VERSION() Function Returns the New Version Information ok.
    20, VFP 9.0 Fix78 - SYS(9019) Enables or Disables the OS() Function to Return the New Operating System Information ok.
    21, VFP 9.0 Fix79 - SYS(9020) Enables or Disables Expanding the Special Terms in the Configuration File ok.
    22, VFP 9.0 Fix80 - Expand the Special Terms in the Configuration File ok.
    23, VFP 9.0 Fix81 - SYS(9021) Reset the Special Terms ok.


--------------------------------------------------
   VFP Advanced 32-bit & 64-bit Update 20190320
--------------------------------------------------

VFP 9.0 Fix79 - SYS(9020) Enables or Disables Expanding the Special Terms in the Configuration File ok.
VFP 9.0 Fix80 - Expand the Special Terms in the Configuration File ok.
http://www.baiyujia.com/vfpdocuments/f_vfp9fix79.asp

     The following list contains the special terms in Visual FoxPro Advanced:
     -------------------------------------------------------------------------------------------------------------
     | Term and syntax            | Description                                                                  |
     -------------------------------------------------------------------------------------------------------------
     | TMPFILES=path              | Specifies where temporary work files                                         |
     -------------------------------------------------------------------------------------------------------------
     | EDITWORK=path              | Specifies where the text editor should place its work files	                 |
     -------------------------------------------------------------------------------------------------------------
     | PROGWORK=path              | Specifies where Visual FoxPro stores the program cache file	                 |
     -------------------------------------------------------------------------------------------------------------
     | SORTWORK=path              | Specifies where commands such as SORT and INDEX should place work files      |
     -------------------------------------------------------------------------------------------------------------

     The following list contains the expanded Environment Variables in Visual FoxPro Advanced:
     -------------------------------------------------------------------------------------------------------------
     | Environment Variables      | Description                                                                  |
     -------------------------------------------------------------------------------------------------------------
     | User Environment Variables | For example, TMPFILES=%TEMP%                                                 |
     -------------------------------------------------------------------------------------------------------------
     | VFPPROCESSID               | The GetCurrentProcessId() Windows API, returns a 8-character name.           |
     |                            | For example, TMPFILES=%TEMP%\%VFPPROCESSID%                                  |
     -------------------------------------------------------------------------------------------------------------
     | VFPGUID                    | The CoCreateGuid() Windows API, returns a 38-character name.                 |
     |                            | For example, TMPFILES=%TEMP%\%VFPGUID%                                       |
     -------------------------------------------------------------------------------------------------------------
     | VFPTIMESTAMP               | Visual FoxPro TIMESTAMP data, returns a 10-character name.                   |
     |                            | For example, TMPFILES=%TEMP%\%VFPTIMESTAMP%                                  |
     -------------------------------------------------------------------------------------------------------------
     | VFPPROCNAME                | The SYS(2015) function, returns a unique 10-character procedure name.        |
     |                            | For example, TMPFILES=%TEMP%\%VFPPROCNAME%                                   |
     -------------------------------------------------------------------------------------------------------------

VFP 9.0 Fix81 - SYS(9021) Reset the Special Terms ok.
http://www.baiyujia.com/vfpdocuments/f_vfp9fix81.asp

     The following list contains the special terms in Visual FoxPro Advanced:
     -------------------------------------------------------------------------------------------------------------
     | Term and syntax            | Description                                                                  |
     -------------------------------------------------------------------------------------------------------------
     | SYS(9021,"TMPFILES",path)  | Specifies where temporary work files                                         |
     -------------------------------------------------------------------------------------------------------------
     | SYS(9021,"EDITWORK",path)  | Specifies where the text editor should place its work files	                 |
     -------------------------------------------------------------------------------------------------------------
     | SYS(9021,"PROGWORK",path)  | Specifies where Visual FoxPro stores the program cache file	                 |
     -------------------------------------------------------------------------------------------------------------
     | SYS(9021,"SORTWORK",path)  | Specifies where commands such as SORT and INDEX should place work files      |
     -------------------------------------------------------------------------------------------------------------

     The following list contains the expanded Environment Variables in Visual FoxPro Advanced:
     -------------------------------------------------------------------------------------------------------------
     | Environment Variables      | Description                                                                  |
     -------------------------------------------------------------------------------------------------------------
     | User Environment Variables | For example, SYS(9021,"TMPFILES","%TEMP%")                                   |
     -------------------------------------------------------------------------------------------------------------
     | VFPPROCESSID               | The GetCurrentProcessId() Windows API, returns a 8-character name.           |
     |                            | For example, SYS(9021,"TMPFILES","%TEMP%\%VFPPROCESSID%")                    |
     -------------------------------------------------------------------------------------------------------------
     | VFPGUID                    | The CoCreateGuid() Windows API, returns a 38-character name.                 |
     |                            | For example, SYS(9021,"TMPFILES","%TEMP%\%VFPGUID%")                         |
     -------------------------------------------------------------------------------------------------------------
     | VFPTIMESTAMP               | Visual FoxPro TIMESTAMP data, returns a 10-character name.                   |
     |                            | For example, SYS(9021,"TMPFILES","%TEMP%\%VFPTIMESTAMP%")                    |
     -------------------------------------------------------------------------------------------------------------
     | VFPPROCNAME                | The SYS(2015) function, returns a unique 10-character procedure name.        |
     |                            | For example, SYS(9021,"TMPFILES","%TEMP%\%VFPPROCNAME%")                     |
     -------------------------------------------------------------------------------------------------------------

We can do some changes in the configuration file config.fpw, for example,
TMPFILES=%TEMP%\%VFPPROCESSID%

We can also do some changes in the main program main.prg, for example,
SYS(9021,"TMPFILES","%TEMP%\%VFPPROCESSID%")
SYS(9021,"TMPFILES",ADDBS(GETENV("TEMP"))+PADL(LTRIM(STR(_VFP.PROCESSID,10)),10,"0"))


--------------------------------------------------
   VFP Advanced 32-bit & 64-bit Update 20190312
--------------------------------------------------

VFP 9.0 Fix75 - Open File or Save File Dialog Box ok.
http://www.baiyujia.com/vfpdocuments/f_vfp9fix75.asp

In vfp9 (and vfp8), when we use the Open File or Save File Dialog Box,
it only displays the title bar on Windows 10 Insider Preview Version 1903 Build 18290 (November 28, 2018).

The bug only occurs in vfp8 and vfp9, it does not occur in vfp6 and vfp7.

The bug only occurs on Windows 10 Insider Preview Version 1903 Build 18290 (November 28, 2018),
it does not occur on Windows 10 Version 1903 Build 18362 (April 4, 2019) or later,
so recommend to upgrade to Windows 10 Version 1903 Build 18362 (April 4, 2019) or later.


--------------------------------------------------
   VFP Advanced 32-bit & 64-bit Update 20190220
--------------------------------------------------

VFP 9.0 Fix60 - ComboBox Control Select Item
http://www.baiyujia.com/vfpdocuments/f_vfp9fix60.asp


**************************************************
2018/12/23

    1, VFP Advanced (x64) 2018 Release version.


**************************************************
2018/12/18

Bugs Fixed:

    1, Fix some problems for the COM server programs in the Visual Studio 64-bit projects.
    2, Fix some problems for the SYS(3096) function - IDispatch Object Reference.


--------------------------------------------------
   VFP Advanced 32-bit & 64-bit Update 20181210
--------------------------------------------------

Some bugs have been fixed for the 64-bit COM server program (Win64 COM server program,
Single-threaded COM server program and Multi-threaded COM server program).

The VFP Advanced (x64) old version
==================================
regsvr32 works fine,
but the dll file (Single-threaded COM server program or Multi-threaded COM server program)
can not be used in Visual studio 64-bit project, it can only be used in VFP Advanced (x64) project.

The VFP Advanced (x64) 20181210 version
=======================================
Now it can be used in Visual studio 64-bit project and VFP Advanced (x64) project.


**************************************************
2018/10/20

    1, VFP 9.0 Fix40 - Fix the Report Objects are Too Large ok.
    2, VFP 9.0 Fix41 - Page.Enabled Property ok.
    3, VFP 9.0 Fix42 - SYS(9003) Enables or Disables Fixing the Datetime Data for the VFPOLEDB Driver ok.
    4, VFP 9.0 Fix43 - Fix the Datetime Data for the VFPOLEDB Driver ok.
    5, VFP 9.0 Fix44 - SYS(9004) Enables or Disables Fixing the CAST() Function for the VFPOLEDB Driver ok.
    6, VFP 9.0 Fix45 - Fix the CAST() Function for the VFPOLEDB Driver ok.
    7, VFP 9.0 Fix46 - The VARCHAR(MAX) Fields from SQL Server are Mapped as C(0) Fields ok.
    8, VFP 9.0 Fix47 - The Selected Report Objects are Printed with Shadow ok.
    9, VFP 9.0 Fix48 - SYS(9005) Shows or Hides the Printing Window ok.
    10, VFP 9.0 Fix49 - The Printing Window ok.
    11, VFP 9.0 Fix50 - SYS(9006) Shows or Hides the Print Preview Toolbar ok.
    12, VFP 9.0 Fix51 - The Print Preview Toolbar ok.
    13, VFP 9.0 Fix52 - SYS(9007) Enables or Disables the Print Button in the Print Preview Toolbar ok.
    14, VFP 9.0 Fix53 - The Print Button in the Print Preview Toolbar ok.
    15, VFP 9.0 Fix54 - SYS(9008) Enables or Disables Maximizing the Report Preview Window Automatically ok.
    16, VFP 9.0 Fix55 - Maximize the Report Preview Window Automatically ok.
    17, VFP 9.0 Fix56 - SYS(9009) Enables or Disables Fixing the Report Objects are Too Large ok.
    18, VFP 9.0 Fix57 - SYS(9010) Enables or Disables Fixing the Cursor Position is Too Small ok.
    19, VFP 9.0 Fix58 - Fix the Cursor Position is Too Small ok.


**************************************************
2018/5/18

    1, VFP Advanced (x64) Release version.


**************************************************
2018/3/26

Bugs Fixed:

    1, Fix some compatible problems for the antivirus programs.


**************************************************
2017/12/30

    1, VFP 9.0 Fix32 - GETPEM() Function ok.
    2, VFP 9.0 Fix33 - ASTACKINFO() Function ok.
    3, VFP 9.0 Fix34 - DO FORM Command ok.
    4, VFP 9.0 Fix35 - COPY FILE Command ok.
    5, VFP 9.0 Fix36 - RETURN TO Command ok.
    6, VFP 9.0 Fix37 - SYS(9002) Enables or Disables Rounding the Datetime Data to Integer Seconds ok.
    7, VFP 9.0 Fix38 - Round the Datetime Data to Integer Seconds ok.
    8, VFP 9.0 Fix39 - The Default Setting for the PageFrame.RightToLeft Property ok.


**************************************************
2017/8/15

Bugs Fixed:

    1, Fix some problems for the WebBrowser.Navigate() function.


**************************************************
2017/7/30

Bugs Fixed:

    1, Fix some problems for the EVENTHANDLER() function.


**************************************************
2017/5/2

    1, VFP 9.0 Fix21 - SYS(9079) Clean the System Data Buffer ok.
    2, VFP 9.0 Fix22 - Set Resource Off at Startup ok.
    3, VFP 9.0 Fix23 - SYS(9001) Enables or Disables Adjusting the Precision of the Floating-point Numbers ok.
    4, VFP 9.0 Fix24 - ROUND() Function ok.
    5, VFP 9.0 Fix25 - The Docked Command Window is Shown ok.
    6, VFP 9.0 Fix26 - The Select Union Command with Memo Fields ok.
    7, VFP 9.0 Fix27 - EditBox Control Enter an Infinite Loop ok.
    8, VFP 9.0 Fix28 - Locate Files in the Application Data Directory ok.
    9, VFP 9.0 Fix29 - ListBox Control Pictures Count ok.
    10, VFP 9.0 Fix30 - The Top Level Form Caption Disappeared ok.
    11, VFP 9.0 Fix31 - Font Property Page ok.


**************************************************
2017/2/12

Bugs Fixed:

    1, Fix some problems for passing the object variables to the COM server function.
    2, Fix some problems for registering the COM server programs with the REGSVR32 program.


**************************************************
2017/1/22

Bugs Fixed:

    1, Fix some problems for updating Memo, General and Blob fields via ODBC functions.


**************************************************
2016/11/20

Bugs Fixed:

    1, DECLARE statement ok.


**************************************************
2016/9/1

Bugs Fixed:

    1, Drag and Drop function ok.


**************************************************
2016/8/8

Bugs Fixed:

    1, Fix some compatible problems for the Microsoft Edge and Internet Explorer 11 browser.
    2, Fix some problems for the function SYS(2333,1) - Enables ActiveX Dual Interface Support.


**************************************************
2016/7/6

Bugs Fixed:

    1, VisualFoxPro.Application object ok.


**************************************************
2016/4/8

Bugs Fixed:

    1, COM server program ok.


**************************************************
2015/8/30

Bugs Fixed:

    1, Fix some compatible problems for Windows 10.


**************************************************
2015/3/20

Bugs Fixed:

    1, The ActiveX Control (OleControl) button in the Form Controls toolbar problem.


**************************************************
2015/3/8

Bugs Fixed:

    1, The MESSAGEBOX() function with the nTimeout parameter problem.
    2, Some compatible problems for Windows 8 and Windows 8.1 with touch screen.


**************************************************
2015/1/28

    1, VFP Advanced (x64) Beta version.


**************************************************
2015/1/15

    1, SET LIBRARY ok.


**************************************************
2014/11/1

    1, The DotNet ActiveX Controls (64-bit) ok.


**************************************************
2014/9/10

    1, The Microsoft Forms 2.0 ActiveX Controls (64-bit) ok.


**************************************************
2014/8/8

    1, SET REPORTBEHAVIOR 90 ok.


**************************************************
2014/6/30

    1, The Microsoft Core XML Services (MSXML) 6.0 64-bit ok.
    2, The GdipLoadImageFromStream() ok.
    3, The IAccessible interface (or Microsoft Active Accessibility (MSAA) technology) ok.
    4, VFP 9.0 Fix7 - Varbinary or Blob Data ok.


**************************************************
2014/5/20

    1, The first ActiveX control (Web Browser) 64-bit run ok.


**************************************************
2014/4/16

    1, Fix some compatible problems for Windows 8 and Windows 8.1.


**************************************************
2014/4/14

    1, VFP Advanced (x64) can run on Windows for Middle Eastern Languages.


**************************************************
2014/4/12

    1, REPORT ... TO PRINTER ok.


**************************************************
2014/3/28

    1, VFP Advanced (x64) Alpha version.


**************************************************
2014/3/20

    1, GDIPlus ok.


**************************************************
2014/3/8

    1, General field ok.


**************************************************
2014/2/12

    1, SYS(1037) - Page Setup Dialog Box: Printer and Properties buttons.


**************************************************
2013/9/8

    1, ODBC 64-bit ok.


**************************************************
2013/8/18

    1, VFP Advanced (x64) can run on Windows 8.


**************************************************
2013/8/1

    1, VFP Advanced (x64) Preview version.


**************************************************
2013/7/15

    1, VFP Advanced (x64) Setup program.


**************************************************
2013/6/1

    1, The first VFP Advanced 64-bit program run ok.


**************************************************
2013/4/18

    1, System Variable: _WIN64 always returns true (.T.) in VFP Advanced 64-bit version.


**************************************************
2013/3/24

    1, Open dialog ok.


**************************************************
2013/3/22

    1, Remove the command-line switch: -L<ResourceFileName>.


**************************************************
2013/3/8

    1, VFPA.exe /regserver ok.


**************************************************
2013/2/23

    1, Modify Form ok.

    2, Modify Report ok.


**************************************************
2012/12/22

    1, Windows ok.


**************************************************
2012/12/08

    1, Menus ok.


**************************************************
2012/11/12

    1, LIST | DISPLAY STATUS: Processor is X64 (AMD or Intel).


**************************************************
2012/11/10

    1, Command window ok.


**************************************************
2012/8/2

    1, VFP Advanced 64-bit version start ...


********** END OF HISTORY.TXT ********************