The questions I have are:
1: Who should implement IDocHostUIHandler?  CKioskWindow, should I
derive from CAxWindow and have it implement the interface, or should
it be its own class?
2: How and when should it be wired in so that it can be used?
Code snippet:
class CKioskWindow
	: public CWindowImpl<CKioskWindow, CWindow, CKioskTraits>
	, public IDispEventImpl<ID_WEBBROWSER, CKioskWindow>
{
public:
LRESULT OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL&
bHandled)
{
    RECT rect;
	GetClientRect(&rect);
	HWND hwndContainer = m_axBrowser.Create(m_hWnd, rect, 0, WS_CHILD|
WS_VISIBLE, 0, ID_WEBBROWSER);
    if( !hwndContainer) {
		return -1;
    }
    CComPtr<IAxWinHostWindow> spAxWindow;
    if(SUCCEEDED(hr)) {
        hr = m_axBrowser.QueryHost(&spAxWindow);
    }
    // Create the control in the Host window
    if( SUCCEEDED(hr)) {
		LPOLESTR pszName = OLESTR("Shell.Explorer");
        //LPOLESTR pszName = OLESTR("Mozilla.Browser");
		hr = spAxWindow->CreateControl(pszName, m_axBrowser.m_hWnd, NULL);
	}
}
private:
CAxWindow m_axBrowser;
}