Use LPVOID to avoid ptr trunc
Tidyup logic

ADSI doesn't care about distinguished names or domain and can take
either, but legacy API needs a domain for binding and a dn for
searching.

Send nil if we dont know the domain rather than a ptr to an empty
string.
Move print statement