Rolf Kalbermatter r.kalbermatter@hccnet.nl writes:
- if (ret)
- if (ret || (!lpDisplayName && size)) { if (lpDisplayName && *lpcchBuffer) *lpDisplayName = 0;
if (ret == ERROR_MORE_DATA)
if ((!ret && !lpDisplayName) || ret == ERROR_MORE_DATA)
These complex conditions make it really hard to figure out what the code is doing. You should probably handle the NULL pointer as a separate case.