ECCSkeltonのCSTRも無事完成し(従前のBCCSkeltonWplusのものにSJIS対応させました)、WCEditorもしっかり動くようになったので、しつこくCANVASとCARGをワイド文字対応させ、ついでにサンプルもBCCSkeltonから移植しようと思ったら、CTBARとCBMPが必要、ということでそちらも手を付けました。
そこで、不図気が付きました。
「コモンコントロールって、どうやってワイド文字対応しているのかな?」
色々とググってみましたが、その話題の記事は見当たらず、「commctrlW.h」「wcommctrl.h」なども無いようです。では、ツールバーをサンプルに自分で調べてみようと、commctrl.hを覗くと、ツールバー部分では、
//====== TOOLBAR CONTROL ======
.
.
.
#ifdef UNICODE
#define TOOLBARCLASSNAME TOOLBARCLASSNAMEW
#else
#define TOOLBARCLASSNAME TOOLBARCLASSNAMEA
#endif
.
.
.
#ifdef UNICODE
#define TBSAVEPARAMS TBSAVEPARAMSW
#define LPTBSAVEPARAMS LPTBSAVEPARAMSW
#else
#define TBSAVEPARAMS TBSAVEPARAMSA
#define LPTBSAVEPARAMS LPTBSAVEPARAMSA
#endif
.
.
.
ifdef UNICODE
#define TB_GETBUTTONTEXT TB_GETBUTTONTEXTW
#define TB_SAVERESTORE TB_SAVERESTOREW
#define TB_ADDSTRING TB_ADDSTRINGW
#else
#define TB_GETBUTTONTEXT TB_GETBUTTONTEXTA
#define TB_SAVERESTORE TB_SAVERESTOREA
#define TB_ADDSTRING TB_ADDSTRINGA
#endif
.
.
.
ifdef UNICODE
#define TB_MAPACCELERATOR TB_MAPACCELERATORW
#else
#define TB_MAPACCELERATOR TB_MAPACCELERATORA
#endif
.
.
.(まだまだ続きます)
のように、このヘッダーファイルの中で識別しています。と、いうことでユーザーは(特に文字列を扱わないコントロールでは)別途MSから指示が無い限り、ワイド文字対応関数を調べる必要は無いようです。(しかし、"#define UNICODE"をお忘れなく。)
ということで、CTBARはそのまま修正しないでOKでした。(不具合が出たらまたレポートしますね。)