Two remarks:
mIRC crashes because when it tries to call the RichEdit proc from your dll, it's too late : it's already been unloaded (see
http://www.mircscripts.org/forums.php?cid=6&id=31468)
Second remark, the Ctrl+B combination will never make it to the control, because mIRC handles it. Maybe Khaled could do something about this.
Oh yeah, and third remark: catch key combos like this:
case WM_KEYDOWN:
{
if (wp == _T('B') && GetAsyncKeyState(VK_CONTROL) < 0 ) {
the counter way is... bah, ugly.
Hope it helped
(Edit: typo)