Do the new API's Msi(Begin/Join/End)Transaction work with external UI as well as the new internal UI?

Our friends at InstallAware had some questions on issues we have yet to answer in the beta MSI.CHM. One of these questions was:

Question:
Do the new API's Msi(Begin/Join/End)Transaction work with external UI as well as the new internal UI?

Answer:

Yes, Begin and End work from external UI/chainer. For the internal case, the Begin and End are implicit in the fact there is a install ready running so one only needs Join for the internal case.

Have a look at Figures 3, 10, and 12 in the white paper labeled "Agile Product Advances in Windows Installer 4 5 - Beta Release Draft" for a simplified view of the expected data flow. Figure 3 is a base diagram for what is done today using a external chainer. Figure 10 is adds the Begin and End APIs to the external chainer control flow seen in Figure 3. Figure 12 will shows the control flow for an internal chainer.

The API we're missing for Beta is a change owner where

  • an external chainer can pass control to an internal chainer
  • two external chainers can pass control between each other

Given Figure 3 is our base assumption for generic chainer behavior, if anyone’s chainer does follow this pattern, we'd love to know.

[Author: Robert Flaming]
This posting is provided "AS IS" with no warranties, and confers no rights. Use of included script samples are subject to the terms specified at https://www.microsoft.com/info/cpyright.htm.