Interacts with

The application enumerates the available engine/audio-source pairs by calling member functions of the IEnumSRShare interface on the speech-recognition sharing object. These member functions return addresses of SRSHARE structures with information about each pair, including its instance identifier.

To select an existing pair, the application calls the IEnumSRShare::Share member function with the instance identifier of the desired pair.

To create a new pair, the application calls the IEnumSRShare::New member function with the GUID of a speech-recognition mode and the device identifier of an audio source that is not currently in use.

Both Share and New return addresses of the ISRCentral interface on the engine of the pair. After obtaining this interface, the application interacts with the engine as though it had connected directly with it and can release the speech-recognition sharing object.

When a speech-recognition sharing object is used to share an audio source among several engines, the object provides exclusive rights to the source to one engine at a time on a first-come, first-served basis. An engine requests the audio source by calling the IAudio::Start member function. If more than one engine requests the audio source at a time, the first engine to call IAudio::Start is awarded exclusive use of the source until that engine calls IAudio::Stop.