From: Alexander Grigoriev on
isn't that shlwapi.dll?

"Kerem G�mr�kc�" <kareem114(a)hotmail.com> wrote in message
news:%23wmDC32nKHA.1544(a)TK2MSFTNGP06.phx.gbl...
> Hi Stefan,
>
>> Even if there is such a thing, what value would it give to you? Once you
>> had that "next available file/folder name" and just before you can create
>> it, your program can be preempted and someone else can calculate this
>> file/folder and create it, so what value will your prior call to this
>> imaginary function have?. Having a function that does this as an API is
>> subject to race conditions, so it is per se useless, unless tightly
>> coupled with a file/foldeer creation call. The only sure thing is a
>> function that tries to *create* the next possible file/folder.
>
> Yes, you are right on that. But it is quite sure that there will be no
> race condition/deadlock, because the access to the folder is only
> restricted to
> a special process that only runs single instance, system and sessionwide
> in a special account and the folder (where the subfolders/files) will be
> created) has special NTFS restrictions only for the process user context.
>
>> You mentioned PathMakeUniqueName, I never used that, does it only
>> "suggest" the file name or does it create the file as well?
>
> AFAIK (i didnt check it and will use it!) it only suggest the file name,
> like
> many shell and helper functions do with strings and URLs/Paths.
>
>> doesn't create the file name, you will have to use that in a loop until a
>> combination of the result of both PathMakeUniqueName and CreateFile
>> succeed.
>
> I implemented my own version that does a for-loop on the names until it
> gets
> a "available" name, then it does its job.
>
>> BTW: MSDN online says that PathMakeUniqueName is suppported on W2K as
>> well.
>
> I am always very cautious on functions i never used or know, so i always
> check
> first whether there is a (implemented) export of the function on the named
> library
> and this time i was right on checking it, because my up2date W2k system
> does
> NOT have such a export in the library! Yes, MSDN says that, but in fact it
> seems to
> be wrong since i do have a shell32.dll (5.00.3900.7155) on my W2k and it
> does
> NOT export that function at least it has no named export! But MSDN says:
>
> Minimum DLL Version shell32.dll version 5.0 or later
> Custom Implementation No
> Header shlobj.h
> Import library shell32.lib
> Minimum operating systems Windows 2000
>
> Thats simply wrong!
>
> And what export name is that "PathYetAnotherMakeUniqueName", available
> since >=XP *g*
>
> Regards
>
> K.
>
>
> --
> -----------------------
> Beste Gr�sse / Best regards / Votre bien devoue
> Kerem G�mr�kc�
> Latest Project: http://www.pro-it-education.de/software/deviceremover
> Latest Open-Source Projects: http://entwicklung.junetz.de
> -----------------------


From: Kerem Gümrükcü on
Non, its shell32.dll, check exports. At first i was
expecting it in the helper library too,..

--
-----------------------
Beste Gr�sse / Best regards / Votre bien devoue
Kerem G�mr�kc�
Latest Project: http://www.pro-it-education.de/software/deviceremover
Latest Open-Source Projects: http://entwicklung.junetz.de
-----------------------

"Alexander Grigoriev" <alegr(a)earthlink.net> schrieb im Newsbeitrag
news:ueIv7V8nKHA.5552(a)TK2MSFTNGP05.phx.gbl...
> isn't that shlwapi.dll?
>
> "Kerem G�mr�kc�" <kareem114(a)hotmail.com> wrote in message
> news:%23wmDC32nKHA.1544(a)TK2MSFTNGP06.phx.gbl...
>> Hi Stefan,
>>
>>> Even if there is such a thing, what value would it give to you? Once you
>>> had that "next available file/folder name" and just before you can
>>> create it, your program can be preempted and someone else can calculate
>>> this file/folder and create it, so what value will your prior call to
>>> this imaginary function have?. Having a function that does this as an
>>> API is subject to race conditions, so it is per se useless, unless
>>> tightly coupled with a file/foldeer creation call. The only sure thing
>>> is a function that tries to *create* the next possible file/folder.
>>
>> Yes, you are right on that. But it is quite sure that there will be no
>> race condition/deadlock, because the access to the folder is only
>> restricted to
>> a special process that only runs single instance, system and sessionwide
>> in a special account and the folder (where the subfolders/files) will be
>> created) has special NTFS restrictions only for the process user context.
>>
>>> You mentioned PathMakeUniqueName, I never used that, does it only
>>> "suggest" the file name or does it create the file as well?
>>
>> AFAIK (i didnt check it and will use it!) it only suggest the file name,
>> like
>> many shell and helper functions do with strings and URLs/Paths.
>>
>>> doesn't create the file name, you will have to use that in a loop until
>>> a combination of the result of both PathMakeUniqueName and CreateFile
>>> succeed.
>>
>> I implemented my own version that does a for-loop on the names until it
>> gets
>> a "available" name, then it does its job.
>>
>>> BTW: MSDN online says that PathMakeUniqueName is suppported on W2K as
>>> well.
>>
>> I am always very cautious on functions i never used or know, so i always
>> check
>> first whether there is a (implemented) export of the function on the
>> named library
>> and this time i was right on checking it, because my up2date W2k system
>> does
>> NOT have such a export in the library! Yes, MSDN says that, but in fact
>> it seems to
>> be wrong since i do have a shell32.dll (5.00.3900.7155) on my W2k and it
>> does
>> NOT export that function at least it has no named export! But MSDN says:
>>
>> Minimum DLL Version shell32.dll version 5.0 or later
>> Custom Implementation No
>> Header shlobj.h
>> Import library shell32.lib
>> Minimum operating systems Windows 2000
>>
>> Thats simply wrong!
>>
>> And what export name is that "PathYetAnotherMakeUniqueName", available
>> since >=XP *g*
>>
>> Regards
>>
>> K.
>>
>>
>> --
>> -----------------------
>> Beste Gr�sse / Best regards / Votre bien devoue
>> Kerem G�mr�kc�
>> Latest Project: http://www.pro-it-education.de/software/deviceremover
>> Latest Open-Source Projects: http://entwicklung.junetz.de
>> -----------------------
>
>
From: Alexander Grigoriev on
I remember that shell32.dll was replaced with IE update. Maybe the function
is only present after one such update.

"Kerem G�mr�kc�" <kareem114(a)hotmail.com> wrote in message
news:errLqY$nKHA.3664(a)TK2MSFTNGP04.phx.gbl...
> Non, its shell32.dll, check exports. At first i was
> expecting it in the helper library too,..
>
> --
> -----------------------
> Beste Gr�sse / Best regards / Votre bien devoue
> Kerem G�mr�kc�
> Latest Project: http://www.pro-it-education.de/software/deviceremover
> Latest Open-Source Projects: http://entwicklung.junetz.de
> -----------------------
>
> "Alexander Grigoriev" <alegr(a)earthlink.net> schrieb im Newsbeitrag
> news:ueIv7V8nKHA.5552(a)TK2MSFTNGP05.phx.gbl...
>> isn't that shlwapi.dll?
>>
>> "Kerem G�mr�kc�" <kareem114(a)hotmail.com> wrote in message
>> news:%23wmDC32nKHA.1544(a)TK2MSFTNGP06.phx.gbl...
>>> Hi Stefan,
>>>
>>>> Even if there is such a thing, what value would it give to you? Once
>>>> you had that "next available file/folder name" and just before you can
>>>> create it, your program can be preempted and someone else can calculate
>>>> this file/folder and create it, so what value will your prior call to
>>>> this imaginary function have?. Having a function that does this as an
>>>> API is subject to race conditions, so it is per se useless, unless
>>>> tightly coupled with a file/foldeer creation call. The only sure thing
>>>> is a function that tries to *create* the next possible file/folder.
>>>
>>> Yes, you are right on that. But it is quite sure that there will be no
>>> race condition/deadlock, because the access to the folder is only
>>> restricted to
>>> a special process that only runs single instance, system and sessionwide
>>> in a special account and the folder (where the subfolders/files) will be
>>> created) has special NTFS restrictions only for the process user
>>> context.
>>>
>>>> You mentioned PathMakeUniqueName, I never used that, does it only
>>>> "suggest" the file name or does it create the file as well?
>>>
>>> AFAIK (i didnt check it and will use it!) it only suggest the file name,
>>> like
>>> many shell and helper functions do with strings and URLs/Paths.
>>>
>>>> doesn't create the file name, you will have to use that in a loop until
>>>> a combination of the result of both PathMakeUniqueName and CreateFile
>>>> succeed.
>>>
>>> I implemented my own version that does a for-loop on the names until it
>>> gets
>>> a "available" name, then it does its job.
>>>
>>>> BTW: MSDN online says that PathMakeUniqueName is suppported on W2K as
>>>> well.
>>>
>>> I am always very cautious on functions i never used or know, so i always
>>> check
>>> first whether there is a (implemented) export of the function on the
>>> named library
>>> and this time i was right on checking it, because my up2date W2k system
>>> does
>>> NOT have such a export in the library! Yes, MSDN says that, but in fact
>>> it seems to
>>> be wrong since i do have a shell32.dll (5.00.3900.7155) on my W2k and it
>>> does
>>> NOT export that function at least it has no named export! But MSDN says:
>>>
>>> Minimum DLL Version shell32.dll version 5.0 or later
>>> Custom Implementation No
>>> Header shlobj.h
>>> Import library shell32.lib
>>> Minimum operating systems Windows 2000
>>>
>>> Thats simply wrong!
>>>
>>> And what export name is that "PathYetAnotherMakeUniqueName", available
>>> since >=XP *g*
>>>
>>> Regards
>>>
>>> K.
>>>
>>>
>>> --
>>> -----------------------
>>> Beste Gr�sse / Best regards / Votre bien devoue
>>> Kerem G�mr�kc�
>>> Latest Project: http://www.pro-it-education.de/software/deviceremover
>>> Latest Open-Source Projects: http://entwicklung.junetz.de
>>> -----------------------
>>
>>


From: rogero on
On Jan 27, 4:25 pm, Kerem Gümrükcü <kareem...(a)hotmail.com> wrote:

> > BTW: MSDN online says that PathMakeUniqueName is suppported on W2K as
> > well.
>
> I am always very cautious on functions i never used or know, so i always
> check
> first whether there is a (implemented) export of the function on the named
> library
> and this time i was right on checking it, because my up2date W2k system does
> NOT have such a export in the library! Yes, MSDN says that, but in fact it
> seems to
> be wrong since i do have a shell32.dll (5.00.3900.7155) on my W2k and it
> does
> NOT export that function at least it has no named export! But MSDN says:
>
> Minimum DLL Version shell32.dll version 5.0 or later
> Custom Implementation No
> Header shlobj.h
> Import library shell32.lib
> Minimum operating systems Windows 2000
>
> Thats simply wrong!
>
> And what export name is that "PathYetAnotherMakeUniqueName", available
> since >=XP  *g*

Ah - they're exported by ordinal not by name.
PathMakeUniqueName is ordinal #47 in shell32.dll on W2K

Regards,
Roger.