If this method is called with a new source and index is set to 0, the installer adds the source to the end of the source list.
If this method is called with a source already existing in the source list and index is set to 0, the installer retains the source's existing index.
If the method is called with an existing source in the source list and index is set to a non-zero value, the source is removed from its current location in the list and inserted at the position specified by Index, before any source that already exists at that position.
If the method is called with a new source and Index is set to a non-zero value, the source is inserted at the position specified by index, before any source that already exists at that position. The index value for all sources in the list after the index specified by Index are updated to ensure unique index values and the pre-existing order is guaranteed to remain unchanged.
If index is greater than the number of sources in the list, the source is placed at the end of the list with an index value one larger than any existing source.
Win32 MSI API: MsiSourceListAddSourceEx