pub unsafe fn ADsOpenObject<P0, P1, P2>(
    lpszpathname: P0,
    lpszusername: P1,
    lpszpassword: P2,
    dwreserved: ADS_AUTHENTICATION_ENUM,
    riid: *const GUID,
    ppobject: *mut *mut c_void
) -> Result<()>
where P0: IntoParam<PCWSTR>, P1: IntoParam<PCWSTR>, P2: IntoParam<PCWSTR>,