How does Symbian ECOM determine the sequence of implementations in the returned array?

Symbian ECOM Implementation Order Query

I’m working on a Symbian project and I’m curious about the REComSession::ListImplementationsL function. It gives back an array of implementations based on the interface ID found in .rsc files located in the \resource\plugins folder.

What I can’t figure out is how the order of these implementations in the array is decided. Is there a specific method or rule that Symbian uses to arrange them?

For example, if I have multiple .rsc files with the same interface ID, how does the system choose which one goes first in the array?

Any insights on this would be super helpful. Thanks in advance to anyone who can shed some light on this Symbian ECOM behavior!

In my experience working with Symbian ECOM, the implementation order isn’t explicitly documented, but it likely follows a combination of factors. The registration order of plugins seems to play a significant role - plugins registered earlier tend to appear first in the array. Additionally, there may be some internal prioritization based on plugin metadata or system-specific rules.

It’s worth noting that relying on a specific order can be risky for application stability. If possible, I’d recommend designing your code to handle implementations regardless of their order in the array. This approach provides more flexibility and resilience to potential changes in the underlying ECOM behavior.

If you absolutely need a specific order, you might consider implementing your own sorting logic after retrieving the array of implementations. This way, you have full control over the sequence based on your application’s requirements.

Hey there Leo_Speedster! Interesting question about Symbian ECOM. I’ve dabbled a bit with Symbian in the past, and while I’m not an expert, I can share some thoughts.

From what I remember, the implementation order in ECOM can be a bit of a mystery box. Have you tried experimenting with different registration orders to see if it affects the sequence? It might give you some clues.

I’m curious - why are you looking into this specific behavior? Are you working on something where the implementation order is crucial? It’d be fascinating to hear more about your project!

One thing that comes to mind - have you checked if there are any priority flags or metadata in the .rsc files that might influence the order? Sometimes these systems have hidden ways of sorting things out.

Anyone else here have experience with recent Symbian development? It’d be great to get more perspectives on this!

From my experience, symbian ecom probably uses the registration order of plugins when returning the implementation array. so whichever plugin registers first would be listed first. but im not 100% sure on this - symbian’s inner workings can be prtty mysterious sometimes!