If you are hosting the webbrowser control, here is how you interact with IE's pop-up manager:

Implement INewWindowManager (beta documentation; not final).  This should be implemented by the same object that implements IDocHostUIHandler.

When mshtml detects a new window is being requested, it will call INWM::EvaluateNewWindow().  Here is some boiler-plate for you:

I do not want pop-up management

This is the easy case, since pop-up management is opt-in.  Simply do nothing.  The webbrowser control will query you for INWM.  If the query fails, no pop-up management will occur.

I just want the same pop-up management that IE has

This is easy too.  Simply implement INWM::ENW() and return E_NOTIMPL:

CMyObject::EvaluateNewWindow(...)
{
        return E_NOTIMPL;
}

When the webbrowser control sees the failure code, it will fall back to the default pop-up management.

I want to implement my own logic

Implement INWM::ENW() and use the parameters to decide whether or not to block the new window.  Return S_FALSE to block the window and S_OK to allow it:

CMyObject::EvaluateNewWindow(...)
{
        HRESULT hr = S_OK;

        if (/* your logic here */)
        {
                hr = S_FALSE;
        }
        else if (/* more of your logic here */)
        {
                hr = S_FALSE;
        }                
        // ... and so on ...

        // Now update your UI.
        switch(hr)
        {
        case S_OK:
                OnPopupNotBlocked(...);
                break;
                       
        case S_FALSE:
                OnPopupBlocked(...);
                break;
        }

        return hr;
}