Implemented some ascii functions

svn path=/trunk/; revision=1371
This commit is contained in:
Eric Kohl 2000-09-27 01:22:31 +00:00
parent 0ea51977f6
commit 99434057af
2 changed files with 118 additions and 23 deletions

View file

@ -1,4 +1,4 @@
; $Id: advapi32.edf,v 1.9 2000/09/06 19:57:58 ekohl Exp $ ; $Id: advapi32.edf,v 1.10 2000/09/27 01:22:31 ekohl Exp $
; ;
; advapi32.def ; advapi32.def
; ;
@ -288,8 +288,8 @@ QueryServiceStatus=QueryServiceStatus@8
;ReadEventLogA=ReadEventLogA@28 ;ReadEventLogA=ReadEventLogA@28
;ReadEventLogW=ReadEventLogW@28 ;ReadEventLogW=ReadEventLogW@28
RegCloseKey=RegCloseKey@4 RegCloseKey=RegCloseKey@4
;RegConnectRegistryA=RegConnectRegistryA@12 RegConnectRegistryA=RegConnectRegistryA@12
;RegConnectRegistryW=RegConnectRegistryW@12 RegConnectRegistryW=RegConnectRegistryW@12
RegCreateKeyA=RegCreateKeyA@12 RegCreateKeyA=RegCreateKeyA@12
RegCreateKeyExA=RegCreateKeyExA@36 RegCreateKeyExA=RegCreateKeyExA@36
RegCreateKeyExW=RegCreateKeyExW@36 RegCreateKeyExW=RegCreateKeyExW@36
@ -300,12 +300,12 @@ RegDeleteValueA=RegDeleteValueA@8
RegDeleteValueW=RegDeleteValueW@8 RegDeleteValueW=RegDeleteValueW@8
RegEnumKeyA=RegEnumKeyA@16 RegEnumKeyA=RegEnumKeyA@16
RegEnumKeyExA=RegEnumKeyExA@32 RegEnumKeyExA=RegEnumKeyExA@32
;RegEnumKeyExW=RegEnumKeyExW@32 RegEnumKeyExW=RegEnumKeyExW@32
;RegEnumKeyW=RegEnumKeyW@16 RegEnumKeyW=RegEnumKeyW@16
RegEnumValueA=RegEnumValueA@32 RegEnumValueA=RegEnumValueA@32
;RegEnumValueW=RegEnumValueW@32 RegEnumValueW=RegEnumValueW@32
RegFlushKey=RegFlushKey@4 RegFlushKey=RegFlushKey@4
;RegGetKeySecurity=RegGetKeySecurity@16 RegGetKeySecurity=RegGetKeySecurity@16
RegLoadKeyA=RegLoadKeyA@12 RegLoadKeyA=RegLoadKeyA@12
RegLoadKeyW=RegLoadKeyW@12 RegLoadKeyW=RegLoadKeyW@12
RegNotifyChangeKeyValue=RegNotifyChangeKeyValue@20 RegNotifyChangeKeyValue=RegNotifyChangeKeyValue@20
@ -316,24 +316,24 @@ RegOpenKeyW=RegOpenKeyW@12
RegQueryInfoKeyA=RegQueryInfoKeyA@48 RegQueryInfoKeyA=RegQueryInfoKeyA@48
RegQueryInfoKeyW=RegQueryInfoKeyW@48 RegQueryInfoKeyW=RegQueryInfoKeyW@48
RegQueryMultipleValuesA=RegQueryMultipleValuesA@20 RegQueryMultipleValuesA=RegQueryMultipleValuesA@20
;RegQueryMultipleValuesW=RegQueryMultipleValuesW@20 RegQueryMultipleValuesW=RegQueryMultipleValuesW@20
RegQueryValueA=RegQueryValueA@16 RegQueryValueA=RegQueryValueA@16
RegQueryValueExA=RegQueryValueExA@24 RegQueryValueExA=RegQueryValueExA@24
RegQueryValueExW=RegQueryValueExW@24 RegQueryValueExW=RegQueryValueExW@24
;RegQueryValueW=RegQueryValueW@16 RegQueryValueW=RegQueryValueW@16
RegReplaceKeyA=RegReplaceKeyA@16 RegReplaceKeyA=RegReplaceKeyA@16
;RegReplaceKeyW=RegReplaceKeyW@16 RegReplaceKeyW=RegReplaceKeyW@16
RegRestoreKeyA=RegRestoreKeyA@12 RegRestoreKeyA=RegRestoreKeyA@12
;RegRestoreKeyW=RegRestoreKeyW@12 RegRestoreKeyW=RegRestoreKeyW@12
RegSaveKeyA=RegSaveKeyA@12 RegSaveKeyA=RegSaveKeyA@12
;RegSaveKeyW=RegSaveKeyW@12 RegSaveKeyW=RegSaveKeyW@12
;RegSetKeySecurity=RegSetKeySecurity@12 RegSetKeySecurity=RegSetKeySecurity@12
RegSetValueA=RegSetValueA@20 RegSetValueA=RegSetValueA@20
RegSetValueExA=RegSetValueExA@24 RegSetValueExA=RegSetValueExA@24
RegSetValueExW=RegSetValueExW@24 RegSetValueExW=RegSetValueExW@24
RegSetValueW=RegSetValueW@20 RegSetValueW=RegSetValueW@20
RegUnLoadKeyA=RegUnLoadKeyA@8 RegUnLoadKeyA=RegUnLoadKeyA@8
;RegUnLoadKeyW=RegUnLoadKeyW@8 RegUnLoadKeyW=RegUnLoadKeyW@8
;RegisterEventSourceA=RegisterEventSourceA@8 ;RegisterEventSourceA=RegisterEventSourceA@8
;RegisterEventSourceW=RegisterEventSourceW@8 ;RegisterEventSourceW=RegisterEventSourceW@8
RegisterServiceCtrlHandlerA=RegisterServiceCtrlHandlerA@8 RegisterServiceCtrlHandlerA=RegisterServiceCtrlHandlerA@8

View file

@ -1,4 +1,4 @@
/* $Id: reg.c,v 1.10 2000/09/08 22:54:13 ekohl Exp $ /* $Id: reg.c,v 1.11 2000/09/27 01:21:27 ekohl Exp $
* *
* COPYRIGHT: See COPYING in the top level directory * COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries * PROJECT: ReactOS system libraries
@ -363,8 +363,62 @@ RegDeleteKeyA(
LPCSTR lpSubKey LPCSTR lpSubKey
) )
{ {
SetLastError(ERROR_CALL_NOT_IMPLEMENTED); OBJECT_ATTRIBUTES ObjectAttributes;
return ERROR_CALL_NOT_IMPLEMENTED; UNICODE_STRING SubKeyStringW;
ANSI_STRING SubKeyStringA;
HANDLE ParentKey;
HANDLE TargetKey;
NTSTATUS Status;
LONG ErrorCode;
Status = MapDefaultKey(&ParentKey,
hKey);
if (!NT_SUCCESS(Status))
{
ErrorCode = RtlNtStatusToDosError(Status);
SetLastError (ErrorCode);
return ErrorCode;
}
RtlInitAnsiString(&SubKeyStringA,
(LPSTR)lpSubKey);
RtlAnsiStringToUnicodeString(&SubKeyStringW,
&SubKeyStringA,
TRUE);
InitializeObjectAttributes (&ObjectAttributes,
&SubKeyStringW,
OBJ_CASE_INSENSITIVE,
(HANDLE)ParentKey,
NULL);
Status = NtOpenKey (&TargetKey,
DELETE,
&ObjectAttributes);
RtlFreeUnicodeString (&SubKeyStringW);
if (!NT_SUCCESS(Status))
{
ErrorCode = RtlNtStatusToDosError(Status);
SetLastError (ErrorCode);
return ErrorCode;
}
Status = NtDeleteKey(TargetKey);
NtClose(TargetKey);
if (!NT_SUCCESS(Status))
{
ErrorCode = RtlNtStatusToDosError(Status);
SetLastError (ErrorCode);
return ErrorCode;
}
return ERROR_SUCCESS;
} }
@ -404,7 +458,6 @@ RegDeleteKeyW(
(HANDLE)ParentKey, (HANDLE)ParentKey,
NULL); NULL);
Status = NtOpenKey (&TargetKey, Status = NtOpenKey (&TargetKey,
DELETE, DELETE,
&ObjectAttributes); &ObjectAttributes);
@ -441,8 +494,42 @@ RegDeleteValueA(
LPCSTR lpValueName LPCSTR lpValueName
) )
{ {
SetLastError(ERROR_CALL_NOT_IMPLEMENTED); UNICODE_STRING ValueNameW;
return ERROR_CALL_NOT_IMPLEMENTED; ANSI_STRING ValueNameA;
NTSTATUS Status;
LONG ErrorCode;
HANDLE KeyHandle;
Status = MapDefaultKey(&KeyHandle,
hKey);
if (!NT_SUCCESS(Status))
{
ErrorCode = RtlNtStatusToDosError(Status);
SetLastError (ErrorCode);
return ErrorCode;
}
RtlInitAnsiString(&ValueNameA,
(LPSTR)lpValueName);
RtlAnsiStringToUnicodeString(&ValueNameW,
&ValueNameA,
TRUE);
Status = NtDeleteValueKey(KeyHandle,
&ValueNameW);
RtlFreeUnicodeString (&ValueNameW);
if (!NT_SUCCESS(Status))
{
ErrorCode = RtlNtStatusToDosError(Status);
SetLastError (ErrorCode);
return ErrorCode;
}
return ERROR_SUCCESS;
} }
@ -472,7 +559,7 @@ RegDeleteValueW(
} }
RtlInitUnicodeString(&ValueName, RtlInitUnicodeString(&ValueName,
lpValueName); (LPWSTR)lpValueName);
Status = NtDeleteValueKey(KeyHandle, Status = NtDeleteValueKey(KeyHandle,
&ValueName); &ValueName);
@ -500,8 +587,16 @@ RegEnumKeyA(
DWORD cbName DWORD cbName
) )
{ {
SetLastError(ERROR_CALL_NOT_IMPLEMENTED); DWORD dwLength = cbName;
return ERROR_CALL_NOT_IMPLEMENTED;
return RegEnumKeyExA(hKey,
dwIndex,
lpName,
&dwLength,
NULL,
NULL,
NULL,
NULL);
} }