Geoff Chappell - Software Analyst
Instances of the Ignore Unknown ProgID type of assocation element are created by passing the corresponding CLSID to the AssocCreateElement function:
As with all assocation elements, the Ignore Unknown ProgID element implements the IAssociationElement, IObjectWithQuerySource and IPersistString2 interfaces.
The Ignore Unknown ProgID element is implemented as a special case of ProgID element. The only variation concerns the default when no candidate ProgIDs have been found and no ProgID is specified in the UserChoice key. The basic ProgID element defaults to using Unknown as the ProgID, but the Ignore Unknown ProgID element fails its initialisation.
Note that the difference is not taken far enough, presumably because of an oversight during coding. The GetClassID method for an Ignore Unknown ProgID element is exactly that of the basic ProgID element, and therefore produces CLSID_AssocProgidElement instead of the CLSID that was used to create the element.