Yesterday, I spent wayyyyy too long trying to work out how to setup a C++ interface that could also be used in blueprint, because all of the existing documentation and wiki articles seem to be anywhere from moderately to extremely out of date. This is a seconds long process so put together this quickstart guide to save anyone the infuriating search.
The super short version for those that already know interfaces and ue4 C++ is:
Add new c++ class inheriting unrealinterface (right at the bottom of the new class wizard)
In the .h file of your new class add whatever function you want tagged as a UFUNCTION as below:
UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "TastyInterface")
That's literally it.
Here's the video version that shows the whole process for anyone that needs the orientation.