MBCS文字列
MBCS(Multi-Byte Charactor Sets)では全て1文字で表現できるようになってます。
現在Windowsで使われるのはDBCS(Double-Byte)で、1文字2byteです。
ANSI文字列は全角文字(2byte)、半角文字(1byte)で構成されますが、
その半角文字を下位バイトに、0x00を上位バイトに配置すればDBCS文字列になります。
ANSI文字列と違って後ろから文字を辿ることができるのが楽ですね。
例えば、Win32API::GetGlyphOutlineの第2引数はMBCSを指定するようになっています。
DWORD GetGlyphOutline(
HDC hdc, // handle to device context
UINT uChar, // character to query
UINT uFormat, // format of data to return
LPGLYPHMETRICS lpgm, // pointer to structure for metrics
DWORD cbBuffer, // size of buffer for data
LPVOID lpvBuffer, // pointer to buffer for data
CONST MAT2 *lpmat2 // pointer to transformation matrix structure
);
UINTとなっていますが実際はDBCSなので上位ワードに0をいれるだけでokです。
(単にWORDからキャストするだけでも)