IMEのデータベースから品詞を取得...できない

したいんだけど、ImmEnumRegisterWord() が 0 を返して困り中。

// 略
#include <imm.h>
#pragma comment(lib,"imm32.lib")

// 略
HKL hkl = GetKeyboardLayout(0);

TCHAR	description[101];
ImmGetDescription(hkl, description, 100);
_tprintf(_T("description: %s\r\n"), description); // 予定通り "ATOK 2005" とかでる

UINT ret;
ret = ImmEnumRegisterWord(hkl, MyEnumRegisterWordProc, _T("とうきょう"), 0, NULL, NULL); // だめ
ret = ImmEnumRegisterWord(hkl, MyEnumRegisterWordProc, NULL, 0, _T("東京"), NULL); // これもだめ
ret = ImmEnumRegisterWord(hkl, MyEnumRegisterWordProc, NULL, 0, NULL, NULL); // これもだめ

HKLが悪いんかな。ImmGetRegisterWordStyle() でスタイル(品詞)の一覧は問題なくできてるけど。