mirror of
https://github.com/reactos/reactos.git
synced 2025-02-22 16:36:33 +00:00
Implemented some ascii functions
svn path=/trunk/; revision=1371
This commit is contained in:
parent
0ea51977f6
commit
99434057af
2 changed files with 118 additions and 23 deletions
|
@ -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
|
||||
;
|
||||
|
@ -288,8 +288,8 @@ QueryServiceStatus=QueryServiceStatus@8
|
|||
;ReadEventLogA=ReadEventLogA@28
|
||||
;ReadEventLogW=ReadEventLogW@28
|
||||
RegCloseKey=RegCloseKey@4
|
||||
;RegConnectRegistryA=RegConnectRegistryA@12
|
||||
;RegConnectRegistryW=RegConnectRegistryW@12
|
||||
RegConnectRegistryA=RegConnectRegistryA@12
|
||||
RegConnectRegistryW=RegConnectRegistryW@12
|
||||
RegCreateKeyA=RegCreateKeyA@12
|
||||
RegCreateKeyExA=RegCreateKeyExA@36
|
||||
RegCreateKeyExW=RegCreateKeyExW@36
|
||||
|
@ -300,12 +300,12 @@ RegDeleteValueA=RegDeleteValueA@8
|
|||
RegDeleteValueW=RegDeleteValueW@8
|
||||
RegEnumKeyA=RegEnumKeyA@16
|
||||
RegEnumKeyExA=RegEnumKeyExA@32
|
||||
;RegEnumKeyExW=RegEnumKeyExW@32
|
||||
;RegEnumKeyW=RegEnumKeyW@16
|
||||
RegEnumKeyExW=RegEnumKeyExW@32
|
||||
RegEnumKeyW=RegEnumKeyW@16
|
||||
RegEnumValueA=RegEnumValueA@32
|
||||
;RegEnumValueW=RegEnumValueW@32
|
||||
RegEnumValueW=RegEnumValueW@32
|
||||
RegFlushKey=RegFlushKey@4
|
||||
;RegGetKeySecurity=RegGetKeySecurity@16
|
||||
RegGetKeySecurity=RegGetKeySecurity@16
|
||||
RegLoadKeyA=RegLoadKeyA@12
|
||||
RegLoadKeyW=RegLoadKeyW@12
|
||||
RegNotifyChangeKeyValue=RegNotifyChangeKeyValue@20
|
||||
|
@ -316,24 +316,24 @@ RegOpenKeyW=RegOpenKeyW@12
|
|||
RegQueryInfoKeyA=RegQueryInfoKeyA@48
|
||||
RegQueryInfoKeyW=RegQueryInfoKeyW@48
|
||||
RegQueryMultipleValuesA=RegQueryMultipleValuesA@20
|
||||
;RegQueryMultipleValuesW=RegQueryMultipleValuesW@20
|
||||
RegQueryMultipleValuesW=RegQueryMultipleValuesW@20
|
||||
RegQueryValueA=RegQueryValueA@16
|
||||
RegQueryValueExA=RegQueryValueExA@24
|
||||
RegQueryValueExW=RegQueryValueExW@24
|
||||
;RegQueryValueW=RegQueryValueW@16
|
||||
RegQueryValueW=RegQueryValueW@16
|
||||
RegReplaceKeyA=RegReplaceKeyA@16
|
||||
;RegReplaceKeyW=RegReplaceKeyW@16
|
||||
RegReplaceKeyW=RegReplaceKeyW@16
|
||||
RegRestoreKeyA=RegRestoreKeyA@12
|
||||
;RegRestoreKeyW=RegRestoreKeyW@12
|
||||
RegRestoreKeyW=RegRestoreKeyW@12
|
||||
RegSaveKeyA=RegSaveKeyA@12
|
||||
;RegSaveKeyW=RegSaveKeyW@12
|
||||
;RegSetKeySecurity=RegSetKeySecurity@12
|
||||
RegSaveKeyW=RegSaveKeyW@12
|
||||
RegSetKeySecurity=RegSetKeySecurity@12
|
||||
RegSetValueA=RegSetValueA@20
|
||||
RegSetValueExA=RegSetValueExA@24
|
||||
RegSetValueExW=RegSetValueExW@24
|
||||
RegSetValueW=RegSetValueW@20
|
||||
RegUnLoadKeyA=RegUnLoadKeyA@8
|
||||
;RegUnLoadKeyW=RegUnLoadKeyW@8
|
||||
RegUnLoadKeyW=RegUnLoadKeyW@8
|
||||
;RegisterEventSourceA=RegisterEventSourceA@8
|
||||
;RegisterEventSourceW=RegisterEventSourceW@8
|
||||
RegisterServiceCtrlHandlerA=RegisterServiceCtrlHandlerA@8
|
||||
|
|
|
@ -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
|
||||
* PROJECT: ReactOS system libraries
|
||||
|
@ -363,8 +363,62 @@ RegDeleteKeyA(
|
|||
LPCSTR lpSubKey
|
||||
)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return ERROR_CALL_NOT_IMPLEMENTED;
|
||||
OBJECT_ATTRIBUTES ObjectAttributes;
|
||||
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,
|
||||
NULL);
|
||||
|
||||
|
||||
Status = NtOpenKey (&TargetKey,
|
||||
DELETE,
|
||||
&ObjectAttributes);
|
||||
|
@ -441,8 +494,42 @@ RegDeleteValueA(
|
|||
LPCSTR lpValueName
|
||||
)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return ERROR_CALL_NOT_IMPLEMENTED;
|
||||
UNICODE_STRING ValueNameW;
|
||||
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,
|
||||
lpValueName);
|
||||
(LPWSTR)lpValueName);
|
||||
|
||||
Status = NtDeleteValueKey(KeyHandle,
|
||||
&ValueName);
|
||||
|
@ -500,8 +587,16 @@ RegEnumKeyA(
|
|||
DWORD cbName
|
||||
)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return ERROR_CALL_NOT_IMPLEMENTED;
|
||||
DWORD dwLength = cbName;
|
||||
|
||||
return RegEnumKeyExA(hKey,
|
||||
dwIndex,
|
||||
lpName,
|
||||
&dwLength,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL);
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue