Geoff Chappell - Software Analyst
This function destroys a DPA but with a notification for each item.
VOID DPA_DestroyCallback ( HDPA pdpa, PFNDPAENUMCALLBACK pfnCB, PVOID pData);
The callback function has the prototype
typedef int (*PFNDPAENUMCALLBACK) (PVOID p, PVOID pData);
The pdpa argument provides a handle to the DPA, or is NULL.
The pfnCB argument provides the address of the callback function.
The pData argument provides a caller-specific context to be passed on each invocation of the callback function.
If the pdpa and pfnCB arguments are not NULL, the function works upwards through the pointer array, from the start, calling the enumeration function once per pointer. Enumeration stops if the callback function returns zero. If pdpa is not NULL, the DPA is then destroyed.
In all versions, this function is implemented simply as a combination of DPA_EnumCallback and DPA_Destroy.
Versions before 6.10 simply assume that pfnCB is not NULL.
The DPA_DestroyCallback function is exported from COMCTL32.DLL as ordinal 386 in version 4.71 and higher. The implementation for version 6.10 and higher is built into a statically linked library and thence is also exported from the Internet Explorer module IERTUTIL.DLL as ordinal 79 in version 7.0 and higher.
This function was documented among the Settlement Program Interfaces in December 2002, but with Windows 2000 cited as the minimum operating system, despite many years of earlier availability.