1. A method of providing data from a program in a plurality of programs to at least one other program in the plurality of programs, the method, performed by a processor of a computer, comprising: receiving, for each of the plurality of programs, an identifier of each such program and at least one identifier of at least one type of data each such program can receive; storing, relative to each of the plurality of programs, the identifier of each such program and the at least one identifier of the at least one type of data each such program can receive; obtaining, relative to the at least one type of data and the program in the plurality of programs, a data selection command via a user interface; receiving, in response to the obtained data selection command, data of a multi-part data structure associated with the data selection command and an identifier of a type of data for the data of the multi-part data structure associated with the data selection command, which data of the multi-part data structure associated with the data selection command is to be provided from the program in the plurality of programs; identifying and providing a list of programs including the at least one other program in the plurality of programs for which the at least one identifier of the at least one type of data each such program can receive matches the identifier of the type of data for the data of the multi-part data structure associated with the data selection command received; receiving a selection of the at least one other program in the plurality of programs from the list of programs; and providing the data of the multi-part data structure associated with the data selection command received to the at least one other program in the plurality of programs selected.