Alexandre Julliard wrote:

It seems to be a way to detect NT/Win95, I suspect Win95 returns a
different error code in that case. Using GetVersion() would of course
have been too easy...



And that, after they DO call "GetVersion", and do keep a variable telling whether it's NT or not. Oh well.

Would you say that returning the error in the patch only if the platform is NT type will be a correct thing to do? If so, I'll send a patch.

One possible workaround that may satisfy both Alexandre and unicows
may be to put the wildcards checking code into the error part of the
function. In other words, if we have not found such a file, return
ERROR_INVALID_NAME if the name contains wildcards, and
ERROR_FILE_NOT_FOUND if not. This way, if the file IS found, it will
be handled correctly.



Well, yes, that was the idea. The normal case is that the file doesn't
exist, and in that case we of course need to return the proper error
(also taking Windows version into account apparently...)


I'll send a patch, then.

Anyway, I looked into your unicows exe, and I believe the problem is
that the home-made GetProcAddress that unicows.lib is using doesn't
support forwarded ordinals, so I'm afraid we'll need to export real
functions from unicows.dll.


I already have a plan for doing that. Unfortunetly, it's not a nice one. Basically, it means changing unicows.spec.c after it's generated. I'll try to create the makefile so that this will still support dynamic changes.

--
Shachar Shemesh
Open Source integration & consulting
Home page & resume - http://www.shemesh.biz/





Reply via email to