Delete component on initialization phase or just prevent component creation

When we are adding components to an actor like scene component, box component and etc. it calls functions like RegisterComponent, InitializeComponent, Actor calling InitializeComponents and etc.

So question is. Can I prevent certain component that was written in C++ from creating on blueprints or constructors.

What I mean is:

  1. When we pressing “+ Add” in actor hierarchy and pressing some component written on C++, it shouldn’t be created on certain condition. For example, if parent class of component owner doesn’t match with a class that I needed.

  2. Prevent same creation, if we want to create this component from constructor