mirror of
https://github.com/reactos/reactos.git
synced 2025-02-23 08:55:19 +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
|
; 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
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue