Hi,
i just implemented the NetUserEnum but for notes6 that is a warning not
the error. I don't use now only for that.
i have the code of the NetUserEnum but i don't know if is good or not. u
can check it? Who can check my code my code?
In any case my problem continuous to be.
bye
Moreno
Il lun, 2003-06-09 alle 10:29, Sylvain Petreolle ha scritto:
> You must use a native netapi32.dll,
> wine ln.exe --dll netapi32=n.
>
> or update Wine.
> --- Moreno <[EMAIL PROTECTED]> a �crit : > Hi,
> >
> > i try to find the error of Lotus Notes 6.
> >
> > I redirect the output of a console to a file but full is 1,2 GB in my
> > HD
> > maybe stop because my file system is finish.
> >
> > How can i find where is the error?
> >
> > Error:
> > fixme:seh:EXC_RtlRaiseException call to unimplemented function
> > netapi32.dll.NetUserEnum
>
>
> =====
> Sylvain Petreolle (spetreolle at users dot sourceforge dot net)
> ICQ #170597259
> No more War !
>
> "What if tomorrow the War could be over ?" Morpheus, in "Reloaded".
>
> For the Law of Oil and Fire, Im an European that lives in France.
> For all my Brothers and friends, Im a human living on Earth.
>
> ___________________________________________________________
> Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en fran�ais !
> Yahoo! Mail : http://fr.mail.yahoo.com
--
Moreno <[EMAIL PROTECTED]>
--- wine/dlls/netapi32/access.c 2002-12-17 02:46:40.000000000 +0100
+++ wine-20030508/dlls/netapi32/access.c 2003-05-13 22:56:14.000000000 +0200
@@ -216,11 +216,57 @@
ui->usri1_script_path[0] = 0;
break;
}
+
+ case 20:
+ {
+ PUSER_INFO_20 ui;
+ PUSER_INFO_0 ui0;
+ NET_API_STATUS status;
+ /* sizes of the field buffers in WCHARS */
+ int name_sz, comment_sz, full_name_sz;
+
+ comment_sz = 1;
+ full_name_sz = 1;
+
+ /* get data */
+ status = NetUserGetInfo(servername, username, 0, (LPBYTE *) &ui0);
+ if (status != NERR_Success)
+ {
+ NetApiBufferFree(ui0);
+ return status;
+ }
+ name_sz = lstrlenW(ui0->usri0_name) + 1;
+
+ /* set up buffer */
+ NetApiBufferAllocate(sizeof(USER_INFO_20) +
+ (name_sz + full_name_sz + comment_sz) * sizeof(WCHAR),
+ (LPVOID *) bufptr);
+ ui = (PUSER_INFO_20) *bufptr;
+ ui->usri20_name = (LPWSTR) (*bufptr + sizeof(USER_INFO_20));
+ ui->usri20_full_name = (LPWSTR) (
+ ((PBYTE) ui->usri20_name) + name_sz * sizeof(WCHAR));
+ ui->usri20_comment = (LPWSTR) (
+ ((PBYTE) ui->usri20_full_name) + full_name_sz * sizeof(WCHAR));
+
+ /* set data */
+ lstrcpyW(ui->usri20_name, ui0->usri0_name);
+ NetApiBufferFree(ui0);
+ TRACE("Name (%s, %p)\n", debugstr_w(ui->usri20_name), ui->usri20_name);
+ ui->usri20_full_name[0] = 0;
+ TRACE("Full Name (%s, %p)\n", debugstr_w(ui->usri20_full_name), ui->usri20_full_name);
+ ui->usri20_comment[0] = 0;
+ ui->usri20_flags = 0;
+ //if(ui->uri20_name == sAdminUser)
+ ui->usri20_user_id = 0; //Win2k Administrator=500
+ TRACE("Name (%s, %p)\n", debugstr_w(ui->usri20_name), ui->usri20_name);
+ break;
+ }
+
case 2:
case 3:
case 4:
case 11:
- case 20:
+ // case 20:
case 23:
case 1003:
case 1005:
@@ -250,6 +296,7 @@
ERR("Invalid level %ld is specified\n", level);
return ERROR_INVALID_LEVEL;
}
+ TRACE("End Function - Return: %d\n", NERR_Success);
return NERR_Success;
}
@@ -485,4 +532,98 @@
return NERR_DCNotFound; /* say we can't find a domain controller */
}
+/************************************************************
+ * NetUserEnum (NETAPI32.@)
+ *
+ * Return date of the user
+ */
+
+NET_API_STATUS WINAPI
+NetUserEnum( LPWSTR servername, DWORD level, DWORD Filter, LPBYTE* bufptr,
+ DWORD PreferredMaximumLength, LPDWORD ReturnedEntryCount, LPDWORD TotalEntry,
+ LPDWORD resume_handle)
+{
+ FIXME("not implemented! it's only work arround for Lotus Notes 6-stub!\n");
+ TRACE("(%s, %ld, %ld, %p, %ld, %p, %p)\n", debugstr_w(servername), level, Filter,
+ bufptr, PreferredMaximumLength, ReturnedEntryCount, resume_handle);
+ NET_API_STATUS status;
+
+
+ if (!NETAPI_IsLocalComputer(servername))
+ {
+ FIXME(":not implemented for non-local computers\n");
+ status = NETAPI_ValidateServername(servername);
+ if (status != NERR_Success)
+ {
+ return status;
+ }
+
+ return ERROR_INVALID_LEVEL;
+ }
+ else
+ {
+ if (resume_handle && *resume_handle)
+ {
+ FIXME(":resume handle not implemented\n");
+ return ERROR_INVALID_LEVEL;
+ }
+
+ /* number of the records, returned
+ teoricaly: 3 - for current user, Administrator and Guest users
+ i use 1 - Administrator
+ */
+ int records = 1;
+
+ switch (level)
+ {
+ case 20:
+ {
+ status = NetUserGetInfo(servername, sAdminUserName, level, bufptr);
+ TRACE("Returned Data (%p, %s)\n", bufptr, debugstr_w(((PUSER_INFO_20) bufptr)->usri20_name));
+
+ *ReturnedEntryCount = records;
+ *TotalEntry = records;
+ break;
+ }
+
+ case 0:
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ case 10:
+ case 11:
+ case 23:
+ case 1003:
+ case 1005:
+ case 1006:
+ case 1007:
+ case 1008:
+ case 1009:
+ case 1010:
+ case 1011:
+ case 1012:
+ case 1013:
+ case 1014:
+ case 1017:
+ case 1018:
+ case 1020:
+ case 1023:
+ case 1024:
+ case 1025:
+ case 1051:
+ case 1052:
+ case 1053:
+ {
+ FIXME("Level %ld is not implemented\n", level);
+ break;
+ }
+ default:
+ ERR("Invalid level %ld is specified\n", level);
+ return ERROR_INVALID_LEVEL;
+ }
+ }
+
+ return status; /* say an error for see */
+}