TSubclassOf Param is going to pass the class of the item and not the item itself. Beware of this. If you want to pass a pointer to a function that takes it as a pointer to the base class you can simple use it that way:
SomeFunct(BaseClass* Item);
Anyways, to respond your question, to get the derived class as a pointer to your base class simply cast it with the Cast function, like so:
BaseClass* Item = Cast<BaseClass>(Param);
Again, this is unnecesary if what you are doing is passing pointers. You do not need to cast a derived class object pointer to its base class in a function. Simply pass the pointer. In that case your function would look like this:
You should use casting only for downcasting. For instance if you want a pointer of your base class to be used as a pointer to your child class. Upcasting is not needed with pointers.