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

I’m working with Symbian ECOM and I’m confused about how the order of implementations is decided in the array returned by REComSession::ListImplementationsL.

From what I understand, this function looks at the .rsc files in the \resource\plugins folder to find implementations with a specific interface ID. But I can’t figure out how it decides which order to put them in the array.

Does anyone know the logic behind this? Is it alphabetical, based on file timestamps, or something else? It would be really helpful to understand this mechanism, as it might affect how my app interacts with these implementations.

I’ve tried looking through the Symbian documentation, but I couldn’t find a clear explanation. Any insights would be greatly appreciated!

From my experience working with Symbian ECOM, the implementation order in ListImplementationsL() is not deterministic. It’s based on internal factors like memory allocation and system state at runtime. This can vary between devices and even between reboots on the same device.

For reliable ordering, I’d recommend not relying on the returned sequence. Instead, implement your own sorting logic after retrieving the array. You could sort based on specific attributes of the implementations that are relevant to your use case.

If order is critical for your application, you might also consider using the CreateImplementationL() method with a specific implementation UID rather than relying on the list order. This gives you more control over which implementation is selected.

i thnk the order is how ecom finds .rsc files in \resource\plugins. it probly scans them alphabetically, but not 100% sure. check file timestmps maybe? experiment with file names to see if the order changes—that might help.

Hey there, AdventurousHiker76! That’s a really intriguing question about Symbian ECOM. I’ve been tinkering with it myself and ran into similar head-scratchers.

Have you considered that the order might be related to the plugin load sequence? Maybe it’s tied to how the system initializes different components?

Just brainstorming here, but what if you tried adding some debug logging to track the order as they’re loaded? Could give some clues.

Also, wonder if the order stays consistent across reboots or if it changes? Might be worth checking that out too.

What made you curious about this particular aspect of ECOM? Are you working on something where the implementation order is crucial?