Before we continue with our IContextMenu discussion,
I need to take a little side trip and discuss the subtleties
of
the WM_CONTEXTMENU message.
First, a correction to the existing <windowsx.h> header file:
#undef HANDLE_WM_CONTEXTMENU
#define HANDLE_WM_CONTEXTMENU(hwnd, wParam, lParam, fn) \
((fn)((hwnd), (HWND)(wParam), ...