$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Gennaro Prota (gennaro_prota_at_[hidden])
Date: 2002-07-18 10:22:18
On Thu, 18 Jul 2002 11:54:30 +0100, "Anthony Williams"
<anthony_w.geo_at_[hidden]> wrote:
>"Alan Bellingham" <alan_at_[hidden]> wrote in message
>news:vvtcju4vl33a0l502ipciu3faocelt2no9_at_4ax.com...
>> Gennaro Prota <gennaro_prota_at_[hidden]>:
>>
>> >On Tue, 16 Jul 2002 12:24:56 -0500, "William E. Kempf"
>> ><williamkempf_at_[hidden]> wrote:
>> >
>> >>Which is an argument against using :: for Win32, since the vast majority
>of
>> >>Win32 API calls are macros.
>> >
>> >Well, many are. I haven't had the impression they are the vast
>> >majority though.
>>
>> In general, anything that takes a char* argument (or any structure
>> containing a char*) exists in two forms - a FunctionA() and a
>> FunctionW(), with the latter being the 'unicode' (16-bit wide char)
>> version. There is then a macro defined that maps Function onto FunctionA
>> or FunctionW as appropriate.
>>
>> Since those macros are of the form
>>
>> #define Function FunctionA
>>
>> then prefixing with :: causes the scope specification to apply to the
>> result of the macro, and it doesn't cause a problem.
>
>
>It also essentially reserves that name for the Windows API
Or, more generally, for situations where the substitution is wanted or
at least harmless. In this regard, my experience shows that a few
people are aware that, for instance, CWnd ends usually up having no
member named GetWindowText or MessageBox...
Genny.