- New implementation of SendMessage, ReceiveMessage, ReplyMessage functions
[wine] / dlls / advapi32 / advapi.c
1 /*
2  * Win32 advapi functions
3  *
4  * Copyright 1995 Sven Verdoolaege
5  */
6
7 #include <unistd.h>
8
9 #include "wintypes.h"
10 #include "winerror.h"
11 #include "wine/winestring.h"
12 #include "heap.h"
13
14 #include "debug.h"
15
16
17 /******************************************************************************
18  * GetUserName32A [ADVAPI32.67]
19  */
20 BOOL32 WINAPI
21 GetUserName32A( LPSTR lpszName, LPDWORD lpSize )
22 {
23   size_t len;
24   char *name;
25
26   name=getlogin();
27 #if 0
28   /* FIXME: should use getpwuid() here */
29   if (!name) name=cuserid(NULL);
30 #endif
31   len = name ? strlen(name) : 0;
32   if (!len || !lpSize || len > *lpSize) {
33     if (lpszName) *lpszName = 0;
34     return 0;
35   }
36   *lpSize=len;
37   strcpy(lpszName, name);
38   return 1;
39 }
40
41 /******************************************************************************
42  * GetUserName32W [ADVAPI32.68]
43  *
44  * PARAMS
45  *   lpszName []
46  *   lpSize   []
47  */
48 BOOL32 WINAPI
49 GetUserName32W( LPWSTR lpszName, LPDWORD lpSize )
50 {
51         LPSTR name = (LPSTR)HeapAlloc( GetProcessHeap(), 0, *lpSize );
52         DWORD   size = *lpSize;
53         BOOL32 res = GetUserName32A(name,lpSize);
54
55         lstrcpynAtoW(lpszName,name,size);
56         HeapFree( GetProcessHeap(), 0, name );
57         return res;
58 }