Geoff Chappell - Software Analyst
The IEnumAssociationElements methods are (as ordered in the virtual function table after the IUnknown methods):
HRESULT Next (ULONG, IAssociationElement *, ULONG *); HRESULT Skip (ULONG);
HRESULT Reset (VOID);
HRESULT Clone (IEnumAssociationElements **);
in which IAssociationElement is an undocumented interface.
The IEnumAssociationElements interface is implemented in SHELL32.DLL version 6.00 before Windows Vista.
Though this interface dates from 2001, it was still not documented by Microsoft as late as the January 2007 edition of the Windows Vista Software Development Kit (SDK).
This interface appears to have been discontinued as part of revising the IAssociationArray interface, specifically to remove the EnumElements method. The new way to enumerate an association array is less direct. Objects that implement IAssociationArray now also implement IObjectWithAssociationList. Its GetList method obtains an IAssociationList, whose EnumerateElements method obtains the IEnumerateAssociationElements interface which replaces IEnumAssociationElements.