Code:
Public Sub FadeIn(ByVal hwnd As Long, _
                  ByVal lngAlphaMax As Long, _
                  Optional ByVal lngStep As Long = 1)
    Dim udtOSVer            As OSVERSIONINFO
    Dim bAlpha              As Byte
    Dim lngWindowStyle      As Long
    
    udtOSVer.dwOSVersionInfoSize = Len(udtOSVer)
    
    GetVersionEx udtOSVer
    
    If udtOSVer.dwMajorVersion >= 5 Then
    
        bAlpha = 1
            
        lngWindowStyle = GetWindowLong(hwnd, GWL_EXSTYLE)
        SetWindowLong hwnd, GWL_EXSTYLE, lngWindowStyle Or WS_EX_LAYERED
        
        SetLayeredWindowAttributes hwnd, 0, bAlpha, LWA_ALPHA
        
        ' Show + refresh
        ShowWindow hwnd, SW_SHOWNORMAL
        UpdateWindow hwnd
        
        Do
            SetLayeredWindowAttributes hwnd, 0, bAlpha, LWA_ALPHA
            
            If (Not ((bAlpha + lngStep) > lngAlphaMax)) Then
                bAlpha = bAlpha + lngStep
                
              Else
                bAlpha = lngAlphaMax
                
                SetLayeredWindowAttributes hwnd, 0, bAlpha, LWA_ALPHA
                
            End If
            
        Loop Until bAlpha >= lngAlphaMax

        SetWindowLong hwnd, GWL_EXSTYLE, lngWindowStyle

      Else  ' udtOSVEr.dwMajorVersion < 5
        
        ShowWindow hwnd, SW_SHOWNORMAL
        
    End If
    
End Sub