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
);
71 HeapFree( GetProcessHeap(), 0, nameA
);
72 /* FIXME : size correct? */
76 /***********************************************************************
77 * GetUserNameA [ADVAPI32.67]
79 BOOL32 WINAPI
GetUserName32A(LPSTR lpszName
, LPDWORD lpSize
)
86 /* FIXME: should use getpwuid() here */
87 if (!name
) name
=cuserid(NULL
);
89 len
= name
? strlen(name
) : 0;
90 if (!len
|| !lpSize
|| len
> *lpSize
) {
91 if (lpszName
) *lpszName
= 0;
95 strcpy(lpszName
, name
);
99 /***********************************************************************
100 * GetUserNameW [ADVAPI32.68]
102 BOOL32 WINAPI
GetUserName32W(LPWSTR lpszName
, LPDWORD lpSize
)
104 LPSTR name
= (LPSTR
)HeapAlloc( GetProcessHeap(), 0, *lpSize
);
105 DWORD size
= *lpSize
;
106 BOOL32 res
= GetUserName32A(name
,lpSize
);
108 lstrcpynAtoW(lpszName
,name
,size
);
109 HeapFree( GetProcessHeap(), 0, name
);