とりあえず、一発目がなぜこのネタなのか?ってのは置いておいて。。。
Vista で Unicode の surrogates pair を容易に扱えるようになったのでその検証。
MSDN だと下記で解説されているんですが、
Surrogates and Supplementary Characters
難しいところをすっ飛ばして、簡潔に説明すると Unicode (UTF-16) は 1文字2Byte で構成されるんですが、それを 4Byte まで拡張するしくみ。
ここまで読んでぎょっとした人もいるかも知れませんが、そんなに心配する必要は正直ないです。
というのは、surrogates pair は通常の API で扱う場合、文字長が2文字として扱われるからです。
とりあえず、検証したところ lstrlenW はもちろんのこと、legacy の VB の Len とかも surrogates pair を扱う場合、1文字で 2 を返します。
また、Vista の Explorer で surrogates pair を扱ってみたんですが、強制的に 512Byte に収められる仕様は健在のようで、そういう buffer を扱う場合も依然と同じ方法で問題ないでしょう。
lstrlenW の reference には WCHAR 単位の count を返すとなっているので、問題はないわけですが、VB とかの Len に関しては文字数を返すとなっているので注意が必要です。
# VB6.0 はどうしようもないのは当然としても、Office 2007 VBA help が文字数となっているのは正直どうかと思いますが。。。
ただ、正直言ってこれが影響を与える部分は表示と密接に係る部分に限定されるので、前述のとおりあまり影響はないでしょう。