ProcessUrlAction также может блокировать отдельные элементы управления, вам нужно проверить, если dwAction = URLACTION_ACTIVEX_RUN, если это так, тогда pContext будет иметь CLSID элемента управления, который собирается запускаться.Если это тот, который вы хотите заблокировать, тогда установите pPolicy в URLPOLICY_DISALLOW и верните S_FALSE:
static CLSID CLSID_BAD = {0x00000000, 0x0000, 0x0000, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}};
STDMETHOD(ProcessUrlAction)(LPCWSTR pwszUrl, DWORD dwAction, BYTE *pPolicy, DWORD cbPolicy, BYTE *pContext, DWORD cbContext, DWORD dwFlags, DWORD dwReserved)
{
if(URLACTION_ACTIVEX_RUN == dwAction && CLSID_BAD == *(CLSID *)pContext)
{
*pPolicy = URLPOLICY_DISALLOW;
return S_FALSE;
}
return INET_E_DEFAULT_ACTION;
}