How to make a BlueprintImplementableEvent with two outputs

I build a physical button that triggers a button press in unreal engine and this works fine but I want the code to behave similar to how the blueprint for InputAction does. I have used the following code to get a custom event that I then implement in blueprints.

UFUNCTION(BlueprintImplementableEvent, meta = (DisplayName = "Button 24 (GPIO24)"))
		void gpioPin24Pressed();

However I am going to code it so it knows when the button is pressed and when it is released, so I basically want the event to work similar to InputAction where it has two outputs. I looked into using USTRUCT but I couldn’t get it to work, anyone know how to do this?!

It works a bit different. So, you can register your own input device class like FOculusInput (details in Engine\Plugins\Runtime\OculusInput\Source\Private\OculusInput.h, Engine\Plugins\Runtime\OculusInput\Source\Private\OculusInput.cpp)

One of oculus key registration placed there:
EKeys::AddKey(FKeyDetails(FOculusKey::OculusRemote_DPad_Up, LOCTEXT(“OculusRemote_DPad_Up”, “Oculus Remote D-pad Up”), FKeyDetails::GamepadKey));