Andrew Talbot Andrew.Talbot@talbotville.com writes:
In our case, MSIITERHANDLE is declared as a pointer to void, so
const MSIITERHANDLE *handle;
is equivalent to
void *const *handle;
whereas
MSICITERHANDLE *handle;
is equivalent to
const void **handle;
which, I believe, is what is required. Hence, my new type definition.
Actually from reading the code there doesn't seem to be a reason for having the non-const variant, and also no reason to use a void* instead of a proper type. The definition should probably be something like "typedef const struct tagMSICOLUMNHASHENTRY *MSIITERHANDLE".