blob: 25dc05e1fd6395b06eeeb8da70ccfe10adeb4a93 [file] [log] [blame]
Alexandre Julliardaf0bae51995-10-03 17:06:08 +00001/*
2 * Win32 kernel functions
3 *
4 * Copyright 1995 Martin von Loewis and Cameron Heide
Peter Gantenaa546ef1999-03-13 17:04:52 +00005 * 1999 Peter Ganten
Alexandre Julliardaf0bae51995-10-03 17:06:08 +00006 */
7
8#include <string.h>
Alexandre Julliardaf0bae51995-10-03 17:06:08 +00009#include <unistd.h>
Alexandre Julliard84c70f51997-05-09 08:40:27 +000010#include <stdlib.h>
Alexandre Julliardaf0bae51995-10-03 17:06:08 +000011#include "winerror.h"
Marcus Meissner04c3e1d1999-02-19 10:37:02 +000012#include "wine/winestring.h"
Alexandre Julliard7ebe1a41996-12-22 18:27:48 +000013#include "heap.h"
Alexandre Julliard02ed4c21996-03-02 19:34:10 +000014#include "task.h"
Alexandre Julliard15657091999-05-23 10:25:25 +000015#include "debugtools.h"
Peter Gantenaa546ef1999-03-13 17:04:52 +000016#include "process.h"
Patrik Stridvallb4b9fae1999-04-19 14:56:29 +000017
18DEFAULT_DEBUG_CHANNEL(win32)
Alexandre Julliardade697e1995-11-26 13:59:11 +000019
Alexandre Julliardaf0bae51995-10-03 17:06:08 +000020/***********************************************************************
Alexandre Julliardaf0bae51995-10-03 17:06:08 +000021 * GetStartupInfoA (KERNEL32.273)
22 */
Alexandre Julliarda3960291999-02-26 11:11:13 +000023VOID WINAPI GetStartupInfoA(LPSTARTUPINFOA lpStartupInfo)
Alexandre Julliardaf0bae51995-10-03 17:06:08 +000024{
Peter Gantenaa546ef1999-03-13 17:04:52 +000025
26 LPSTARTUPINFOA startup;
Alexandre Julliardaf0bae51995-10-03 17:06:08 +000027
Peter Gantenaa546ef1999-03-13 17:04:52 +000028 startup = ((LPSTARTUPINFOA )PROCESS_Current()->env_db->startup_info);
29 memcpy ( lpStartupInfo, startup, sizeof (STARTUPINFOA) );
30
Alexandre Julliard15657091999-05-23 10:25:25 +000031 TRACE("size: %ld\n"
Peter Gantenaa546ef1999-03-13 17:04:52 +000032 "\tlpReserverd: %s, lpDesktop: %s, lpTitle: %s\n"
33 "\tdwX: %ld, dwY: %ld, dwXSize: %ld, dwYSize: %ld\n"
34 "\tdwFlags: %lx, wShowWindow: %x\n", lpStartupInfo->cb,
35 lpStartupInfo->lpReserved, lpStartupInfo->lpDesktop,
36 lpStartupInfo->lpTitle, lpStartupInfo->dwX,
37 lpStartupInfo->dwY, lpStartupInfo->dwXSize,
38 lpStartupInfo->dwYSize, lpStartupInfo->dwFlags,
39 lpStartupInfo->wShowWindow );
Alexandre Julliardaf0bae51995-10-03 17:06:08 +000040}
41
Alexandre Julliard75d86e11996-11-17 18:59:11 +000042/***********************************************************************
Alexandre Julliardb1bac321996-12-15 19:45:59 +000043 * GetStartupInfoW (KERNEL32.274)
44 */
Alexandre Julliarda3960291999-02-26 11:11:13 +000045VOID WINAPI GetStartupInfoW(LPSTARTUPINFOW lpStartupInfo)
Alexandre Julliardb1bac321996-12-15 19:45:59 +000046{
Alexandre Julliardb1bac321996-12-15 19:45:59 +000047
Peter Gantenaa546ef1999-03-13 17:04:52 +000048 STARTUPINFOA startup;
49 GetStartupInfoA ( &startup );
50
51 lpStartupInfo->cb = sizeof(STARTUPINFOW);
52 lpStartupInfo->lpReserved =
53 HEAP_strdupAtoW (GetProcessHeap(), 0, startup.lpReserved );
54 lpStartupInfo->lpDesktop =
55 HEAP_strdupAtoW (GetProcessHeap(), 0, startup.lpDesktop );
56 lpStartupInfo->lpTitle =
57 HEAP_strdupAtoW (GetProcessHeap(), 0, startup.lpTitle );
58 lpStartupInfo->dwX = startup.dwX;
59 lpStartupInfo->dwY = startup.dwY;
60 lpStartupInfo->dwXSize = startup.dwXSize;
61 lpStartupInfo->dwXCountChars = startup.dwXCountChars;
62 lpStartupInfo->dwYCountChars = startup.dwYCountChars;
63 lpStartupInfo->dwFillAttribute = startup.dwFillAttribute;
64 lpStartupInfo->dwFlags = startup.dwFlags;
65 lpStartupInfo->wShowWindow = startup.wShowWindow;
66 lpStartupInfo->cbReserved2 = startup.cbReserved2;
67 lpStartupInfo->lpReserved2 = startup.lpReserved2;
68 lpStartupInfo->hStdInput = startup.hStdInput;
69 lpStartupInfo->hStdOutput = startup.hStdOutput;
70 lpStartupInfo->hStdError = startup.hStdError;
Alexandre Julliardb1bac321996-12-15 19:45:59 +000071}
72
73/***********************************************************************
Alexandre Julliardb1bac321996-12-15 19:45:59 +000074 * GetComputerNameA (KERNEL32.165)
75 */
Alexandre Julliarda3960291999-02-26 11:11:13 +000076BOOL WINAPI GetComputerNameA(LPSTR name,LPDWORD size)
Alexandre Julliard670cdc41997-08-24 16:00:30 +000077{
Alexandre Julliardb1bac321996-12-15 19:45:59 +000078 if (-1==gethostname(name,*size))
79 return FALSE;
Alexandre Julliarda3960291999-02-26 11:11:13 +000080 *size = lstrlenA(name);
Alexandre Julliardb1bac321996-12-15 19:45:59 +000081 return TRUE;
82}
83
84/***********************************************************************
85 * GetComputerNameW (KERNEL32.166)
86 */
Alexandre Julliarda3960291999-02-26 11:11:13 +000087BOOL WINAPI GetComputerNameW(LPWSTR name,LPDWORD size)
Alexandre Julliard670cdc41997-08-24 16:00:30 +000088{
Alexandre Julliard491502b1997-11-01 19:08:16 +000089 LPSTR nameA = (LPSTR)HeapAlloc( GetProcessHeap(), 0, *size);
Alexandre Julliarda3960291999-02-26 11:11:13 +000090 BOOL ret = GetComputerNameA(nameA,size);
Marcus Meissner314d9681998-11-01 14:04:45 +000091 if (ret) lstrcpynAtoW(name,nameA,*size+1);
Alexandre Julliard491502b1997-11-01 19:08:16 +000092 HeapFree( GetProcessHeap(), 0, nameA );
Alexandre Julliard491502b1997-11-01 19:08:16 +000093 return ret;
Alexandre Julliardb1bac321996-12-15 19:45:59 +000094}
95