Preset Management

I am in the process of incorporating preset management in my vst synth. I have reviewed and incorporated the designs found in the example projects supplied in the vst sdk. I am able to create and save presets and program lists, however I have no means to differentiate between loading and saving a preset vs. a program bank. Can someone point me in the correct direction regarding the interfaces to be used for this purpose?

I also need advice on which interface calls I need to inform the host regarding program changes selected inside the custom GUI editor in order for the host to reflect the newly selected program name, and any related information.

Regards
Anton Barnard

I seem to have resolved the latter part of my problem. I am now able to communicate internal program changes to the host. I still require assistance with the first section though.