3.2.4 Message Processing and Sequencing Rules

If the client does not have prior knowledge of the server's DISPIDs, it MUST call IDispatch::GetIDsOfNames (section 3.1.4.3) before calling IDispatch::Invoke (section 3.1.4.4). The client MUST call GetIDsOfNames at least once for each automation member (see section 2.2.49.5 ) that it needs to call.

The sequence of events in this case MUST be as follows:

  • The automation client calls IDispatch::GetIDsOfNames to obtain the mapping between the automation member name and any of its named arguments, and their corresponding DISPIDs (see section 2.2.32).

  • The automation client potentially caches this mapping in the dispatch mapping table that corresponds to the locale ID value it specified.

  • The automation client invokes the operation by using IDispatch::Invoke one or more times.

If the client uses the DISPIDs retrieved at compile time (from the documentation of the automation server, or from the IDL that describes the Automation interface), there are no sequencing rules.