Вызов NetGroupGetUsers | |
---|---|
Oleg Tarasov |
Подскажите, как вызвать функцию API NetGroupGetUsers?
Объявляю ее - DECLARE INTEGER NetGroupGetUsers IN netapi32 Затем, когда пытаюсь с ней обратится - вываливается соощение об ошибке - Too many arguments. В чем ошибка. Если можно, приведите пример вызова. |
RE: Вызов NetGroupGetUsers | |
---|---|
Sergey Titow Автор Сообщений: 2242 Дата регистрации: 12.09.2000 |
Первая ошибка - не видно описания параметров
Теперь - как их описывать. Про NetGroupGetUsers сказано следующее: NET_API_STATUS NetGroupGetUsers( LPWSTR servername, LPWSTR groupname, DWORD level, LPBYTE *bufptr, DWORD prefmaxlen, LPDWORD entriesread, LPDWORD totalentries, LPDWORD resumeHandle ); Значит будет примерно так: NET_API_STATUS - скорее всего это действительно INTEGER LPWSTR - длинный указатель на строку - STRING @. Правда есть два НО: 1. Это NT, может надо преобразовать строку в unicode 2. Нужна null-terminated string, в конце надо добавить chr(0) DWORD - в явном виде INTEGER LPBYTE * - длинный указатель на строку (последовательность байт), причем значение - возвращаемое. Ставим INTEGER @. После вызова получим указатель. Для получения собственно строки - нужны дополнительные махинации LPDWORD - длинный указатель на двойное слово - INTEGER @ В результате: DECLARE INTEGER NetGroupGetUsers IN netapi32 ; STRING @servername, ; STRING @groupname, ; INTEGER level, ; INTEGER @bufptr, ; INTEGER prefmaxlen, ; INTEGER @entriesread, ; INTEGER @totalentries, ; INTEGER @resumeHandle Перед вызовом надо проинициализировать все переменные соответствующими значениями И ВНИМАНИЕ! Буфер должен быть освобожден с помощью NetApiBufferFree |
RE: Вызов NetGroupGetUsers | |
---|---|
Sergey Titow Автор Сообщений: 2242 Дата регистрации: 12.09.2000 |
Уточнение
> LPBYTE * - длинный указатель на строку Следует читать: LPBYTE * - длинный указатель на длинный указатель на строку |
© 2000-2024 Fox Club  |