On Sat, 14 Mar 2009, Andrew Talbot wrote:
Correct me if I'm wrong, but I don't think MapLS() takes a pointer to const.
[...]
--- a/include/winbase.h +++ b/include/winbase.h
[...]
-WINBASEAPI DWORD WINAPI MapLS(LPCVOID); +WINBASEAPI DWORD WINAPI MapLS(LPVOID);
I could not find MapLS declared in winbase.h in any of the SDKs I have here. However I found it in win_me/inc16/thunks.h in an old DDK (Microsoft Windows 2000 DDK) but the declaration was:
DWORD WINAPI MapLS(DWORD);
But this being what looks like a 16bit include it probably does not mean much.
So that leaves the questions of whether my latest SDK is recent enough (6.0.6001.18000.367-20080205), and why Wine declares MapLS in winbase.h.
Francois Gouget wrote:
I could not find MapLS declared in winbase.h in any of the SDKs I have here. However I found it in win_me/inc16/thunks.h in an old DDK (Microsoft Windows 2000 DDK) but the declaration was:
DWORD WINAPI MapLS(DWORD);
But this being what looks like a 16bit include it probably does not mean much.
So that leaves the questions of whether my latest SDK is recent enough (6.0.6001.18000.367-20080205), and why Wine declares MapLS in winbase.h.
MapSL(), MapLS() and UnMapLS() would appear to be undocumented functions from the Windows 95 to Windows 2000 era. The article http://support.microsoft.com/kb/195310 is very informative.
I think that a const-correct function whose output pointer derives from an input pointer should only make the const promise if it will not withdraw it on return. (Thus, functions like strchr() are not const-correct.) So it seems right to me that MapLS() should take a non-const input pointer.
Francois Gouget [mailto:fgouget@free.fr] wrote:
On Sat, 14 Mar 2009, Andrew Talbot wrote:
Correct me if I'm wrong, but I don't think MapLS() takes a
pointer to const. [...]
--- a/include/winbase.h +++ b/include/winbase.h
[...]
-WINBASEAPI DWORD WINAPI MapLS(LPCVOID); +WINBASEAPI DWORD WINAPI MapLS(LPVOID);
I could not find MapLS declared in winbase.h in any of the SDKs I have here. However I found it in win_me/inc16/thunks.h in an old DDK (Microsoft Windows 2000 DDK) but the declaration was:
DWORD WINAPI MapLS(DWORD);
But this being what looks like a 16bit include it probably does not mean much.
So that leaves the questions of whether my latest SDK is recent enough (6.0.6001.18000.367-20080205), and why Wine declares MapLS in winbase.h.
According to this http://support.microsoft.com/kb/195310 it's a 16-32bit thunking only function so it may not mean much on NT based kernels at all.
Maybe your SDKs are not to old but to new to contain any reference to these functions :-).
Rolf Kalbermatter