2 * Win32 kernel functions
4 * Copyright 1995 Martin von Loewis and Cameron Heide
17 /***********************************************************************
18 * GetStartupInfoA (KERNEL32.273)
20 VOID WINAPI
GetStartupInfo32A(LPSTARTUPINFO32A lpStartupInfo
)
22 lpStartupInfo
->cb
= sizeof(STARTUPINFO32A
);
23 lpStartupInfo
->lpReserved
= "<Reserved>";
24 lpStartupInfo
->lpDesktop
= "Desktop";
25 lpStartupInfo
->lpTitle
= "Title";
27 lpStartupInfo
->cbReserved2
= 0;
28 lpStartupInfo
->lpReserved2
= NULL
; /* must be NULL for VC runtime */
29 lpStartupInfo
->dwFlags
= STARTF_USESTDHANDLES
;
30 lpStartupInfo
->hStdInput
= (HANDLE32
)0;
31 lpStartupInfo
->hStdOutput
= (HANDLE32
)1;
32 lpStartupInfo
->hStdError
= (HANDLE32
)2;
35 /***********************************************************************
36 * GetStartupInfoW (KERNEL32.274)
38 VOID WINAPI
GetStartupInfo32W(LPSTARTUPINFO32W lpStartupInfo
)
40 lpStartupInfo
->cb
= sizeof(STARTUPINFO32W
);
41 lpStartupInfo
->lpReserved
= HEAP_strdupAtoW(GetProcessHeap(),0,"<Reserved>");
42 lpStartupInfo
->lpDesktop
= HEAP_strdupAtoW(GetProcessHeap(), 0, "Desktop");
43 lpStartupInfo
->lpTitle
= HEAP_strdupAtoW(GetProcessHeap(), 0, "Title");
45 lpStartupInfo
->cbReserved2
= 0;
46 lpStartupInfo
->lpReserved2
= NULL
; /* must be NULL for VC runtime */
47 lpStartupInfo
->hStdInput
= (HANDLE32
)0;
48 lpStartupInfo
->hStdOutput
= (HANDLE32
)1;
49 lpStartupInfo
->hStdError
= (HANDLE32
)2;
52 /***********************************************************************
53 * GetComputerNameA (KERNEL32.165)
55 BOOL32 WINAPI
GetComputerName32A(LPSTR name
,LPDWORD size
)
57 if (-1==gethostname(name
,*size
))
59 *size
= lstrlen32A(name
);
63 /***********************************************************************
64 * GetComputerNameW (KERNEL32.166)
66 BOOL32 WINAPI
GetComputerName32W(LPWSTR name
,LPDWORD size
)
68 LPSTR nameA
= (LPSTR
)HeapAlloc( GetProcessHeap(), 0, *size
);
69 BOOL32 ret
= GetComputerName32A(nameA
,size
);
70 if (ret
) lstrcpynAtoW(name
,nameA
,*size
+1);
71 HeapFree( GetProcessHeap(), 0, nameA
);
75 /***********************************************************************
76 * GetUserNameA [ADVAPI32.67]
78 BOOL32 WINAPI
GetUserName32A(LPSTR lpszName
, LPDWORD lpSize
)
85 /* FIXME: should use getpwuid() here */
86 if (!name
) name
=cuserid(NULL
);
88 len
= name
? strlen(name
) : 0;
89 if (!len
|| !lpSize
|| len
> *lpSize
) {
90 if (lpszName
) *lpszName
= 0;
94 strcpy(lpszName
, name
);
98 /***********************************************************************
99 * GetUserNameW [ADVAPI32.68]
101 BOOL32 WINAPI
GetUserName32W(LPWSTR lpszName
, LPDWORD lpSize
)
103 LPSTR name
= (LPSTR
)HeapAlloc( GetProcessHeap(), 0, *lpSize
);
104 DWORD size
= *lpSize
;
105 BOOL32 res
= GetUserName32A(name
,lpSize
);
107 lstrcpynAtoW(lpszName
,name
,size
);
108 HeapFree( GetProcessHeap(), 0, name
);