---------------------------------------------------------------------------------------------------------
                      [BUG/PRB.] VFP 9.0 FIX - THE MAXIMUM NUMBER OF MOUSE MOVE EVENTS FOR THE ACTIVATE POPUP COMMAND
                                November 2024
                 ---------------------------------------------------------------------------------------------------------
                                     CCB



1. BUG:

     In vfp9 (and vfp6, vfp7, vfp8), for the ACTIVATE POPUP command, sometimes VFP will enter an infinite loop.

     The bug was reported by Matt Peirse.


2. CAUSE:

     There are some BUGs in the following code.


3. RESOLUTION:

     We can write some code to fix the BUG.

     Fun78fd80 :: ; proc near
             push ebp                                                        ;0x0078fd80 :        55
             mov ebp , esp                                                   ;0x0078fd81 :        8bec


     ;
     ;                 ----------------------------------------------------------------------------------------------
     ;                      VFP 9.0 FIX - THE MAXIMUM NUMBER OF MOUSE MOVE EVENTS FOR THE ACTIVATE POPUP COMMAND
     ;                                November 2024
     ;                 ----------------------------------------------------------------------------------------------
     ;                                     CCB
     ;
     ; In vfp9, for the ACTIVATE POPUP command,
     ; sometimes VFP will enter an infinite loop.
     ; In VFP Advanced, for the ACTIVATE POPUP command,
     ; when the number of mouse move events > the maximum number of mouse move events, VFP will exit loop.
     ;
     ; 2024/11/20, by ccb
     ;

     ;         sub esp , 0C8h                                                  ;0x0078fd83 :        81ecc8000000

             sub esp , 0D8h                                                  ;0x0078fd83 :        81ecc8000000
             xor eax , eax
             mov  dword ptr [ ebp - 0D8h ][00h] , eax
             mov  dword ptr [ ebp - 0D8h ][04h] , eax
             mov  dword ptr [ ebp - 0D8h ][08h] , eax
             mov  dword ptr [ ebp - 0D8h ][0Ch] , eax


             mov  eax , dword ptr [ ebp + 40 ]                               ;0x0078fd89 :        8b4528
             mov  eax , dword ptr [eax]                                      ;0x0078fd8c :        8b00
             and  dword ptr [ ebp - 16 ] , 00h                               ;0x0078fd8e :        8365f000
             push ebx                                                        ;0x0078fd92 :        53
             push esi                                                        ;0x0078fd93 :        56
             xor ecx , ecx                                                   ;0x0078fd94 :        33c9
             push edi                                                        ;0x0078fd96 :        57
             mov  edi , dword ptr [ ebp + 32 ]                               ;0x0078fd97 :        8b7d20
             mov  esi , dword ptr [edi]                                      ;0x0078fd9a :        8b37
             inc ecx                                                         ;0x0078fd9c :        41
             cmp  dword ptr [ eax + 64 ] , ecx                               ;0x0078fd9d :        394840
             mov  dword ptr [ ebp - 64 ] , ecx                               ;0x0078fda0 :        894dc0
             mov  dword ptr [ ebp - 40 ] , esi                               ;0x0078fda3 :        8975d8
             je Label78fdbe                                                  ;0x0078fda6 :        7416
             push  dword ptr [ ebp + 48 ]                                    ;0x0078fda8 :        ff7530
             lea ebx ,  dword ptr [ ebp + 40 ]                               ;0x0078fdab :        8d5d28
             push  dword ptr [ ebp + 44 ]                                    ;0x0078fdae :        ff752c
             call Fun78f59e                                                  ;0x0078fdb1 :        e8e8f7ffff
             test eax , eax                                                  ;0x0078fdb6 :        85c0
             je Label78ff03                                                  ;0x0078fdb8 :        0f8445010000

     Label78fdbe ::
             mov  eax , dword ptr [esi]                                      ;0x0078fdbe :        8b06
             xor ebx , ebx                                                   ;0x0078fdc0 :        33db
             test  byte ptr [ eax + 12 ] , 02h                               ;0x0078fdc2 :        f6400c02
             jne Label78fe8a                                                 ;0x0078fdc6 :        0f85be000000
             mov  ecx , dword ptr [ ebp + 8 ]                                ;0x0078fdcc :        8b4d08
             cmp ecx , ebx                                                   ;0x0078fdcf :        3bcb
             jne Label78fdf1                                                 ;0x0078fdd1 :        751e
             test  byte ptr [ eax + 14 ] , 01h                               ;0x0078fdd3 :        f6400e01
             jne Label78fdf1                                                 ;0x0078fdd7 :        7518
             test  byte ptr [ eax + 13 ] , 08h                               ;0x0078fdd9 :        f6400d08
             jne Label78fdeb                                                 ;0x0078fddd :        750c
             cmp  word ptr [ eax + 4 ] , bx                                  ;0x0078fddf :        66395804
             je Label78fdeb                                                  ;0x0078fde3 :        7406
             test  byte ptr [ eax + 4 ] , 08h                                ;0x0078fde5 :        f6400408
             je Label78fdf1                                                  ;0x0078fde9 :        7406

     Label78fdeb ::
             mov  ecx , dword ptr [ eax + 52 ]                               ;0x0078fdeb :        8b4834
             mov  dword ptr [ ebp + 8 ] , ecx                                ;0x0078fdee :        894d08

     Label78fdf1 ::
             cmp  dword ptr [ eax + 52 ] , ecx                               ;0x0078fdf1 :        394834
             jne Label78fe8a                                                 ;0x0078fdf4 :        0f8590000000
             cmp  dword ptr [ ebp + 12 ] , ebx                               ;0x0078fdfa :        395d0c
             jne Label78fe0d                                                 ;0x0078fdfd :        750e
             mov ecx , esi                                                   ;0x0078fdff :        8bce
             call Fun46ef98                                                  ;0x0078fe01 :        e892f1cdff
             mov eax , esi                                                   ;0x0078fe06 :        8bc6
             call Fun78a762                                                  ;0x0078fe08 :        e855a9ffff

     Label78fe0d ::
             mov  eax , dword ptr [esi]                                      ;0x0078fe0d :        8b06
             cmp  dword ptr [eax] , 03h                                      ;0x0078fe0f :        833803
             jne Label78fe24                                                 ;0x0078fe12 :        7510
             cmp  dword ptr [ eax + 48 ] , ebx                               ;0x0078fe14 :        395830
             jne Label78fe24                                                 ;0x0078fe17 :        750b
             push ebx                                                        ;0x0078fe19 :        53
             or edx , 0FFFFFFFFh                                             ;0x0078fe1a :        83caff
             mov ecx , esi                                                   ;0x0078fe1d :        8bce
             call Fun416bd8                                                  ;0x0078fe1f :        e8b46dc8ff

     Label78fe24 ::
             mov  eax , dword ptr [edi]                                      ;0x0078fe24 :        8b07
             mov  ecx , dword ptr [ ebp + 36 ]                               ;0x0078fe26 :        8b4d24
             mov  dword ptr [ecx] , eax                                      ;0x0078fe29 :        8901
             call Fun546455                                                  ;0x0078fe2b :        e82566dbff
             mov  edx , dword ptr [esi]                                      ;0x0078fe30 :        8b16
             mov ecx , esi                                                   ;0x0078fe32 :        8bce
             call Fun78f575                                                  ;0x0078fe34 :        e83cf7ffff
             mov  byte ptr [ edx + 0F9h ] , al                               ;0x0078fe39 :        8882f9000000
             pushd 01h                                                       ;0x0078fe3f :        6a01
             lea eax ,  dword ptr [ ebp - 12 ]                               ;0x0078fe41 :        8d45f4
             push eax                                                        ;0x0078fe44 :        50
             push  dword ptr [ ebp + 40 ]                                    ;0x0078fe45 :        ff7528
             mov eax , esi                                                   ;0x0078fe48 :        8bc6
             push  dword ptr [ ebp + 48 ]                                    ;0x0078fe4a :        ff7530
             mov  dword ptr [ ebp - 56 ] , ebx                               ;0x0078fe4d :        895dc8
             push  dword ptr [ ebp + 44 ]                                    ;0x0078fe50 :        ff752c
             call Fun7908a7                                                  ;0x0078fe53 :        e84f0a0000
             cmp eax , 0FFFFFFFAh                                            ;0x0078fe58 :        83f8fa
             je Label7903e9                                                  ;0x0078fe5b :        0f8488050000
             cmp eax , 0FFFFFFFCh                                            ;0x0078fe61 :        83f8fc
             je Label78fefc                                                  ;0x0078fe64 :        0f8492000000
             cmp eax , 02h                                                   ;0x0078fe6a :        83f802
             je Label78fe91                                                  ;0x0078fe6d :        7422
             cmp eax , 06h                                                   ;0x0078fe6f :        83f806
             jle Label78ff03                                                 ;0x0078fe72 :        0f8e8b000000
             cmp eax , 0Bh                                                   ;0x0078fe78 :        83f80b
             jg Label78ff03                                                  ;0x0078fe7b :        0f8f82000000
             test  byte ptr [ Data9393b0 ] , 02h                             ;0x0078fe81 :        f605b093930002
             jne Label78fefc                                                 ;0x0078fe88 :        7572

     Label78fe8a ::
             xor eax , eax                                                   ;0x0078fe8a :        33c0
             jmp Label7903f9                                                 ;0x0078fe8c :        e968050000

     Label78fe91 ::
             push  dword ptr [ ebp + 48 ]                                    ;0x0078fe91 :        ff7530
             mov eax , esi                                                   ;0x0078fe94 :        8bc6
             push  dword ptr [ ebp + 44 ]                                    ;0x0078fe96 :        ff752c
             call Fun78fccf                                                  ;0x0078fe99 :        e831feffff
             test eax , eax                                                  ;0x0078fe9e :        85c0
             jne Label7903e9                                                 ;0x0078fea0 :        0f8543050000
             mov  eax , dword ptr [ ebp + 24 ]                               ;0x0078fea6 :        8b4518
             and  dword ptr [eax] , 00h                                      ;0x0078fea9 :        832000
             mov  eax , dword ptr [ ebp + 20 ]                               ;0x0078feac :        8b4514
             mov  ebx , dword ptr [ ebp - 12 ]                               ;0x0078feaf :        8b5df4
             mov  dword ptr [eax] , ebx                                      ;0x0078feb2 :        8918
             mov  eax , dword ptr [esi]                                      ;0x0078feb4 :        8b06
             test  byte ptr [ eax + 13 ] , 04h                               ;0x0078feb6 :        f6400d04
             jne Label78fec2                                                 ;0x0078feba :        7506
             test  byte ptr [ eax + 16 ] , 010h                              ;0x0078febc :        f6401010
             je Label78ff03                                                  ;0x0078fec0 :        7441

     Label78fec2 ::
             mov edx , ebx                                                   ;0x0078fec2 :        8bd3
             mov ecx , esi                                                   ;0x0078fec4 :        8bce
             call Fun43de2a                                                  ;0x0078fec6 :        e85fdfcaff
             cmp  dword ptr [ eax + 24 ] , 00h                               ;0x0078fecb :        83781800
             jne Label78ff03                                                 ;0x0078fecf :        7532
             mov  edi , dword ptr [ ebp + 20 ]                               ;0x0078fed1 :        8b7d14
             push edi                                                        ;0x0078fed4 :        57
             push  dword ptr [ ebp + 16 ]                                    ;0x0078fed5 :        ff7510
             mov eax , ebx                                                   ;0x0078fed8 :        8bc3
             mov ecx , esi                                                   ;0x0078feda :        8bce
             call Fun78f9b0                                                  ;0x0078fedc :        e8cffaffff
             mov  eax , dword ptr [esi]                                      ;0x0078fee1 :        8b06
             test  byte ptr [ eax + 16 ] , 010h                              ;0x0078fee3 :        f6401010
             jne Label78fef5                                                 ;0x0078fee7 :        750c
             xor eax , eax                                                   ;0x0078fee9 :        33c0
             cmp  dword ptr [edi] , ebx                                      ;0x0078feeb :        391f
             sete al                                                         ;0x0078feed :        0f94c0
             jmp Label7903f9                                                 ;0x0078fef0 :        e904050000

     Label78fef5 ::
             mov  dword ptr [edi] , ebx                                      ;0x0078fef5 :        891f
             jmp Label7903e4                                                 ;0x0078fef7 :        e9e8040000

     Label78fefc ::
             mov  dword ptr [ ebp - 56 ] , 01h                               ;0x0078fefc :        c745c801000000

     Label78ff03 ::
             xor ebx , ebx                                                   ;0x0078ff03 :        33db
             call Fun551e94                                                  ;0x0078ff05 :        e88a1fdcff
             cmp esi , ebx                                                   ;0x0078ff0a :        3bf3
             mov  eax , dword ptr [ ebp + 44 ]                               ;0x0078ff0c :        8b452c
             mov  dword ptr [ ebp - 36 ] , eax                               ;0x0078ff0f :        8945dc
             mov  eax , dword ptr [ ebp + 48 ]                               ;0x0078ff12 :        8b4530
             mov  dword ptr [ ebp - 52 ] , ebx                               ;0x0078ff15 :        895dcc
             mov  dword ptr [ ebp - 48 ] , ebx                               ;0x0078ff18 :        895dd0
             mov  dword ptr [ ebp - 32 ] , eax                               ;0x0078ff1b :        8945e0
             je Label78ff31                                                  ;0x0078ff1e :        7411
             mov  eax , dword ptr [ ebp + 36 ]                               ;0x0078ff20 :        8b4524
             cmp  dword ptr [eax] , esi                                      ;0x0078ff23 :        3930
             jne Label78ff31                                                 ;0x0078ff25 :        750a
             mov  esi , dword ptr [esi]                                      ;0x0078ff27 :        8b36
             mov  eax , dword ptr [ esi + 60 ]                               ;0x0078ff29 :        8b463c
             mov  dword ptr [ ebp - 44 ] , eax                               ;0x0078ff2c :        8945d4
             jmp Label78ff34                                                 ;0x0078ff2f :        eb03

     Label78ff31 ::
             mov  dword ptr [ ebp - 44 ] , ebx                               ;0x0078ff31 :        895dd4

     Label78ff34 ::
             mov  edi , dword ptr [edi]                                      ;0x0078ff34 :        8b3f
             cmp edi , ebx                                                   ;0x0078ff36 :        3bfb
             je Label78ff3e                                                  ;0x0078ff38 :        7404
             mov eax , edi                                                   ;0x0078ff3a :        8bc7
             jmp Label78ff48                                                 ;0x0078ff3c :        eb0a

     Label78ff3e ::
             mov  ecx , dword ptr [ ebp + 8 ]                                ;0x0078ff3e :        8b4d08
             xor edx , edx                                                   ;0x0078ff41 :        33d2
             call Fun42f404                                                  ;0x0078ff43 :        e8bcf4c9ff

     Label78ff48 ::
             cmp eax , ebx                                                   ;0x0078ff48 :        3bc3
             je Label78ff61                                                  ;0x0078ff4a :        7415
             mov  eax , dword ptr [eax]                                      ;0x0078ff4c :        8b00
             mov  ecx , dword ptr [ eax + 8 ]                                ;0x0078ff4e :        8b4808
             call Fun78c86e                                                  ;0x0078ff51 :        e818c9ffff
             test eax , eax                                                  ;0x0078ff56 :        85c0
             mov  dword ptr [ ebp - 8 ] , 01h                                ;0x0078ff58 :        c745f801000000
             jne Label78ff64                                                 ;0x0078ff5f :        7503

     Label78ff61 ::
             mov  dword ptr [ ebp - 8 ] , ebx                                ;0x0078ff61 :        895df8

     Label78ff64 ::
             mov  eax , dword ptr [ ebp - 8 ]                                ;0x0078ff64 :        8b45f8
             mov  dword ptr [ ebp - 20 ] , eax                               ;0x0078ff67 :        8945ec
             mov eax ,  dword ptr [ Data937fb0 ]                             ;0x0078ff6a :        a1b07f9300
             pushd 01h                                                       ;0x0078ff6f :        6a01
             call Fun48c867                                                  ;0x0078ff71 :        e8f1c8cfff
             lea edx ,  dword ptr [ ebp - 68 ]                               ;0x0078ff76 :        8d55bc
             lea eax ,  dword ptr [ ebp + 0FFFFFF3Ch ]                       ;0x0078ff79 :        8d853cffffff
             call Fun42c27f                                                  ;0x0078ff7f :        e8fbc2c9ff
             push ebx                                                        ;0x0078ff84 :        53
             push eax                                                        ;0x0078ff85 :        50
             call Fun42c2be                                                  ;0x0078ff86 :        e833c3c9ff
             cmp eax , ebx                                                   ;0x0078ff8b :        3bc3
             pop ecx                                                         ;0x0078ff8d :        59
             pop ecx                                                         ;0x0078ff8e :        59
             mov  dword ptr [ ebp - 60 ] , eax                               ;0x0078ff8f :        8945c4
             jne Label790350                                                 ;0x0078ff92 :        0f85b8030000

     Label78ff98 ::
             mov  eax , dword ptr [ ebp + 16 ]                               ;0x0078ff98 :        8b4510
             push  dword ptr [ ebp + 48 ]                                    ;0x0078ff9b :        ff7530
             mov  dword ptr [eax] , ebx                                      ;0x0078ff9e :        8918
             mov  eax , dword ptr [ ebp + 24 ]                               ;0x0078ffa0 :        8b4518
             push  dword ptr [ ebp + 44 ]                                    ;0x0078ffa3 :        ff752c
             mov  dword ptr [eax] , ebx                                      ;0x0078ffa6 :        8918
             mov  eax , dword ptr [ ebp + 28 ]                               ;0x0078ffa8 :        8b451c
             mov  dword ptr [eax] , ebx                                      ;0x0078ffab :        8918
             mov  dword ptr [ ebp + 40 ] , ebx                               ;0x0078ffad :        895d28
             lea ebx ,  dword ptr [ ebp + 40 ]                               ;0x0078ffb0 :        8d5d28
             call Fun78f59e                                                  ;0x0078ffb3 :        e8e6f5ffff
             mov edi , eax                                                   ;0x0078ffb8 :        8bf8
             xor esi , esi                                                   ;0x0078ffba :        33f6
             cmp edi , esi                                                   ;0x0078ffbc :        3bfe
             mov  dword ptr [ ebp - 40 ] , edi                               ;0x0078ffbe :        897dd8
             je Label790179                                                  ;0x0078ffc1 :        0f84b2010000
             mov  eax , dword ptr [edi]                                      ;0x0078ffc7 :        8b07
             mov  ecx , dword ptr [ eax + 52 ]                               ;0x0078ffc9 :        8b4834
             cmp  ecx , dword ptr [ ebp + 8 ]                                ;0x0078ffcc :        3b4d08
             jne Label790179                                                 ;0x0078ffcf :        0f85a4010000
             mov  dword ptr [ eax + 48 ] , 02h                               ;0x0078ffd5 :        c7403002000000
             mov  eax , dword ptr [edi]                                      ;0x0078ffdc :        8b07
             mov  eax , dword ptr [ eax + 56 ]                               ;0x0078ffde :        8b4038
             cmp eax , 0FFFFFFFFh                                            ;0x0078ffe1 :        83f8ff
             je Label78ffeb                                                  ;0x0078ffe4 :        7405
             mov  ecx , dword ptr [ ebp + 20 ]                               ;0x0078ffe6 :        8b4d14
             mov  dword ptr [ecx] , eax                                      ;0x0078ffe9 :        8901

     Label78ffeb ::
             push  dword ptr [ ebp - 56 ]                                    ;0x0078ffeb :        ff75c8
             lea eax ,  dword ptr [ ebp - 12 ]                               ;0x0078ffee :        8d45f4
             push eax                                                        ;0x0078fff1 :        50
             push  dword ptr [ ebp + 40 ]                                    ;0x0078fff2 :        ff7528
             mov eax , edi                                                   ;0x0078fff5 :        8bc7
             push  dword ptr [ ebp + 48 ]                                    ;0x0078fff7 :        ff7530
             push  dword ptr [ ebp + 44 ]                                    ;0x0078fffa :        ff752c
             call Fun7908a7                                                  ;0x0078fffd :        e8a5080000
             mov  ebx , dword ptr [ ebp + 36 ]                               ;0x00790002 :        8b5d24
             mov  dword ptr [ ebp - 28 ] , eax                               ;0x00790005 :        8945e4
             mov  eax , dword ptr [ebx]                                      ;0x00790008 :        8b03
             cmp eax , esi                                                   ;0x0079000a :        3bc6
             je Label790082                                                  ;0x0079000c :        7474
             cmp eax , edi                                                   ;0x0079000e :        3bc7
             je Label790031                                                  ;0x00790010 :        741f
             mov  eax , dword ptr [eax]                                      ;0x00790012 :        8b00
             mov  dword ptr [ eax + 48 ] , esi                               ;0x00790014 :        897030
             mov  ecx , dword ptr [ebx]                                      ;0x00790017 :        8b0b
             mov  eax , dword ptr [ecx]                                      ;0x00790019 :        8b01
             cmp  dword ptr [ eax + 0CCh ] , esi                             ;0x0079001b :        39b0cc000000
             jne Label79002c                                                 ;0x00790021 :        7509
             push esi                                                        ;0x00790023 :        56
             or edx , 0FFFFFFFFh                                             ;0x00790024 :        83caff
             call Fun416bd8                                                  ;0x00790027 :        e8ac6bc8ff

     Label79002c ::
             mov  dword ptr [ ebp - 16 ] , esi                               ;0x0079002c :        8975f0
             jmp Label790082                                                 ;0x0079002f :        eb51

     Label790031 ::
             mov  eax , dword ptr [edi]                                      ;0x00790031 :        8b07
             cmp  dword ptr [eax] , 01h                                      ;0x00790033 :        833801
             jne Label790082                                                 ;0x00790036 :        754a
             cmp  dword ptr [ eax + 0CCh ] , esi                             ;0x00790038 :        39b0cc000000
             je Label790082                                                  ;0x0079003e :        7442
             mov  ecx , dword ptr [ ebp - 12 ]                               ;0x00790040 :        8b4df4
             cmp  ecx , dword ptr [ eax + 56 ]                               ;0x00790043 :        3b4838
             je Label790082                                                  ;0x00790046 :        743a
             mov  eax , dword ptr [ ebp - 36 ]                               ;0x00790048 :        8b45dc
             cmp  dword ptr [ ebp + 44 ] , eax                               ;0x0079004b :        39452c
             je Label79005d                                                  ;0x0079004e :        740d
             call Fun42e3f9                                                  ;0x00790050 :        e8a4e3c9ff
             mov  dword ptr [ ebp - 52 ] , eax                               ;0x00790055 :        8945cc
             mov  dword ptr [ ebp - 48 ] , edx                               ;0x00790058 :        8955d0
             jmp Label79007b                                                 ;0x0079005b :        eb1e

     Label79005d ::
             call Fun42e3f9                                                  ;0x0079005d :        e897e3c9ff
             mov  esi , dword ptr [ ebp - 52 ]                               ;0x00790062 :        8b75cc
             mov  ecx , dword ptr [ ebp - 48 ]                               ;0x00790065 :        8b4dd0
             add esi , 0C8h                                                  ;0x00790068 :        81c6c8000000
             adc ecx , 00h                                                   ;0x0079006e :        83d100
             cmp edx , ecx                                                   ;0x00790071 :        3bd1
             jg Label790082                                                  ;0x00790073 :        7f0d
             jl Label79007b                                                  ;0x00790075 :        7c04
             cmp eax , esi                                                   ;0x00790077 :        3bc6
             jnb Label790082                                                 ;0x00790079 :        7307

     Label79007b ::
             mov  dword ptr [ ebp - 28 ] , 0FFFFFFFBh                        ;0x0079007b :        c745e4fbffffff

     Label790082 ::
             mov  ecx , dword ptr [ ebp + 24 ]                               ;0x00790082 :        8b4d18
             mov  edx , dword ptr [ ebp - 28 ]                               ;0x00790085 :        8b55e4
             mov  eax , dword ptr [ ebp + 28 ]                               ;0x00790088 :        8b451c
             xor esi , esi                                                   ;0x0079008b :        33f6
             mov  dword ptr [ebx] , edi                                      ;0x0079008d :        893b
             inc esi                                                         ;0x0079008f :        46
             xor ebx , ebx                                                   ;0x00790090 :        33db
             cmp edx , 07h                                                   ;0x00790092 :        83fa07
             mov  dword ptr [ecx] , esi                                      ;0x00790095 :        8931
             mov  dword ptr [eax] , ebx                                      ;0x00790097 :        8918
             jg Label79013f                                                  ;0x00790099 :        0f8fa0000000
             je Label790133                                                  ;0x0079009f :        0f848e000000
             cmp edx , 0FFFFFFFCh                                            ;0x007900a5 :        83fafc
             je Label79011e                                                  ;0x007900a8 :        7474
             jle Label7901bc                                                 ;0x007900aa :        0f8e0c010000
             cmp edx , 0FFFFFFFEh                                            ;0x007900b0 :        83fafe
             jle Label7900f7                                                 ;0x007900b3 :        7e42
             cmp edx , 0FFFFFFFFh                                            ;0x007900b5 :        83faff
             je Label7900db                                                  ;0x007900b8 :        7421
             cmp edx , 02h                                                   ;0x007900ba :        83fa02
             jne Label7901bc                                                 ;0x007900bd :        0f85f9000000
             push  dword ptr [ ebp + 16 ]                                    ;0x007900c3 :        ff7510
             mov  eax , dword ptr [ ebp + 20 ]                               ;0x007900c6 :        8b4514
             mov  dword ptr [ecx] , ebx                                      ;0x007900c9 :        8919
             mov  ecx , dword ptr [ ebp - 12 ]                               ;0x007900cb :        8b4df4
             mov  dword ptr [ ebp - 16 ] , esi                               ;0x007900ce :        8975f0
             call Fun78f7b5                                                  ;0x007900d1 :        e8dff6ffff
             jmp Label7901bc                                                 ;0x007900d6 :        e9e1000000

     Label7900db ::
             test  byte ptr [ Data9393b0 ] , 02h                             ;0x007900db :        f605b093930002
             je Label7901bc                                                  ;0x007900e2 :        0f84d4000000
             push  dword ptr [ ebp - 16 ]                                    ;0x007900e8 :        ff75f0
             mov eax , edi                                                   ;0x007900eb :        8bc7
             call Fun78fa8b                                                  ;0x007900ed :        e899f9ffff
             jmp Label7901bc                                                 ;0x007900f2 :        e9c5000000

     Label7900f7 ::
             cmp  dword ptr [ ebp - 20 ] , ebx                               ;0x007900f7 :        395dec
             je Label790109                                                  ;0x007900fa :        740d
             test  byte ptr [ Data9393b0 ] , 012h                            ;0x007900fc :        f605b093930012
             je Label7901bc                                                  ;0x00790103 :        0f84b3000000

     Label790109 ::
             push  dword ptr [ ebp + 48 ]                                    ;0x00790109 :        ff7530
             push  dword ptr [ ebp + 44 ]                                    ;0x0079010c :        ff752c
             push  dword ptr [ ebp - 16 ]                                    ;0x0079010f :        ff75f0
             push edx                                                        ;0x00790112 :        52
             push edi                                                        ;0x00790113 :        57
             call Fun78fb36                                                  ;0x00790114 :        e81dfaffff
             jmp Label7901bc                                                 ;0x00790119 :        e99e000000

     Label79011e ::
             mov  dword ptr [eax] , esi                                      ;0x0079011e :        8930
             lea eax ,  dword ptr [ ebp + 44 ]                               ;0x00790120 :        8d452c
             push eax                                                        ;0x00790123 :        50
             mov  eax , dword ptr [ ebp - 12 ]                               ;0x00790124 :        8b45f4
             mov ecx , edi                                                   ;0x00790127 :        8bcf
             call Fun78e471                                                  ;0x00790129 :        e843e3ffff
             jmp Label7901bc                                                 ;0x0079012e :        e989000000

     Label790133 ::
             pushd 0FFFFFFFFh                                                ;0x00790133 :        6aff

     Label790135 ::
             lea esi ,  dword ptr [ ebp + 44 ]                               ;0x00790135 :        8d752c
             call Fun78e3fe                                                  ;0x00790138 :        e8c1e2ffff
             jmp Label7901bc                                                 ;0x0079013d :        eb7d

     Label79013f ::
             sub edx , 08h                                                   ;0x0079013f :        83ea08
             je Label790175                                                  ;0x00790142 :        7431
             dec edx                                                         ;0x00790144 :        4a
             je Label79016a                                                  ;0x00790145 :        7423
             dec edx                                                         ;0x00790147 :        4a
             je Label79015e                                                  ;0x00790148 :        7414
             dec edx                                                         ;0x0079014a :        4a
             jne Label7901bc                                                 ;0x0079014b :        756f
             push  dword ptr [ ebp + 48 ]                                    ;0x0079014d :        ff7530
             push  dword ptr [ ebp + 44 ]                                    ;0x00790150 :        ff752c
             push  dword ptr [ ebp + 40 ]                                    ;0x00790153 :        ff7528
             push edi                                                        ;0x00790156 :        57
             call Fun78fc39                                                  ;0x00790157 :        e8ddfaffff
             jmp Label7901bc                                                 ;0x0079015c :        eb5e

     Label79015e ::
             mov  eax , dword ptr [edi]                                      ;0x0079015e :        8b07
             mov  ecx , dword ptr [ eax + 64 ]                               ;0x00790160 :        8b4840
             sub  ecx , dword ptr [ eax + 60 ]                               ;0x00790163 :        2b483c
             dec ecx                                                         ;0x00790166 :        49

     Label790167 ::
             push ecx                                                        ;0x00790167 :        51
             jmp Label790135                                                 ;0x00790168 :        ebcb

     Label79016a ::
             mov  eax , dword ptr [edi]                                      ;0x0079016a :        8b07
             mov  ecx , dword ptr [ eax + 60 ]                               ;0x0079016c :        8b483c
             sub  ecx , dword ptr [ eax + 64 ]                               ;0x0079016f :        2b4840
             inc ecx                                                         ;0x00790172 :        41
             jmp Label790167                                                 ;0x00790173 :        ebf2

     Label790175 ::
             pushd 01h                                                       ;0x00790175 :        6a01
             jmp Label790135                                                 ;0x00790177 :        ebbc

     Label790179 ::
             push  dword ptr [ ebp + 48 ]                                    ;0x00790179 :        ff7530
             push  dword ptr [ ebp + 44 ]                                    ;0x0079017c :        ff752c
             call Fun7854ad                                                  ;0x0079017f :        e82953ffff
             test eax , eax                                                  ;0x00790184 :        85c0
             je Label790192                                                  ;0x00790186 :        740a
             pushd 04001h                                                    ;0x00790188 :        6801400000
             call Fun4295f6                                                  ;0x0079018d :        e86494c9ff

     Label790192 ::
             cmp  dword ptr [ ebp - 8 ] , esi                                ;0x00790192 :        3975f8
             jne Label7901bc                                                 ;0x00790195 :        7525
             mov  eax , dword ptr [ ebp + 36 ]                               ;0x00790197 :        8b4524
             mov  ebx , dword ptr [eax]                                      ;0x0079019a :        8b18
             cmp ebx , esi                                                   ;0x0079019c :        3bde
             je Label7901bc                                                  ;0x0079019e :        741c
             lea eax ,  dword ptr [ ebp - 64 ]                               ;0x007901a0 :        8d45c0
             push eax                                                        ;0x007901a3 :        50
             push  dword ptr [ ebp - 16 ]                                    ;0x007901a4 :        ff75f0
             lea eax ,  dword ptr [ ebp - 12 ]                               ;0x007901a7 :        8d45f4
             push  dword ptr [ ebp + 48 ]                                    ;0x007901aa :        ff7530
             push  dword ptr [ ebp + 44 ]                                    ;0x007901ad :        ff752c
             push  dword ptr [ ebp - 32 ]                                    ;0x007901b0 :        ff75e0
             push  dword ptr [ ebp - 36 ]                                    ;0x007901b3 :        ff75dc
             push eax                                                        ;0x007901b6 :        50
             call Fun78f660                                                  ;0x007901b7 :        e8a4f4ffff

     Label7901bc ::
             mov  eax , dword ptr [ ebp + 44 ]                               ;0x007901bc :        8b452c
             mov  dword ptr [ ebp - 36 ] , eax                               ;0x007901bf :        8945dc
             mov  eax , dword ptr [ ebp + 48 ]                               ;0x007901c2 :        8b4530
             xor esi , esi                                                   ;0x007901c5 :        33f6
             cmp  dword ptr [ ebp - 20 ] , esi                               ;0x007901c7 :        3975ec
             mov  dword ptr [ ebp - 32 ] , eax                               ;0x007901ca :        8945e0
             je Label790293                                                  ;0x007901cd :        0f84c0000000
             test  byte ptr [ Data9393b0 ] , 05Ah                            ;0x007901d3 :        f605b09393005a
             je Label790293                                                  ;0x007901da :        0f84b3000000
             cmp edi , esi                                                   ;0x007901e0 :        3bfe
             mov  dword ptr [ ebp - 8 ] , esi                                ;0x007901e2 :        8975f8
             je Label790315                                                  ;0x007901e5 :        0f842a010000
             mov  eax , dword ptr [edi]                                      ;0x007901eb :        8b07
             mov  ecx , dword ptr [ eax + 52 ]                               ;0x007901ed :        8b4834
             cmp  ecx , dword ptr [ ebp + 8 ]                                ;0x007901f0 :        3b4d08
             jne Label790349                                                 ;0x007901f3 :        0f8550010000
             cmp  dword ptr [ eax + 0A4h ] , esi                             ;0x007901f9 :        39b0a4000000
             je Label790293                                                  ;0x007901ff :        0f848e000000
             lea ecx ,  dword ptr [ ebp - 116 ]                              ;0x00790205 :        8d4d8c
             mov  dword ptr [ Data93c2b8 ] , esi                             ;0x00790208 :        8935b8c29300
             call Fun431fa1                                                  ;0x0079020e :        e88e1dcaff
             xor edx , edx                                                   ;0x00790213 :        33d2
             lea ecx ,  dword ptr [ ebp - 100 ]                              ;0x00790215 :        8d4d9c
             call Fun54ea34                                                  ;0x00790218 :        e817e8dbff
             mov  dword ptr [ ebp - 116 ] , 09h                              ;0x0079021d :        c7458c09000000
             mov  eax , dword ptr [edi]                                      ;0x00790224 :        8b07
             mov ebx , 0100h                                                 ;0x00790226 :        bb00010000
             test  dword ptr [ eax + 16 ] , ebx                              ;0x0079022b :        855810
             je Label790259                                                  ;0x0079022e :        7429
             mov  ecx , dword ptr [ eax + 0A4h ]                             ;0x00790230 :        8b88a4000000
             cmp ecx , esi                                                   ;0x00790236 :        3bce
             je Label790244                                                  ;0x00790238 :        740a
             mov  ecx , dword ptr [ecx]                                      ;0x0079023a :        8b09
             mov  eax , dword ptr [ eax + 0E4h ]                             ;0x0079023c :        8b80e4000000
             mov  dword ptr [ecx] , eax                                      ;0x00790242 :        8901

     Label790244 ::
             mov  eax , dword ptr [edi]                                      ;0x00790244 :        8b07
             mov  eax , dword ptr [ eax + 0A4h ]                             ;0x00790246 :        8b80a4000000
             cmp eax , esi                                                   ;0x0079024c :        3bc6
             je Label790259                                                  ;0x0079024e :        7409
             mov  eax , dword ptr [eax]                                      ;0x00790250 :        8b00
             mov  dword ptr [ eax + 32 ] , offset Label8c4bb5                          ;0x00790252 :        c74020b54b8c00

     Label790259 ::
             mov  eax , dword ptr [edi]                                      ;0x00790259 :        8b07
             push  dword ptr [ eax + 0A4h ]                                  ;0x0079025b :        ffb0a4000000
             lea eax ,  dword ptr [ ebp - 116 ]                              ;0x00790261 :        8d458c
             call Fun785581                                                  ;0x00790264 :        e81853ffff
             mov  ecx , dword ptr [edi]                                      ;0x00790269 :        8b0f
             cmp  dword ptr [ecx] , 01h                                      ;0x0079026b :        833901
             jne Label790278                                                 ;0x0079026e :        7508
             cmp  dword ptr [ ecx + 0E4h ] , esi                             ;0x00790270 :        39b1e4000000
             je Label79027b                                                  ;0x00790276 :        7403

     Label790278 ::
             mov  dword ptr [ ebp - 8 ] , eax                                ;0x00790278 :        8945f8

     Label79027b ::
             test  dword ptr [ ecx + 16 ] , ebx                              ;0x0079027b :        855910
             je Label790293                                                  ;0x0079027e :        7413
             mov  ecx , dword ptr [ ecx + 0A4h ]                             ;0x00790280 :        8b89a4000000
             cmp ecx , esi                                                   ;0x00790286 :        3bce
             je Label790293                                                  ;0x00790288 :        7409
             mov  eax , dword ptr [ecx]                                      ;0x0079028a :        8b01
             mov  dword ptr [ eax + 32 ] , offset Label456d23                          ;0x0079028c :        c74020236d4500

     Label790293 ::
             cmp edi , esi                                                   ;0x00790293 :        3bfe
             je Label790315                                                  ;0x00790295 :        747e
             movzx ebx ,byte ptr [ Data9370dc ]                              ;0x00790297 :        0fb61ddc709300
             mov  byte ptr [ Data9370dc ] , 01h                              ;0x0079029e :        c605dc70930001
             jmp Label7902f7                                                 ;0x007902a5 :        eb50

     Label7902a7 ::
             mov  eax , dword ptr [edi]                                      ;0x007902a7 :        8b07
             cmp  dword ptr [ eax + 09Ch ] , esi                             ;0x007902a9 :        39b09c000000
             je Label7902c1                                                  ;0x007902af :        7410
             test  byte ptr [ eax + 17 ] , 040h                              ;0x007902b1 :        f6401140
             jne Label7902c1                                                 ;0x007902b5 :        750a
             lea ecx ,  dword ptr [ ebp - 116 ]                              ;0x007902b7 :        8d4d8c
             call Fun4d7a99                                                  ;0x007902ba :        e8da77d4ff
             jmp Label7902f7                                                 ;0x007902bf :        eb36

     Label7902c1 ::
             push esi                                                        ;0x007902c1 :        56
             push  dword ptr [ ebp - 96 ]                                    ;0x007902c2 :        ff75a0
             push  dword ptr [ ebp - 100 ]                                   ;0x007902c5 :        ff759c
             call Fun791139                                                  ;0x007902c8 :        e86c0e0000
             cmp  dword ptr [ Data937fbc ] , esi                             ;0x007902cd :        3935bc7f9300
             je Label7902f7                                                  ;0x007902d3 :        7422
             mov  eax , dword ptr [edi]                                      ;0x007902d5 :        8b07
             test  byte ptr [ eax + 12 ] , 080h                              ;0x007902d7 :        f6400c80
             je Label7902f7                                                  ;0x007902db :        741a
             push  dword ptr [ eax + 0A4h ]                                  ;0x007902dd :        ffb0a4000000
             lea eax ,  dword ptr [ ebp - 100 ]                              ;0x007902e3 :        8d459c
             call Fun8f7eb4                                                  ;0x007902e6 :        e8c97b1600
             test eax , eax                                                  ;0x007902eb :        85c0
             jne Label7902f7                                                 ;0x007902ed :        7508
             lea eax ,  dword ptr [ ebp - 116 ]                              ;0x007902ef :        8d458c
             call Fun48d21f                                                  ;0x007902f2 :        e828cfcfff

     Label7902f7 ::
             pushd 01h                                                       ;0x007902f7 :        6a01
             lea eax ,  dword ptr [ ebp - 116 ]                              ;0x007902f9 :        8d458c
             push eax                                                        ;0x007902fc :        50
             pushd 010h                                                      ;0x007902fd :        6a10
             pop eax                                                         ;0x007902ff :        58
             pushd 0Fh                                                       ;0x00790300 :        6a0f
             pop ecx                                                         ;0x00790302 :        59
             call Fun49f897                                                  ;0x00790303 :        e88ff5d0ff
             test eax , eax                                                  ;0x00790308 :        85c0
             jne Label7902a7                                                 ;0x0079030a :        759b
             cmp ebx , esi                                                   ;0x0079030c :        3bde
             jne Label790315                                                 ;0x0079030e :        7505
             mov byte ptr [ Data9370dc ] ,  al                               ;0x00790310 :        a2dc709300

     Label790315 ::
             xor ecx , ecx                                                   ;0x00790315 :        33c9
             call Fun42e42c                                                  ;0x00790317 :        e810e1c9ff
             call Fun49dafa                                                  ;0x0079031c :        e8d9d7d0ff
             mov  dword ptr [ ebp - 24 ] , eax                               ;0x00790321 :        8945e8
             call Fun4821f7                                                  ;0x00790324 :        e8ce1ecfff
             pushd 01h                                                       ;0x00790329 :        6a01
             lea eax ,  dword ptr [ ebp + 44 ]                               ;0x0079032b :        8d452c
             push eax                                                        ;0x0079032e :        50
             call Fun472205                                                  ;0x0079032f :        e8d11eceff
             test eax , eax                                                  ;0x00790334 :        85c0
             jne Label79033d                                                 ;0x00790336 :        7505
             cmp  dword ptr [ ebp - 8 ] , esi                                ;0x00790338 :        3975f8
             je Label79034c                                                  ;0x0079033b :        740f

     Label79033d ::
             cmp  dword ptr [ ebp - 24 ] , esi                               ;0x0079033d :        3975e8
             jne Label79034c                                                 ;0x00790340 :        750a


     ;
     ;                 ----------------------------------------------------------------------------------------------
     ;                      VFP 9.0 FIX - THE MAXIMUM NUMBER OF MOUSE MOVE EVENTS FOR THE ACTIVATE POPUP COMMAND
     ;                                November 2024
     ;                 ----------------------------------------------------------------------------------------------
     ;                                     CCB
     ;
     ; In vfp9, for the ACTIVATE POPUP command,
     ; sometimes VFP will enter an infinite loop.
     ; In VFP Advanced, for the ACTIVATE POPUP command,
     ; when the number of mouse move events > the maximum number of mouse move events, VFP will exit loop.
     ;
     ; 2024/11/20, by ccb
     ;

             mov ecx,dword ptr vfpa_sys9175_data
             inc dword ptr [ ebp - 0D8h ][00h]
             cmp dword ptr [ ebp - 0D8h ][00h],ecx
             jbe Label790342
             mov  dword ptr [ ebp - 24 ] , 01h
             jmp Label79034c


     Label790342 ::
             xor ebx , ebx                                                   ;0x00790342 :        33db
             jmp Label78ff98                                                 ;0x00790344 :        e94ffcffff

     Label790349 ::
             mov  dword ptr [ ebp - 20 ] , esi                               ;0x00790349 :        8975ec

     Label79034c ::
             xor ebx , ebx                                                   ;0x0079034c :        33db
             jmp Label790353                                                 ;0x0079034e :        eb03

     Label790350 ::
             mov  edi , dword ptr [ ebp - 40 ]                               ;0x00790350 :        8b7dd8

     Label790353 ::
             lea eax ,  dword ptr [ ebp - 68 ]                               ;0x00790353 :        8d45bc
             push eax                                                        ;0x00790356 :        50
             lea eax ,  dword ptr [ ebp + 0FFFFFF3Ch ]                       ;0x00790357 :        8d853cffffff
             call Fun42d200                                                  ;0x0079035d :        e89ecec9ff
             mov eax ,  dword ptr [ Data937fb0 ]                             ;0x00790362 :        a1b07f9300
             push ebx                                                        ;0x00790367 :        53
             call Fun48c867                                                  ;0x00790368 :        e8fac4cfff
             mov  ecx , dword ptr [ ebp - 60 ]                               ;0x0079036d :        8b4dc4
             cmp ecx , ebx                                                   ;0x00790370 :        3bcb
             je Label790379                                                  ;0x00790372 :        7405
             call Fun544742                                                  ;0x00790374 :        e8c943dbff

     Label790379 ::
             cmp  dword ptr [ ebp - 20 ] , ebx                               ;0x00790379 :        395dec
             je Label7903af                                                  ;0x0079037c :        7431
             cmp  dword ptr [ ebp - 24 ] , ebx                               ;0x0079037e :        395de8
             jne Label7903af                                                 ;0x00790381 :        752c
             pushd 02h                                                       ;0x00790383 :        6a02
             pushd 0Ah                                                       ;0x00790385 :        6a0a
             pushd 09h                                                       ;0x00790387 :        6a09
             lea eax ,  dword ptr [ ebp - 116 ]                              ;0x00790389 :        8d458c
             push eax                                                        ;0x0079038c :        50
             call Fun4b5736                                                  ;0x0079038d :        e8a453d2ff
             pushd 02h                                                       ;0x00790392 :        6a02
             pushd 09h                                                       ;0x00790394 :        6a09
             pushd 0Ah                                                       ;0x00790396 :        6a0a
             lea eax ,  dword ptr [ ebp - 116 ]                              ;0x00790398 :        8d458c
             push eax                                                        ;0x0079039b :        50
             call Fun4b5736                                                  ;0x0079039c :        e89553d2ff
             test eax , eax                                                  ;0x007903a1 :        85c0
             je Label7903af                                                  ;0x007903a3 :        740a
             push ebx                                                        ;0x007903a5 :        53
             lea eax ,  dword ptr [ ebp - 116 ]                              ;0x007903a6 :        8d458c
             push eax                                                        ;0x007903a9 :        50
             call Fun4a107e                                                  ;0x007903aa :        e8cf0cd1ff

     Label7903af ::
             cmp edi , ebx                                                   ;0x007903af :        3bfb
             je Label7903c7                                                  ;0x007903b1 :        7414
             mov  eax , dword ptr [edi]                                      ;0x007903b3 :        8b07
             mov  eax , dword ptr [ eax + 60 ]                               ;0x007903b5 :        8b403c
             cmp  eax , dword ptr [ ebp - 44 ]                               ;0x007903b8 :        3b45d4
             je Label7903c7                                                  ;0x007903bb :        740a
             cmp  dword ptr [ ebp - 24 ] , ebx                               ;0x007903bd :        395de8
             jne Label7903cc                                                 ;0x007903c0 :        750a
             call Fun7916af                                                  ;0x007903c2 :        e8e8120000

     Label7903c7 ::
             cmp  dword ptr [ ebp - 24 ] , ebx                               ;0x007903c7 :        395de8
             je Label7903df                                                  ;0x007903ca :        7413

     Label7903cc ::
             mov  eax , dword ptr [ ebp + 16 ]                               ;0x007903cc :        8b4510
             mov  dword ptr [eax] , ebx                                      ;0x007903cf :        8918
             mov  eax , dword ptr [ ebp + 24 ]                               ;0x007903d1 :        8b4518
             mov  dword ptr [eax] , 01h                                      ;0x007903d4 :        c70001000000
             mov  eax , dword ptr [ ebp + 28 ]                               ;0x007903da :        8b451c
             mov  dword ptr [eax] , ebx                                      ;0x007903dd :        8918

     Label7903df ::
             mov  eax , dword ptr [ ebp + 32 ]                               ;0x007903df :        8b4520
             mov  dword ptr [eax] , edi                                      ;0x007903e2 :        8938

     Label7903e4 ::
             xor eax , eax                                                   ;0x007903e4 :        33c0
             inc eax                                                         ;0x007903e6 :        40
             jmp Label7903f9                                                 ;0x007903e7 :        eb10

     Label7903e9 ::
             push  dword ptr [ ebp + 40 ]                                    ;0x007903e9 :        ff7528
             call Fun78fd55                                                  ;0x007903ec :        e864f9ffff
             mov  ecx , dword ptr [ ebp + 24 ]                               ;0x007903f1 :        8b4d18
             xor eax , eax                                                   ;0x007903f4 :        33c0
             inc eax                                                         ;0x007903f6 :        40
             mov  dword ptr [ecx] , eax                                      ;0x007903f7 :        8901

     Label7903f9 ::


     ;
     ;                 ----------------------------------------------------------------------------------------------
     ;                      VFP 9.0 FIX - THE MAXIMUM NUMBER OF MOUSE MOVE EVENTS FOR THE ACTIVATE POPUP COMMAND
     ;                                November 2024
     ;                 ----------------------------------------------------------------------------------------------
     ;                                     CCB
     ;
     ; In vfp9, for the ACTIVATE POPUP command,
     ; sometimes VFP will enter an infinite loop.
     ; In VFP Advanced, for the ACTIVATE POPUP command,
     ; when the number of mouse move events > the maximum number of mouse move events, VFP will exit loop.
     ;
     ; 2024/11/20, by ccb
     ;

             mov ecx,dword ptr vfpa_sys9175_data
             cmp dword ptr [ ebp - 0D8h ][00h],ecx
             jbe Label7903fa
             xor eax , eax


     Label7903fa ::
             pop edi                                                         ;0x007903f9 :        5f
             pop esi                                                         ;0x007903fa :        5e
             pop ebx                                                         ;0x007903fb :        5b
             leave                                                           ;0x007903fc :        c9
             ret 02Ch                                                        ;0x007903fd :        c22c00


4. APPLIES TO:

     VFP 6.0.8167.0
     VFP 6.0.8961.0 (SP5)

     VFP 7.0.0.9262
     VFP 7.0.0.9465 (SP1)

     VFP 8.0.0.2521
     VFP 8.0.0.3117 (SP1)

     VFP 9.0.0.2412
     VFP 9.0.0.3504 (SP1)
     VFP 9.0.0.4611 (SP2)
     VFP 9.0.0.5015 (SP2)
     VFP 9.0.0.5411 (SP2)
     VFP 9.0.0.5721 (SP2)
     VFP 9.0.0.5815 (SP2)
     VFP 9.0.0.6303 (SP2)
     VFP 9.0.0.6602 (SP2)
     VFP 9.0.0.7423 (SP2)

     The bug has been fixed in VFP Advanced.


5. REFERENCE WEBSITES:

     1, baiyujia.com:
     http://www.baiyujia.com
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix360.asp


6. OTHER:

     For reference only, there is no guarantees.

     Any questions or suggestions, please send me an email at ccb2000@163.com.