IAssociationElement

IID_IAssociationElement {E58B1ABF-9596-4DBA-8997-89DCDEF46992} original (SHLWAPI)
{D8F6AD5B-B44F-4BCC-88FD-EB3473DB7502} revised (SHELL32)

The original IAssociationElement methods are (as ordered in the virtual function table after the IUnknown methods):

Offset Method
0x0C QueryString
0x10 QueryDword
0x14 QueryExists
0x18 QueryDirect
0x1C QueryObject

with prototypes:

HRESULT QueryString (ASSOCQUERY, PCWSTR, PWSTR *);
HRESULT QueryDword (ASSOCQUERY, PCWSTR, DWORD *);
HRESULT QueryExists (ASSOCQUERY, PCWSTR);
HRESULT QueryDirect (ASSOCQUERY, PCWSTR, FLAGGED_BYTE_BLOB **);
HRESULT QueryObject (ASSOCQUERY, PCWSTR, REFIID, PVOID *);

in which ASSOCQUERY is invented as a typedef for an undocumented enumeration:

typedef enum tagASSOCQUERY ASSOCQUERY;

The revision inserts a method:

Offset Method
0x0C QueryString
0x10 QueryDword
0x14 QueryGuid
0x18 QueryExists
0x1C QueryDirect
0x20 QueryObject

The new method has the prototype:

HRESULT QueryGuid (ASSOCQUERY, PCWSTR, GUID *);

Availability

The IAssociationElement interface is implemented in SHLWAPI.DLL version 6.00 from before Windows Vista, and in SHELL32.DLL version 6.00 from Windows Vista, and higher.

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).