コンボボックスの入力エリアに入力されたキーメッセージを
感知・処理するため、処理の行き掛り上、コンボボックスの
CB_GETDROPPEDSTATEがきた時に次の関数を呼び出していますが
いまいち不安定です。
どうすればよろしいでしょうか?

void func(){  
 MSG   msg;
 HWND ComboEditHandle = ::GetWindow(ComboHandle,GW_CHILD);
 if(ComboEditHandle==NULL)
    return;
 ::GetMessage(&msg,ComboEditHandle,0,0);

  switch(LOWORD(msg.wParam)){
    case VK_RETURN:
       ::SendMessage(ComboHandle,WM_KEYDOWN,VK_RETURN,0);
       break;
    case VK_LEFT:
       ::SendMessage(ComboHandle,WM_KEYDOWN,VK_LEFT,0);
       break;
    case VK_RIGHT:
       ::SendMessage(ComboHandle,WM_KEYDOWN,VK_RIGHT,0);
       break;
    case VK_UP:
       ::SendMessage(ComboHandle,WM_KEYDOWN,VK_UP,0);
       break;
    case VK_DOWN:
       ::SendMessage(ComboHandle,WM_KEYDOWN,VK_DOWN,0);
       break;
 }
}