Yet another small self-loader fix.
[wine/multimedia.git] / win32 / init.c
blob022495452638765e7fbad9af3a72c62eb3405e00
1 /*
2 * Win32 kernel functions
4 * Copyright 1995 Martin von Loewis and Cameron Heide
5 */
7 #include <string.h>
8 #include <unistd.h>
9 #include <stdlib.h>
10 #include "windows.h"
11 #include "winerror.h"
12 #include "except.h"
13 #include "heap.h"
14 #include "task.h"
15 #include "debug.h"
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))
58 return FALSE;
59 *size = lstrlen32A(name);
60 return TRUE;
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? */
73 return ret;
76 /***********************************************************************
77 * GetUserNameA [ADVAPI32.67]
79 BOOL32 WINAPI GetUserName32A(LPSTR lpszName, LPDWORD lpSize)
81 size_t len;
82 char *name;
84 name=getlogin();
85 #if 0
86 /* FIXME: should use getpwuid() here */
87 if (!name) name=cuserid(NULL);
88 #endif
89 len = name ? strlen(name) : 0;
90 if (!len || !lpSize || len > *lpSize) {
91 if (lpszName) *lpszName = 0;
92 return 0;
94 *lpSize=len;
95 strcpy(lpszName, name);
96 return 1;
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 );
110 return res;