DRAG DROP
There is a WCF (Windows Communication Foundation) solution for PassGuide.
You need to specify the contract complying to the following requirements:
PassGuideInitialize can always be called before PassGuideTerminate is called.
PassGuideSomething can only be called after PassGuideInitialize has been called.
PassGuideSomething cannot be called after PassGuideTerminate has been called.
PassGuideTerminate can only be called after PassGuideInitialize has been called.
Which contract should be used?
Explanation: