Here are some examples:
-
MediaPlayerEditor plug-in: look at FMediaPlayerEditorModule::RegisterCustomizations() and FMediaPlayerEditorModule::UnregisterCustomizations() for un-/registration, and FMediaPlayerCustomization for the actual customization of a UClass (UMediaPlayer in this case)
-
for a UStruct customization example check out FLevelSequencePlaybackSettingsCustomization in the LevelSequenceEditor plug-in. Notice that it implements the IPropertyTypeCustomization instead, but the process is very similar. The struct being customized is FLevelSequencePlaybackSettings.