setupapi: add SPFILENOTIFY_TARGETNEWER support to SetupDefaultQueueCallback

Alexandre Julliard julliard at winehq.org
Sat Dec 16 10:01:04 CST 2006


Robert Reif <reif at earthlink.net> writes:

> Index: dlls/setupapi/queue.c
> ===================================================================
> RCS file: /home/wine/wine/dlls/setupapi/queue.c,v
> retrieving revision 1.24
> diff -p -u -r1.24 queue.c
> --- dlls/setupapi/queue.c	14 Nov 2006 11:15:45 -0000	1.24
> +++ dlls/setupapi/queue.c	15 Dec 2006 16:38:56 -0000
> @@ -1379,6 +1379,28 @@ UINT WINAPI SetupDefaultQueueCallbackA( 
>      case SPFILENOTIFY_NEEDMEDIA:
>          TRACE( "need media\n" );
>          return FILEOP_SKIP;
> +    case SPFILENOTIFY_TARGETNEWER:
> +        TRACE( "target newer? Source: %s Target: %s\n",
> +               debugstr_a(paths->Source), debugstr_a(paths->Target) );
> +        {
> +            WIN32_FILE_ATTRIBUTE_DATA Source, Target;
> +
> +            if (GetFileAttributesExA(paths->Source, GetFileExInfoStandard, &Source))
> +            {
> +                if (GetFileAttributesExA(paths->Target, GetFileExInfoStandard, &Target))
> +                {
> +                    TRACE( "Target = 0x%08x%08x, Source = 0x%08x%08x\n",
> +                           Target.ftCreationTime.dwHighDateTime, Target.ftCreationTime.dwLowDateTime,
> +                           Source.ftCreationTime.dwHighDateTime, Source.ftCreationTime.dwLowDateTime );
> +
> +                    if (CompareFileTime(&Target.ftCreationTime, &Source.ftCreationTime) == 1)
> +                        return TRUE;
> +
> +                    return FALSE;
> +                }
> +            }
> +        }

That doesn't make sense to me. At this point the file is known to be
newer from the version info, why would you want to check creation
time and overwrite a newer file?

-- 
Alexandre Julliard
julliard at winehq.org



More information about the wine-devel mailing list