How to call interface function from base class?

Title says its all. I’m struggling with calling implementation of my interface funtion from the base class.
Here is an example:
I got interface, let’s call it ITestInterface

    class MYPROJ_API ITestInterface
    {
    	GENERATED_BODY()
    
    	// Add interface functions to this class. This is the class that will be inherited to implement this interface.
    public:
    	UFUNCTION(BlueprintCallable, BlueprintNativeEvent)
    	void MyTestFunction();
}

and I got class that implements this interface

UCLASS()
class MYPROJ_API ABaseTestActor : public AActor, public  ITestInterface
{
	GENERATED_BODY()
	
public:	
	ATestActor();

	virtual void MyTestFunction_Implementation() override;
};

and than I got derived class.

UCLASS()
class MYPROJ_API ADerrivedTestActor : public  ABaseTestActor
{
	GENERATED_BODY()
public:
	ADerrivedTestActor ();
    	
    	virtual void MyTestFunction_Implementation() override;
}

Inside of the DerrivedTestActor::MyTestFunction_Implementation()
I want to do something like Super::MyTestFunction() but since it’s and interface
I have to use proper Execute_ call and pass the pointer to the object on which the function should be called.
I 've tried Super::Execute_MyTestFunction(this) and it compiles but I got “Fatal Error” during the runtime.

I’ve also tried something like this

Super* thisSuper = Cast<Super>(this);
thisSuper->Execute_HandleGrab(thisSuper)

but it also throws Fatal Error during runtime.

Does anyone know how to call such a function? thanks in advance.

Hello,

It should be as simple as doing this:

// DerrivedTestActor.cpp

void ADerrivedTestActor::MyTestFunction_Implementation()
{
    Super::MyTestFunction_Implementation();
}

You should not need to call the interface Execute_, just the implementation function.
The Execute_ function should only be used from other classes to avoid casting to specific types.

~ Dennis “MazyModz” Andersson