Searching for Assemblies
There are two methods by which a hosting application can search for side-by-side assemblies.
Hosted modules can register themselves with the hosting application by extending some shared configuration information. The application can then use this configuration information to load the assemblies required for the new functionality. This could be done by calling CreateActCtx on manifests specified in the registration data, followed by calling LoadLibrary or CoCreateInstance to get into the new module. Note that with this method, the new components have to update some shared application state to indicate their presence.
The hosting application can actively search for the assemblies on startup using FindFirstFile and FindNextFile to look for DLLs or manifests in a specified location, and then use CreateActCtx to access the information. This method requires no registration of the component.