----------------------------------------------------------------------------------------
                      [ENHANCED] VFP 9.0 FIX - THE EXTENDED WINDOW STYLE OF THE WINDOW BEING CREATED
                                January 2024
                 ----------------------------------------------------------------------------------------
                                     CCB



1. BUG:

     We can set the extended window style of the window being created,
     it is useful for creating some new style windows on some new Windows versions.


2. CAUSE:

     Some extended window styles can only be specified in the CreateWindowEx() call,
     they can not be specified in the SetWindowLong() call, for example,
     SetWindowLong(wnd, GWL_EXSTYLE, WS_EX_NOREDIRECTIONBITMAP);
     it can not work fine.

     In VFP Advanced, we can set the extended window style of the window being created, for example,
     =SYS(9056,0x00200000) && WS_EX_NOREDIRECTIONBITMAP
     it will be used for the CreateWindowEx() call,
     CreateWindowEx(dwExStyle | 0x00200000, ...);
     and then the created window has the WS_EX_NOREDIRECTIONBITMAP style.

     There are some BUGs in the following code.


3. RESOLUTION:

     We can write some code to fix the BUG.

     Fun42eb1e :: ; proc near
             push ebp                                                        ;0x0042eb1e :        55
             mov ebp , esp                                                   ;0x0042eb1f :        8bec
             sub esp , 0ACh                                                  ;0x0042eb21 :        81ecac000000
             push ebx                                                        ;0x0042eb27 :        53
             push esi                                                        ;0x0042eb28 :        56
             push edi                                                        ;0x0042eb29 :        57
             call Fun42f0b0                                                  ;0x0042eb2a :        e881050000
             mov ecx , eax                                                   ;0x0042eb2f :        8bc8
             xor edi , edi                                                   ;0x0042eb31 :        33ff
             cmp ecx , edi                                                   ;0x0042eb33 :        3bcf
             mov  dword ptr [ ebp - 4 ] , ecx                                ;0x0042eb35 :        894dfc
             je Label5a80b4                                                  ;0x0042eb38 :        0f8476951700
             mov  esi , dword ptr [ ebp + 8 ]                                ;0x0042eb3e :        8b7508
             mov  eax , dword ptr [ esi + 76 ]                               ;0x0042eb41 :        8b464c
             mov  edx , dword ptr [ esi + 76 ]                               ;0x0042eb44 :        8b564c
             and eax , 01E00000h                                             ;0x0042eb47 :        250000e001
             mov  dword ptr [ ebp - 72 ] , eax                               ;0x0042eb4c :        8945b8
             not eax                                                         ;0x0042eb4f :        f7d0
             and edx , eax                                                   ;0x0042eb51 :        23d0
             mov  dword ptr [ esi + 76 ] , edx                               ;0x0042eb53 :        89564c
             mov  ecx , dword ptr [ecx]                                      ;0x0042eb56 :        8b09
             mov eax , edx                                                   ;0x0042eb58 :        8bc2
             mov  edx , dword ptr [ esi + 56 ]                               ;0x0042eb5a :        8b5638
             mov  dword ptr [ ebp - 12 ] , ecx                               ;0x0042eb5d :        894df4
             cmp  edx , dword ptr [ Data937fa8 ]                             ;0x0042eb60 :        3b15a87f9300
             mov  dword ptr [ ebp - 16 ] , edi                               ;0x0042eb66 :        897df0
             je Label4094f1                                                  ;0x0042eb69 :        0f8482a9fdff

     Label42eb6f ::
             mov  ecx , dword ptr [ esi + 56 ]                               ;0x0042eb6f :        8b4e38
             cmp ecx , edi                                                   ;0x0042eb72 :        3bcf
             je Label409522                                                  ;0x0042eb74 :        0f84a8a9fdff
             mov  eax , dword ptr [ecx]                                      ;0x0042eb7a :        8b01
             mov  eax , dword ptr [eax]                                      ;0x0042eb7c :        8b00
             mov  dword ptr [ ebp - 16 ] , eax                               ;0x0042eb7e :        8945f0
             mov  eax , dword ptr [ esi + 76 ]                               ;0x0042eb81 :        8b464c
             test al , 02h                                                   ;0x0042eb84 :        a802
             jne Label433388                                                 ;0x0042eb86 :        0f85fc470000
             test  byte ptr ah , 020h                                        ;0x0042eb8c :        f6c420
             jne Label42eba2                                                 ;0x0042eb8f :        7511
             or eax , 01h                                                    ;0x0042eb91 :        83c801
             mov  dword ptr [ esi + 76 ] , eax                               ;0x0042eb94 :        89464c
             mov  eax , dword ptr [ esi + 60 ]                               ;0x0042eb97 :        8b463c
             or eax , 040000000h                                             ;0x0042eb9a :        0d00000040

     Label42eb9f ::
             mov  dword ptr [ esi + 60 ] , eax                               ;0x0042eb9f :        89463c

     Label42eba2 ::
             cmp ecx , edi                                                   ;0x0042eba2 :        3bcf
             je Label409522                                                  ;0x0042eba4 :        0f8478a9fdff

     Label42ebaa ::
             mov  eax , dword ptr [ esi + 44 ]                               ;0x0042ebaa :        8b462c
             cmp eax , edi                                                   ;0x0042ebad :        3bc7
             jne Label5a8077                                                 ;0x0042ebaf :        0f85c2941700
             cmp  dword ptr [ esi + 40 ] , edi                               ;0x0042ebb5 :        397e28
             jne Label5a8077                                                 ;0x0042ebb8 :        0f85b9941700

     Label42ebbe ::
             mov  eax , dword ptr [ esi + 20 ]                               ;0x0042ebbe :        8b4614
             mov  ecx , dword ptr [ esi + 36 ]                               ;0x0042ebc1 :        8b4e24
             cmp eax , ecx                                                   ;0x0042ebc4 :        3bc1
             jnl Label5a8097                                                 ;0x0042ebc6 :        0f8dcb941700

     Label42ebcc ::
             mov  ecx , dword ptr [ esi + 28 ]                               ;0x0042ebcc :        8b4e1c
             cmp eax , ecx                                                   ;0x0042ebcf :        3bc1
             mov  dword ptr [ esi + 20 ] , eax                               ;0x0042ebd1 :        894614
             jle Label43a0f4                                                 ;0x0042ebd4 :        0f8e1ab50000

     Label42ebda ::
             mov  ecx , dword ptr [ esi + 32 ]                               ;0x0042ebda :        8b4e20
             mov  dword ptr [ ebp - 8 ] , eax                                ;0x0042ebdd :        8945f8
             mov  dword ptr [ esi + 20 ] , eax                               ;0x0042ebe0 :        894614
             mov  eax , dword ptr [ esi + 16 ]                               ;0x0042ebe3 :        8b4610
             cmp eax , ecx                                                   ;0x0042ebe6 :        3bc1
             jnl Label5a809e                                                 ;0x0042ebe8 :        0f8db0941700

     Label42ebee ::
             mov  edi , dword ptr [ esi + 24 ]                               ;0x0042ebee :        8b7e18
             cmp eax , edi                                                   ;0x0042ebf1 :        3bc7
             mov  dword ptr [ esi + 16 ] , eax                               ;0x0042ebf3 :        894610
             jle Label42ebfa                                                 ;0x0042ebf6 :        7e02
             mov edi , eax                                                   ;0x0042ebf8 :        8bf8

     Label42ebfa ::
             mov  ecx , dword ptr [ esi + 76 ]                               ;0x0042ebfa :        8b4e4c
             mov  ebx , dword ptr [ esi + 80 ]                               ;0x0042ebfd :        8b5e50
             push ecx                                                        ;0x0042ec00 :        51
             lea edx ,  dword ptr [ ebp - 80 ]                               ;0x0042ec01 :        8d55b0
             lea eax ,  dword ptr [ ebp - 68 ]                               ;0x0042ec04 :        8d45bc
             mov  dword ptr [ esi + 16 ] , edi                               ;0x0042ec07 :        897e10
             call Fun42f015                                                  ;0x0042ec0a :        e806040000
             mov  edx , dword ptr [ ebp - 68 ]                               ;0x0042ec0f :        8b55bc
             mov  ebx , dword ptr [ esi + 60 ]                               ;0x0042ec12 :        8b5e3c
             mov  ecx , dword ptr [ ebp - 80 ]                               ;0x0042ec15 :        8b4db0
             or ebx , edx                                                    ;0x0042ec18 :        0bda
             mov  edx , dword ptr [ esi + 64 ]                               ;0x0042ec1a :        8b5640
             or edx , ecx                                                    ;0x0042ec1d :        0bd1
             mov  dword ptr [ esi + 64 ] , edx                               ;0x0042ec1f :        895640
             mov ecx , edx                                                   ;0x0042ec22 :        8bca


     ;
     ;                 -----------------------------------------------------------------------------
     ;                      VFP 9.0 FIX - THE EXTENDED WINDOW STYLE OF THE WINDOW BEING CREATED
     ;                                  March 2021
     ;                 -----------------------------------------------------------------------------
     ;                                     CCB
     ;
     ; The extended window style of the window being created.
     ;
     ; 2021/3/18, by ccb
     ;

             cmp dword ptr vfpa_sys9056_data,00h
             je Label42ec24
             or ecx , dword ptr vfpa_sys9056_data


     Label42ec24 ::
             mov  edx , dword ptr [ ebp + 12 ]                               ;0x0042ec24 :        8b550c


     ;
     ;                 --------------------------------------------------------------------
     ;                      VFP 9.0 FIX - THE WINDOW STYLE OF THE WINDOW BEING CREATED
     ;                                  March 2021
     ;                 --------------------------------------------------------------------
     ;                                     CCB
     ;
     ; The window style of the window being created.
     ;
     ; 2021/3/18, by ccb
     ;

     ;         test edx , edx                                                  ;0x0042ec27 :        85d2
     ;         mov  dword ptr [ esi + 60 ] , ebx                               ;0x0042ec29 :        895e3c
     ;         mov eax , ebx                                                   ;0x0042ec2c :        8bc3
     ;         jne Label5a80a5                                                 ;0x0042ec2e :        0f8571941700

             mov  dword ptr [ esi + 60 ] , ebx
             mov eax , ebx
             cmp dword ptr vfpa_sys9055_data,00h
             je Label42ec27
             or eax , dword ptr vfpa_sys9055_data


     Label42ec27 ::
             test edx , edx                                                  ;0x0042ec27 :        85d2
             jne Label5a80a5                                                 ;0x0042ec2e :        0f8571941700
             push edx                                                        ;0x0042ec34 :        52
             mov  edx , dword ptr [ Data9370cc ]                             ;0x0042ec35 :        8b15cc709300
             push edx                                                        ;0x0042ec3b :        52
             mov  edx , dword ptr [ ebp - 16 ]                               ;0x0042ec3c :        8b55f0
             pushd 00h                                                       ;0x0042ec3f :        6a00
             push edx                                                        ;0x0042ec41 :        52
             mov  edx , dword ptr [ ebp - 8 ]                                ;0x0042ec42 :        8b55f8
             push edx                                                        ;0x0042ec45 :        52
             mov  edx , dword ptr [ esi + 12 ]                               ;0x0042ec46 :        8b560c
             push edi                                                        ;0x0042ec49 :        57
             push edx                                                        ;0x0042ec4a :        52
             mov  edx , dword ptr [ esi + 8 ]                                ;0x0042ec4b :        8b5608
             push edx                                                        ;0x0042ec4e :        52
             mov  edx , dword ptr [ esi + 0C0h ]                             ;0x0042ec4f :        8b96c0000000
             push eax                                                        ;0x0042ec55 :        50
             mov  eax , dword ptr [ esi + 0A4h ]                             ;0x0042ec56 :        8b86a4000000
             push eax                                                        ;0x0042ec5c :        50
             push edx                                                        ;0x0042ec5d :        52
             push ecx                                                        ;0x0042ec5e :        51
             call  CreateWindowExA                             ;0x0042ec5f :        ff1594729100


     ;
     ;                 -----------------------------------------------------------------------------
     ;                      VFP 9.0 FIX - THE EXTENDED WINDOW STYLE OF THE WINDOW BEING CREATED
     ;                                  March 2021
     ;                 -----------------------------------------------------------------------------
     ;                                     CCB
     ;
     ; The extended window style of the window being created.
     ;
     ; 2021/3/18, by ccb
     ;

             cmp dword ptr vfpa_sys9055_data,00h
             jne Label42ec0d
             cmp dword ptr vfpa_sys9056_data,00h
             jne Label42ec0d
             jmp Label42ec65

     Label42ec0d ::
             test eax , eax
             je Label42ec0e
             mov edx , dword ptr vfpa_sys9055_data
             or  dword ptr [ esi + 60 ] , edx
             mov edx , dword ptr vfpa_sys9056_data
             or  dword ptr [ esi + 64 ] , edx
             jmp Label42ec65

     Label42ec0e ::
             mov  edx , dword ptr [ ebp - 68 ]                               ;0x0042ec0f :        8b55bc
             mov  ebx , dword ptr [ esi + 60 ]                               ;0x0042ec12 :        8b5e3c
             mov  ecx , dword ptr [ ebp - 80 ]                               ;0x0042ec15 :        8b4db0
             or ebx , edx                                                    ;0x0042ec18 :        0bda
             mov  edx , dword ptr [ esi + 64 ]                               ;0x0042ec1a :        8b5640
             or edx , ecx                                                    ;0x0042ec1d :        0bd1
             mov  dword ptr [ esi + 64 ] , edx                               ;0x0042ec1f :        895640
             mov ecx , edx                                                   ;0x0042ec22 :        8bca
             mov  edx , dword ptr [ ebp + 12 ]                               ;0x0042ec24 :        8b550c
             test edx , edx                                                  ;0x0042ec27 :        85d2
             mov  dword ptr [ esi + 60 ] , ebx                               ;0x0042ec29 :        895e3c
             mov eax , ebx                                                   ;0x0042ec2c :        8bc3
             jne Label5a80a5                                                 ;0x0042ec2e :        0f8571941700
             push edx                                                        ;0x0042ec34 :        52
             mov  edx , dword ptr [ Data9370cc ]                             ;0x0042ec35 :        8b15cc709300
             push edx                                                        ;0x0042ec3b :        52
             mov  edx , dword ptr [ ebp - 16 ]                               ;0x0042ec3c :        8b55f0
             pushd 00h                                                       ;0x0042ec3f :        6a00
             push edx                                                        ;0x0042ec41 :        52
             mov  edx , dword ptr [ ebp - 8 ]                                ;0x0042ec42 :        8b55f8
             push edx                                                        ;0x0042ec45 :        52
             mov  edx , dword ptr [ esi + 12 ]                               ;0x0042ec46 :        8b560c
             push edi                                                        ;0x0042ec49 :        57
             push edx                                                        ;0x0042ec4a :        52
             mov  edx , dword ptr [ esi + 8 ]                                ;0x0042ec4b :        8b5608
             push edx                                                        ;0x0042ec4e :        52
             mov  edx , dword ptr [ esi + 0C0h ]                             ;0x0042ec4f :        8b96c0000000
             push eax                                                        ;0x0042ec55 :        50
             mov  eax , dword ptr [ esi + 0A4h ]                             ;0x0042ec56 :        8b86a4000000
             push eax                                                        ;0x0042ec5c :        50
             push edx                                                        ;0x0042ec5d :        52
             push ecx                                                        ;0x0042ec5e :        51
             call  CreateWindowExA                             ;0x0042ec5f :        ff1594729100


     Label42ec65 ::
             mov edi , eax                                                   ;0x0042ec65 :        8bf8

     Label42ec67 ::
             test edi , edi                                                  ;0x0042ec67 :        85ff
             mov  dword ptr [ ebp - 8 ] , edi                                ;0x0042ec69 :        897df8
             je Label5a80ac                                                  ;0x0042ec6c :        0f843a941700
             test  byte ptr [ esi + 76 ] , 08h                               ;0x0042ec72 :        f6464c08
             jne Label437a79                                                 ;0x0042ec76 :        0f85fd8d0000

     Label42ec7c ::
             mov eax ,  dword ptr [ Data937794 ]                             ;0x0042ec7c :        a194779300
             test eax , eax                                                  ;0x0042ec81 :        85c0
             je Label409531                                                  ;0x0042ec83 :        0f84a8a8fdff

     Label42ec89 ::
             mov  ebx , dword ptr [ ebp - 12 ]                               ;0x0042ec89 :        8b5df4
             mov  edx , dword ptr [ ebp - 4 ]                                ;0x0042ec8c :        8b55fc
             xor eax , eax                                                   ;0x0042ec8f :        33c0
             mov ecx , 05Ch                                                  ;0x0042ec91 :        b95c000000
             mov edi , ebx                                                   ;0x0042ec96 :        8bfb
             rep stosd                                                       ;0x0042ec98 :        f3ab
             mov  eax , dword ptr [ ebp - 8 ]                                ;0x0042ec9a :        8b45f8
             mov  dword ptr [ebx] , eax                                      ;0x0042ec9d :        8903
             mov  dword ptr [ ebx + 44 ] , edx                               ;0x0042ec9f :        89532c
             mov  ecx , dword ptr [ esi + 52 ]                               ;0x0042eca2 :        8b4e34
             mov  dword ptr [ ebx + 60 ] , ecx                               ;0x0042eca5 :        894b3c
             mov  edx , dword ptr [ esi + 84 ]                               ;0x0042eca8 :        8b5654
             mov  dword ptr [ ebx + 88 ] , edx                               ;0x0042ecab :        895358
             mov  ecx , dword ptr [ esi + 76 ]                               ;0x0042ecae :        8b4e4c
             mov  dword ptr [ ebx + 80 ] , ecx                               ;0x0042ecb1 :        894b50
             mov  edx , dword ptr [ esi + 80 ]                               ;0x0042ecb4 :        8b5650
             mov  dword ptr [ ebx + 84 ] , edx                               ;0x0042ecb7 :        895354
             mov  dword ptr [ ebx + 92 ] , 00h                               ;0x0042ecba :        c7435c00000000
             mov  ecx , dword ptr [ esi + 24 ]                               ;0x0042ecc1 :        8b4e18
             mov  dword ptr [ ebx + 120 ] , ecx                              ;0x0042ecc4 :        894b78
             mov  edx , dword ptr [ esi + 28 ]                               ;0x0042ecc7 :        8b561c
             mov  dword ptr [ ebx + 124 ] , edx                              ;0x0042ecca :        89537c
             mov  ecx , dword ptr [ esi + 32 ]                               ;0x0042eccd :        8b4e20
             mov  dword ptr [ ebx + 080h ] , ecx                             ;0x0042ecd0 :        898b80000000
             mov  edx , dword ptr [ esi + 36 ]                               ;0x0042ecd6 :        8b5624
             mov  dword ptr [ ebx + 084h ] , edx                             ;0x0042ecd9 :        899384000000
             mov  cl , byte ptr [ esi + 09Fh ]                               ;0x0042ecdf :        8a8e9f000000
             mov  dx , word ptr [ Data9377b4 ]                               ;0x0042ece5 :        668b15b4779300
             mov  byte ptr [ ebx + 0168h ] , cl                              ;0x0042ecec :        888b68010000
             mov  cx , word ptr [ Data9377b0 ]                               ;0x0042ecf2 :        668b0db0779300
             mov  word ptr [ ebx + 0160h ] , dx                              ;0x0042ecf9 :        66899360010000
             push eax                                                        ;0x0042ed00 :        50
             mov  word ptr [ ebx + 0162h ] , cx                              ;0x0042ed01 :        66898b62010000
             call  GetDC                                       ;0x0042ed08 :        ff15b4729100
             mov  dword ptr [ ebx + 8 ] , eax                                ;0x0042ed0e :        894308
             mov  edx , dword ptr [ esi + 48 ]                               ;0x0042ed11 :        8b5630
             mov  dword ptr [ ebx + 40 ] , edx                               ;0x0042ed14 :        895328
             lea esi ,  dword ptr [ ebx + 010Dh ]                            ;0x0042ed17 :        8db30d010000
             mov  ebx , dword ptr [ ebp - 4 ]                                ;0x0042ed1d :        8b5dfc
             mov eax , ebx                                                   ;0x0042ed20 :        8bc3
             call Fun42ef76                                                  ;0x0042ed22 :        e84f020000
             mov  eax , dword ptr [ ebp + 8 ]                                ;0x0042ed27 :        8b4508
             mov  ecx , dword ptr [ eax + 0B0h ]                             ;0x0042ed2a :        8b88b0000000
             test ecx , ecx                                                  ;0x0042ed30 :        85c9
             jne Label545950                                                 ;0x0042ed32 :        0f85186c1100
             mov  esi , dword ptr [ ebp + 8 ]                                ;0x0042ed38 :        8b7508
             mov  eax , dword ptr [ esi + 0B8h ]                             ;0x0042ed3b :        8b86b8000000
             test eax , eax                                                  ;0x0042ed41 :        85c0
             jne Label5a80bf                                                 ;0x0042ed43 :        0f8576931700

     Label42ed49 ::
             mov  edi , dword ptr [ ebp - 12 ]                               ;0x0042ed49 :        8b7df4

     Label42ed4c ::
             mov  eax , dword ptr [ ebp + 8 ]                                ;0x0042ed4c :        8b4508
             mov  eax , dword ptr [ eax + 0BCh ]                             ;0x0042ed4f :        8b80bc000000
             test eax , eax                                                  ;0x0042ed55 :        85c0
             jne Label5a80e3                                                 ;0x0042ed57 :        0f8586931700

     Label42ed5d ::
             mov  esi , dword ptr [ ebp - 8 ]                                ;0x0042ed5d :        8b75f8
             push esi                                                        ;0x0042ed60 :        56
             mov  dword ptr [ edi + 108 ] , 04001h                           ;0x0042ed61 :        c7476c01400000
             call  IsZoomed                                    ;0x0042ed68 :        ff1504759100
             test eax , eax                                                  ;0x0042ed6e :        85c0
             jne Label5a80f1                                                 ;0x0042ed70 :        0f857b931700

     Label42ed76 ::
             push esi                                                        ;0x0042ed76 :        56
             call  IsIconic                                    ;0x0042ed77 :        ff155c729100
             test eax , eax                                                  ;0x0042ed7d :        85c0
             mov esi , 0100h                                                 ;0x0042ed7f :        be00010000
             jne Label5a80fa                                                 ;0x0042ed84 :        0f8570931700

     Label42ed8a ::
             mov  eax , dword ptr [ ebp + 12 ]                               ;0x0042ed8a :        8b450c
             test eax , eax                                                  ;0x0042ed8d :        85c0
             jne Label5a8102                                                 ;0x0042ed8f :        0f856d931700

     Label42ed95 ::
             mov eax ,  dword ptr [ Data9377a0 ]                             ;0x0042ed95 :        a1a0779300
             mov  edx , dword ptr [ ebp + 8 ]                                ;0x0042ed9a :        8b5508
             mov  dword ptr [ edi + 72 ] , eax                               ;0x0042ed9d :        894748
             mov  ecx , dword ptr [edx]                                      ;0x0042eda0 :        8b0a
             mov  dword ptr [ edi + 64 ] , ecx                               ;0x0042eda2 :        894f40
             mov  ecx , dword ptr [ Data93779c ]                             ;0x0042eda5 :        8b0d9c779300
             mov  ecx , dword ptr [ecx]                                      ;0x0042edab :        8b09
             mov  dword ptr [ ecx + 4 * eax ] , ebx                          ;0x0042edad :        891c81
             mov  ecx , dword ptr [ Data9377ac ]                             ;0x0042edb0 :        8b0dac779300
             mov  ecx , dword ptr [ecx]                                      ;0x0042edb6 :        8b09
             mov  dword ptr [ ecx + 4 * eax ] , ebx                          ;0x0042edb8 :        891c81
             inc eax                                                         ;0x0042edbb :        40
             mov dword ptr [ Data9377a0 ] ,  eax                             ;0x0042edbc :        a3a0779300
             test  dword ptr [ edx + 76 ] , esi                              ;0x0042edc1 :        85724c
             mov  esi , GetSystemMetrics                       ;0x0042edc4 :        8b3550729100
             jne Label545986                                                 ;0x0042edca :        0f85b66b1100

     Label42edd0 ::
             mov  eax , dword ptr [ ebp + 8 ]                                ;0x0042edd0 :        8b4508
             mov  cl , byte ptr [ eax + 76 ]                                 ;0x0042edd3 :        8a484c
             test cl , cl                                                    ;0x0042edd6 :        84c9
             js Label545a5f                                                  ;0x0042edd8 :        0f88816c1100

     Label42edde ::
             mov  eax , dword ptr [ ebp + 8 ]                                ;0x0042edde :        8b4508
             test  dword ptr [ eax + 76 ] , 0180h                            ;0x0042ede1 :        f7404c80010000
             jne Label545b38                                                 ;0x0042ede8 :        0f854a6d1100

     Label42edee ::
             mov edx , 03h                                                   ;0x0042edee :        ba03000000
             mov ecx , ebx                                                   ;0x0042edf3 :        8bcb
             call Fun42e93b                                                  ;0x0042edf5 :        e841fbffff
             mov  eax , dword ptr [ebx]                                      ;0x0042edfa :        8b03
             mov  esi , dword ptr [ ebp + 8 ]                                ;0x0042edfc :        8b7508
             mov  dword ptr [ eax + 0148h ] , 01Fh                           ;0x0042edff :        c780480100001f000000
             mov  eax , dword ptr [ esi + 0A4h ]                             ;0x0042ee09 :        8b86a4000000
             test eax , eax                                                  ;0x0042ee0f :        85c0
             jne Label434e24                                                 ;0x0042ee11 :        0f850d600000

     Label42ee17 ::
             mov  eax , dword ptr [ esi + 0A8h ]                             ;0x0042ee17 :        8b86a8000000
             test eax , eax                                                  ;0x0042ee1d :        85c0
             jne Label5a8168                                                 ;0x0042ee1f :        0f8543931700

     Label42ee25 ::
             mov  eax , dword ptr [ esi + 56 ]                               ;0x0042ee25 :        8b4638
             test eax , eax                                                  ;0x0042ee28 :        85c0
             je Label42ee35                                                  ;0x0042ee2a :        7409
             pushd 00h                                                       ;0x0042ee2c :        6a00
             push eax                                                        ;0x0042ee2e :        50
             push ebx                                                        ;0x0042ee2f :        53
             call Fun430e1c                                                  ;0x0042ee30 :        e8e71f0000

     Label42ee35 ::
             lea edx ,  dword ptr [ ebp - 64 ]                               ;0x0042ee35 :        8d55c0
             lea eax ,  dword ptr [ ebp + 0FFFFFF58h ]                       ;0x0042ee38 :        8d8558ffffff
             call Fun42c27f                                                  ;0x0042ee3e :        e83cd4ffff
             pushd 00h                                                       ;0x0042ee43 :        6a00
             push eax                                                        ;0x0042ee45 :        50
             call Fun42c2be                                                  ;0x0042ee46 :        e873d4ffff
             mov  edi , dword ptr [ ebp - 4 ]                                ;0x0042ee4b :        8b7dfc
             mov ebx , eax                                                   ;0x0042ee4e :        8bd8
             add esp , 08h                                                   ;0x0042ee50 :        83c408
             test ebx , ebx                                                  ;0x0042ee53 :        85db
             jne Label42eeaa                                                 ;0x0042ee55 :        7553
             mov ecx , edi                                                   ;0x0042ee57 :        8bcf
             call Fun42fa78                                                  ;0x0042ee59 :        e81a0c0000
             xor edx , edx                                                   ;0x0042ee5e :        33d2
             mov ecx , edi                                                   ;0x0042ee60 :        8bcf
             call Fun42f5e3                                                  ;0x0042ee62 :        e87c070000
             xor eax , eax                                                   ;0x0042ee67 :        33c0
             mov ecx , edi                                                   ;0x0042ee69 :        8bcf
             call Fun42fcb4                                                  ;0x0042ee6b :        e8440e0000
             push edi                                                        ;0x0042ee70 :        57
             call Fun42f725                                                  ;0x0042ee71 :        e8af080000
             mov  ecx , dword ptr [edi]                                      ;0x0042ee76 :        8b0f
             mov  ecx , dword ptr [ecx]                                      ;0x0042ee78 :        8b09
             pushd 013h                                                      ;0x0042ee7a :        6a13
             pushd 00h                                                       ;0x0042ee7c :        6a00
             pushd 00h                                                       ;0x0042ee7e :        6a00
             pushd 00h                                                       ;0x0042ee80 :        6a00
             pushd 00h                                                       ;0x0042ee82 :        6a00
             push eax                                                        ;0x0042ee84 :        50
             push ecx                                                        ;0x0042ee85 :        51
             call  SetWindowPos                                ;0x0042ee86 :        ff1550739100
             mov  edx , dword ptr [edi]                                      ;0x0042ee8c :        8b17
             test  byte ptr [ edx - 7 ] , 080h                               ;0x0042ee8e :        f642f980
             je Label42ee9b                                                  ;0x0042ee92 :        7407
             mov eax , edi                                                   ;0x0042ee94 :        8bc7
             call Fun42fa41                                                  ;0x0042ee96 :        e8a60b0000

     Label42ee9b ::
             mov  eax , dword ptr [edi]                                      ;0x0042ee9b :        8b07
             mov esi , edi                                                   ;0x0042ee9d :        8bf7
             mov  word ptr [ eax - 8 ] , 0Bh                                 ;0x0042ee9f :        66c740f80b00
             call Fun42fc5a                                                  ;0x0042eea5 :        e8b00d0000

     Label42eeaa ::
             mov eax ,  dword ptr [ Data937220 ]                             ;0x0042eeaa :        a120729300
             lea ecx ,  dword ptr [ ebp + 0FFFFFF58h ]                       ;0x0042eeaf :        8d8d58ffffff
             cmp ecx , eax                                                   ;0x0042eeb5 :        3bc8
             jne Label5a8175                                                 ;0x0042eeb7 :        0f85b8921700
             mov  edx , dword ptr [ Data937220 ]                             ;0x0042eebd :        8b1520729300
             mov  eax , dword ptr [ edx + 76 ]                               ;0x0042eec3 :        8b424c
             cmp  dword ptr [ ebp - 64 ] , eax                               ;0x0042eec6 :        3945c0
             mov dword ptr [ Data937220 ] ,  eax                             ;0x0042eec9 :        a320729300
             jne Label5a817f                                                 ;0x0042eece :        0f85ab921700
             test ebx , ebx                                                  ;0x0042eed4 :        85db
             jne Label5a8189                                                 ;0x0042eed6 :        0f85ad921700
             mov  eax , dword ptr [ ebp - 72 ]                               ;0x0042eedc :        8b45b8
             mov  esi , dword ptr [ ebp + 8 ]                                ;0x0042eedf :        8b7508
             push eax                                                        ;0x0042eee2 :        50
             push esi                                                        ;0x0042eee3 :        56
             push edi                                                        ;0x0042eee4 :        57
             call Fun42fd21                                                  ;0x0042eee5 :        e8370e0000
             test eax , eax                                                  ;0x0042eeea :        85c0
             je Label5a819c                                                  ;0x0042eeec :        0f84aa921700

     Label42eef2 ::
             test edi , edi                                                  ;0x0042eef2 :        85ff
             je Label42ef13                                                  ;0x0042eef4 :        741d
             test  byte ptr [ esi + 4 ] , 02h                                ;0x0042eef6 :        f6460402
             je Label42ef03                                                  ;0x0042eefa :        7407
             mov eax , edi                                                   ;0x0042eefc :        8bc7
             call Fun437d03                                                  ;0x0042eefe :        e8008e0000

     Label42ef03 ::
             test  dword ptr [ Data9370f4 ] , 010000h                        ;0x0042ef03 :        f705f470930000000100
             jne Label5a81ad                                                 ;0x0042ef0d :        0f859a921700

     Label42ef13 ::
             mov eax , edi                                                   ;0x0042ef13 :        8bc7
             pop edi                                                         ;0x0042ef15 :        5f
             pop esi                                                         ;0x0042ef16 :        5e
             pop ebx                                                         ;0x0042ef17 :        5b
             mov esp , ebp                                                   ;0x0042ef18 :        8be5
             pop ebp                                                         ;0x0042ef1a :        5d
             ret 08h                                                         ;0x0042ef1b :        c20800


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.

     IMPORTANT NOTE:
     Some extended window styles can only be supported on some new Windows versions,
     recommend to check the OS() function first, for example,
     IF VAL(OS(3))>6 OR (VAL(OS(3))=6 AND VAL(OS(4))>=2) && Windows 8 or later
        =SYS(9056,0x00200000) && WS_EX_NOREDIRECTIONBITMAP
     ENDIF


5. REFERENCE WEBSITES:

     1, baiyujia.com:
     http://www.baiyujia.com
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix163.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix161.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix162.asp

     2, microsoft.com:
     https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-createwindowexa
     https://docs.microsoft.com/en-us/windows/win32/winmsg/extended-window-styles
     https://docs.microsoft.com/en-us/archive/msdn-magazine/2014/june/windows-with-c-high-performance-window-layering

     3, stackoverflow.com:
     https://stackoverflow.com/questions/40576394/setwindowlong-with-gwl-exstyle-and-ws-ex-noredirectionbitmap


6. OTHER:

     For reference only, there is no guarantees.

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