Made nt-related types compatible, throw out wine-specific types.
diff --git a/include/ntddk.h b/include/ntddk.h new file mode 100644 index 0000000..08ac12f --- /dev/null +++ b/include/ntddk.h
@@ -0,0 +1,204 @@ +/* + this file defines interfaces mainly exposed to device drivers and + native nt dll's + +*/ +#ifndef __WINE_NTDDK_H +#define __WINE_NTDDK_H + +#include <ntdef.h> + +/* fixme: put it elsewhere */ +typedef long BOOL; +/* end fixme */ + +/****************** + * asynchronous I/O + */ +/* conflict with X11-includes*/ + +#undef Status +typedef struct _IO_STATUS_BLOCK +{ union + { NTSTATUS Status; + PVOID Pointer; + } u; + ULONG_PTR Information; +} IO_STATUS_BLOCK, *PIO_STATUS_BLOCK; + +typedef VOID (NTAPI *PIO_APC_ROUTINE) ( PVOID ApcContext, PIO_STATUS_BLOCK IoStatusBlock, ULONG Reserved ); + +typedef enum _KEY_INFORMATION_CLASS { + KeyBasicInformation, + KeyNodeInformation, + KeyFullInformation +} KEY_INFORMATION_CLASS; + +typedef enum _KEY_VALUE_INFORMATION_CLASS { + KeyValueBasicInformation, + KeyValueFullInformation, + KeyValuePartialInformation, + KeyValueFullInformationAlign64, + KeyValuePartialInformationAlign64 +} KEY_VALUE_INFORMATION_CLASS; + +typedef enum _PROCESSINFOCLASS +{ ProcessBasicInformation, + ProcessQuotaLimits, + ProcessIoCounters, + ProcessVmCounters, + ProcessTimes, + ProcessBasePriority, + ProcessRaisePriority, + ProcessDebugPort, + ProcessExceptionPort, + ProcessAccessToken, + ProcessLdtInformation, + ProcessLdtSize, + ProcessDefaultHardErrorMode, + ProcessIoPortHandlers, + ProcessPooledUsageAndLimits, + ProcessWorkingSetWatch, + ProcessUserModeIOPL, + ProcessEnableAlignmentFaultFixup, + ProcessPriorityClass, + ProcessWx86Information, + ProcessHandleCount, + ProcessAffinityMask, + ProcessPriorityBoost, + ProcessDeviceMap, + ProcessSessionInformation, + ProcessForegroundInformation, + ProcessWow64Information, + MaxProcessInfoClass +} PROCESSINFOCLASS; + +typedef enum _THREADINFOCLASS +{ ThreadBasicInformation, + ThreadTimes, + ThreadPriority, + ThreadBasePriority, + ThreadAffinityMask, + ThreadImpersonationToken, + ThreadDescriptorTableEntry, + ThreadEnableAlignmentFaultFixup, + ThreadEventPair_Reusable, + ThreadQuerySetWin32StartAddress, + ThreadZeroTlsCell, + ThreadPerformanceCount, + ThreadAmILastThread, + ThreadIdealProcessor, + ThreadPriorityBoost, + ThreadSetTlsArrayAddress, + ThreadIsIoPending, + MaxThreadInfoClass +} THREADINFOCLASS; + +typedef enum _FILE_INFORMATION_CLASS { + FileDirectoryInformation = 1, + FileFullDirectoryInformation, + FileBothDirectoryInformation, + FileBasicInformation, + FileStandardInformation, + FileInternalInformation, + FileEaInformation, + FileAccessInformation, + FileNameInformation, + FileRenameInformation, + FileLinkInformation, + FileNamesInformation, + FileDispositionInformation, + FilePositionInformation, + FileFullEaInformation, + FileModeInformation, + FileAlignmentInformation, + FileAllInformation, + FileAllocationInformation, + FileEndOfFileInformation, + FileAlternateNameInformation, + FileStreamInformation, + FilePipeInformation, + FilePipeLocalInformation, + FilePipeRemoteInformation, + FileMailslotQueryInformation, + FileMailslotSetInformation, + FileCompressionInformation, + FileObjectIdInformation, + FileCompletionInformation, + FileMoveClusterInformation, + FileQuotaInformation, + FileReparsePointInformation, + FileNetworkOpenInformation, + FileAttributeTagInformation, + FileTrackingInformation, + FileMaximumInformation +} FILE_INFORMATION_CLASS, *PFILE_INFORMATION_CLASS; + +typedef enum _SECTION_INHERIT +{ ViewShare = 1, + ViewUnmap = 2 +} SECTION_INHERIT; + +/* + placeholder +*/ +typedef enum _OBJECT_INFORMATION_CLASS +{ DunnoTheConstants1 +} OBJECT_INFORMATION_CLASS, *POBJECT_INFORMATION_CLASS; + +typedef enum SYSTEM_INFORMATION_CLASS +{ DunnoTheConstants2 +} SYSTEM_INFORMATION_CLASS, *PSYSTEM_INFORMATION_CLASS; + +/* + * NtQuerySystemInformation interface + */ +typedef struct _SYSTEM_TIME_ADJUSTMENT +{ + ULONG TimeAdjustment; + BOOL TimeAdjustmentDisabled; + +} SYSTEM_TIME_ADJUSTMENT, *PSYSTEM_TIME_ADJUSTMENT; + +typedef struct _SYSTEM_CONFIGURATION_INFO +{ + union + { ULONG OemId; + struct + { WORD ProcessorArchitecture; + WORD Reserved; + } tag1; + } tag2; + ULONG PageSize; + PVOID MinimumApplicationAddress; + PVOID MaximumApplicationAddress; + ULONG ActiveProcessorMask; + ULONG NumberOfProcessors; + ULONG ProcessorType; + ULONG AllocationGranularity; + WORD ProcessorLevel; + WORD ProcessorRevision; + +} SYSTEM_CONFIGURATION_INFO, *PSYSTEM_CONFIGURATION_INFO; + + +typedef struct _SYSTEM_CACHE_INFORMATION +{ + ULONG CurrentSize; + ULONG PeakSize; + ULONG PageFaultCount; + ULONG MinimumWorkingSet; + ULONG MaximumWorkingSet; + ULONG Unused[4]; + +} SYSTEM_CACHE_INFORMATION; + +/* + timer +*/ +typedef enum _TIMER_TYPE +{ NotificationTimer, + SynchronizationTimer +} TIMER_TYPE; + +#endif
diff --git a/include/ntdef.h b/include/ntdef.h new file mode 100644 index 0000000..47d287c --- /dev/null +++ b/include/ntdef.h
@@ -0,0 +1,53 @@ +#ifndef __WINE_NTDEF_H +#define __WINE_NTDEF_H + +#define NTAPI __stdcall + +/* NT lowlevel Strings (handled by Rtl* functions in NTDLL) + * If they are zero terminated, Length does not include the terminating 0. + */ + +typedef struct _STRING { + UINT16 Length; + UINT16 MaximumLength; + LPSTR Buffer; +} STRING,*PSTRING,ANSI_STRING,*PANSI_STRING; + +typedef struct _CSTRING { + UINT16 Length; + UINT16 MaximumLength; + LPCSTR Buffer; +} CSTRING,*PCSTRING; + +typedef struct _UNICODE_STRING { + UINT16 Length; /* bytes */ + UINT16 MaximumLength; /* bytes */ + LPWSTR Buffer; +} UNICODE_STRING,*PUNICODE_STRING; + +/* + Objects +*/ + +#define OBJ_INHERIT 0x00000002L +#define OBJ_PERMANENT 0x00000010L +#define OBJ_EXCLUSIVE 0x00000020L +#define OBJ_CASE_INSENSITIVE 0x00000040L +#define OBJ_OPENIF 0x00000080L +#define OBJ_OPENLINK 0x00000100L +#define OBJ_KERNEL_HANDLE 0x00000200L +#define OBJ_VALID_ATTRIBUTES 0x000003F2L + +typedef struct _OBJECT_ATTRIBUTES +{ ULONG Length; + HANDLE32 RootDirectory; + PUNICODE_STRING ObjectName; + ULONG Attributes; + PVOID SecurityDescriptor; /* type SECURITY_DESCRIPTOR */ + PVOID SecurityQualityOfService; /* type SECURITY_QUALITY_OF_SERVICE */ +} OBJECT_ATTRIBUTES; + +typedef OBJECT_ATTRIBUTES *POBJECT_ATTRIBUTES; + + +#endif
diff --git a/include/ntdll.h b/include/ntdll.h index 79328c8..ccc3649 100644 --- a/include/ntdll.h +++ b/include/ntdll.h
@@ -22,7 +22,7 @@ /* Moved to windows.h typedef struct { BYTE Value[6]; -} SID_IDENTIFIER_AUTHORITY,*PSID_IDENTIFIER_AUTHORITY,*LPSID_IDENTIFIER_AUTHORITY; +} SID_IDENTIFIER_AUTHORITY,*PSID_IDENTIFIER_AUTHORITY,*PSID_IDENTIFIER_AUTHORITY; */ /* Moved to windows.h @@ -31,7 +31,7 @@ BYTE SubAuthorityCount; SID_IDENTIFIER_AUTHORITY IdentifierAuthority; DWORD SubAuthority[1]; -} SID,*PSID,*LPSID; +} SID,*PSID,*PSID; */ #define SID_REVISION (1) /* Current revision */ @@ -130,8 +130,8 @@ BYTE Revision; BYTE Sbz1; SECURITY_DESCRIPTOR_CONTROL Control; - LPSID Owner; - LPSID Group; + PSID Owner; + PSID Group; LPACL Sacl; LPACL Dacl; } SECURITY_DESCRIPTOR,*PSECURITY_DESCRIPTOR,*LPSECURITY_DESCRIPTOR; @@ -146,29 +146,7 @@ SidTypeDeletedAccount, SidTypeInvalid, SidTypeUnknown -} SID_NAME_USE,*PSID_NAME_USE,*LPSID_NAME_USE; - -/* NT lowlevel Strings (handled by Rtl* functions in NTDLL) - * If they are zero terminated, Length does not include the terminating 0. - */ - -typedef struct _STRING { - UINT16 Length; - UINT16 MaximumLength; - LPSTR Buffer; -} STRING,*LPSTRING,ANSI_STRING,*LPANSI_STRING; - -typedef struct _CSTRING { - UINT16 Length; - UINT16 MaximumLength; - LPCSTR Buffer; -} CSTRING,*LPCSTRING; - -typedef struct _UNICODE_STRING { - UINT16 Length; /* bytes */ - UINT16 MaximumLength; /* bytes */ - LPWSTR Buffer; -} UNICODE_STRING,*LPUNICODE_STRING; +} SID_NAME_USE,*PSID_NAME_USE; typedef struct _RTL_RWLOCK { CRITICAL_SECTION rtlCS; @@ -189,25 +167,25 @@ VOID WINAPI RtlReleaseResource(LPRTL_RWLOCK); VOID WINAPI RtlDumpResource(LPRTL_RWLOCK); -BOOL32 WINAPI IsValidSid(LPSID); -BOOL32 WINAPI EqualSid(LPSID,LPSID); -BOOL32 WINAPI EqualPrefixSid(LPSID,LPSID); +BOOL32 WINAPI IsValidSid(PSID); +BOOL32 WINAPI EqualSid(PSID,PSID); +BOOL32 WINAPI EqualPrefixSid(PSID,PSID); DWORD WINAPI GetSidLengthRequired(BYTE); -BOOL32 WINAPI AllocateAndInitializeSid(LPSID_IDENTIFIER_AUTHORITY,BYTE,DWORD, +BOOL32 WINAPI AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY,BYTE,DWORD, DWORD,DWORD,DWORD,DWORD,DWORD,DWORD, - DWORD,LPSID*); -VOID* WINAPI FreeSid(LPSID); + DWORD,PSID*); +VOID* WINAPI FreeSid(PSID); BOOL32 WINAPI InitializeSecurityDescriptor(SECURITY_DESCRIPTOR*,DWORD); -BOOL32 WINAPI InitializeSid(LPSID,LPSID_IDENTIFIER_AUTHORITY,BYTE); -DWORD* WINAPI GetSidSubAuthority(LPSID,DWORD); -BYTE * WINAPI GetSidSubAuthorityCount(LPSID); -DWORD WINAPI GetLengthSid(LPSID); -BOOL32 WINAPI CopySid(DWORD,LPSID,LPSID); +BOOL32 WINAPI InitializeSid(PSID,PSID_IDENTIFIER_AUTHORITY,BYTE); +DWORD* WINAPI GetSidSubAuthority(PSID,DWORD); +BYTE * WINAPI GetSidSubAuthorityCount(PSID); +DWORD WINAPI GetLengthSid(PSID); +BOOL32 WINAPI CopySid(DWORD,PSID,PSID); BOOL32 WINAPI LookupAccountSid32A(LPCSTR,PSID,LPCSTR,LPDWORD,LPCSTR,LPDWORD, PSID_NAME_USE); BOOL32 WINAPI LookupAccountSid32W(LPCWSTR,PSID,LPCWSTR,LPDWORD,LPCWSTR,LPDWORD, PSID_NAME_USE); -LPSID_IDENTIFIER_AUTHORITY WINAPI GetSidIdentifierAuthority(LPSID); +PSID_IDENTIFIER_AUTHORITY WINAPI GetSidIdentifierAuthority(PSID); INT32 WINAPI AccessResource32(HMODULE32,HRSRC32); #define AccessResource WINELIB_NAME(AccessResource)
diff --git a/include/winbase.h b/include/winbase.h index 0636109..da444b4 100644 --- a/include/winbase.h +++ b/include/winbase.h
@@ -171,11 +171,11 @@ BYTE Revision; BYTE Sbz1; SECURITY_DESCRIPTOR_CONTROL Control; - LPSID Owner; - LPSID Group; - LPACL Sacl; - LPACL Dacl; -} SECURITY_DESCRIPTOR, *PSECURITY_DESCRIPTOR, *LPSECURITY_DESCRIPTOR; + PSID Owner; + PSID Group; + PACL Sacl; + PACL Dacl; +} SECURITY_DESCRIPTOR, *PSECURITY_DESCRIPTOR; typedef DWORD SECURITY_INFORMATION; @@ -1521,7 +1521,7 @@ DWORD WINAPI QueryDosDevice32A(LPCSTR,LPSTR,DWORD); DWORD WINAPI QueryDosDevice32W(LPCWSTR,LPWSTR,DWORD); #define QueryDosDevice WINELIB_NAME_AW(QueryDosDevice) -BOOL32 WINAPI QueryPerformanceCounter(LPLARGE_INTEGER); +BOOL32 WINAPI QueryPerformanceCounter(PLARGE_INTEGER); BOOL32 WINAPI ReadConsole32A(HANDLE32,LPVOID,DWORD,LPDWORD,LPVOID); BOOL32 WINAPI ReadConsole32W(HANDLE32,LPVOID,DWORD,LPDWORD,LPVOID); #define ReadConsole WINELIB_NAME_AW(ReadConsole) @@ -1663,8 +1663,8 @@ BOOL32 WINAPI GetDiskFreeSpace32A(LPCSTR,LPDWORD,LPDWORD,LPDWORD,LPDWORD); BOOL32 WINAPI GetDiskFreeSpace32W(LPCWSTR,LPDWORD,LPDWORD,LPDWORD,LPDWORD); #define GetDiskFreeSpace WINELIB_NAME_AW(GetDiskFreeSpace) -BOOL32 WINAPI GetDiskFreeSpaceEx32A(LPCSTR,LPULARGE_INTEGER,LPULARGE_INTEGER,LPULARGE_INTEGER); -BOOL32 WINAPI GetDiskFreeSpaceEx32W(LPCWSTR,LPULARGE_INTEGER,LPULARGE_INTEGER,LPULARGE_INTEGER); +BOOL32 WINAPI GetDiskFreeSpaceEx32A(LPCSTR,PULARGE_INTEGER,PULARGE_INTEGER,PULARGE_INTEGER); +BOOL32 WINAPI GetDiskFreeSpaceEx32W(LPCWSTR,PULARGE_INTEGER,PULARGE_INTEGER,PULARGE_INTEGER); #define GetDiskFreeSpaceEx WINELIB_NAME_AW(GetDiskFreeSpaceEx) UINT32 WINAPI GetDriveType32A(LPCSTR); UINT32 WINAPI GetDriveType32W(LPCWSTR);
diff --git a/include/windef.h b/include/windef.h index 5ec07f3..8301cf7 100644 --- a/include/windef.h +++ b/include/windef.h
@@ -5,6 +5,18 @@ #pragma pack(1) +#ifndef IN +#define IN +#endif + +#ifndef OUT +#define OUT +#endif + +#ifndef OPTIONAL +#define OPTIONAL +#endif + /* FIXME: _MAX_PATH should be defined in stdlib.h and MAX_PATH in windef.h * and mapiwin.h */
diff --git a/include/winnt.h b/include/winnt.h index 8edbdd1..601c85a 100644 --- a/include/winnt.h +++ b/include/winnt.h
@@ -317,14 +317,14 @@ typedef struct { BYTE Value[6]; -} SID_IDENTIFIER_AUTHORITY,*PSID_IDENTIFIER_AUTHORITY,*LPSID_IDENTIFIER_AUTHORITY; +} SID_IDENTIFIER_AUTHORITY,*PSID_IDENTIFIER_AUTHORITY; typedef struct _SID { BYTE Revision; BYTE SubAuthorityCount; SID_IDENTIFIER_AUTHORITY IdentifierAuthority; DWORD SubAuthority[1]; -} SID,*PSID,*LPSID; +} SID,*PSID; #pragma pack(4) @@ -400,15 +400,15 @@ { DWORD LowPart; LONG HighPart; -} LARGE_INTEGER,*LPLARGE_INTEGER; +} LARGE_INTEGER,*PLARGE_INTEGER; typedef struct _ULARGE_INTEGER { DWORD LowPart; DWORD HighPart; -} ULARGE_INTEGER,*LPULARGE_INTEGER; +} ULARGE_INTEGER,*PULARGE_INTEGER; -typedef LARGE_INTEGER LUID,*LPLUID; /* locally unique ids */ +typedef LARGE_INTEGER LUID,*PLUID; /* locally unique ids */ typedef struct _LUID_AND_ATTRIBUTES { LUID Luid; @@ -422,7 +422,7 @@ typedef struct _TOKEN_PRIVILEGES { DWORD PrivilegeCount; LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY]; -} TOKEN_PRIVILEGES; +} TOKEN_PRIVILEGES, *PTOKEN_PRIVILEGES; /* * TOKEN_OWNER @@ -440,9 +440,8 @@ PSID PrimaryGroup; } TOKEN_PRIMARY_GROUP; - /* - * ACL (and PACL LPACL?). + * ACL */ typedef struct _ACL { @@ -451,14 +450,14 @@ WORD AclSize; WORD AceCount; WORD Sbz2; -} ACL, *LPACL; +} ACL, *PACL; /* * TOKEN_DEFAULT_DACL */ typedef struct _TOKEN_DEFAULT_DACL { - LPACL DefaultDacl; + PACL DefaultDacl; } TOKEN_DEFAULT_DACL; /* @@ -508,10 +507,6 @@ LUID ModifiedId; } TOKEN_STATISTICS; - -/* I moved the Language IDs to winnls.h (David Lee Lambert) */ - - /* Access rights */ #define DELETE 0x00010000
diff --git a/include/winreg.h b/include/winreg.h index e86cc35..e5907d4 100644 --- a/include/winreg.h +++ b/include/winreg.h
@@ -14,7 +14,7 @@ #define STANDARD_RIGHTS_READ READ_CONTROL #endif #ifndef STANDARD_RIGHTS_WRITE -#define STANDARD_RIGHTS_WRITE READ_CONTROL /* FIXME: hmm? */ +#define STANDARD_RIGHTS_WRITE READ_CONTROL /* yes, it's right (js) */ #endif #ifndef STANDARD_RIGHTS_ALL #define STANDARD_RIGHTS_ALL 0x001f0000 @@ -88,6 +88,28 @@ KEY_CREATE_LINK \ ) +/* fixme: move it to basetsd.h */ +typedef ULONG_PTR DWORD_PTR, *PDWORD_PTR; +/* end fixme */ + +/* + * registry provider structs + */ +typedef struct value_entA +{ LPSTR ve_valuename; + DWORD ve_valuelen; + DWORD_PTR ve_valueptr; + DWORD ve_type; +} VALENTA, *PVALENTA; + +typedef struct value_entW { + LPWSTR ve_valuename; + DWORD ve_valuelen; + DWORD_PTR ve_valueptr; + DWORD ve_type; +} VALENTW, *PVALENTW; + + /* Used by: ControlService */ typedef struct _SERVICE_STATUS { DWORD dwServiceType; @@ -119,13 +141,13 @@ LONG WINAPI RegSaveKey32A(HKEY,LPCSTR,LPSECURITY_ATTRIBUTES); LONG WINAPI RegSaveKey32W(HKEY,LPCWSTR,LPSECURITY_ATTRIBUTES); #define RegSaveKey WINELIB_NAME_AW(RegSaveKey) -LONG WINAPI RegSetKeySecurity(HKEY,SECURITY_INFORMATION,LPSECURITY_DESCRIPTOR); +LONG WINAPI RegSetKeySecurity(HKEY,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR); BOOL32 WINAPI CloseServiceHandle(HANDLE32); BOOL32 WINAPI ControlService(HANDLE32,DWORD,LPSERVICE_STATUS); BOOL32 WINAPI DeleteService(HANDLE32); BOOL32 WINAPI DeregisterEventSource(HANDLE32); -BOOL32 WINAPI GetFileSecurity32A(LPCSTR,SECURITY_INFORMATION,LPSECURITY_DESCRIPTOR,DWORD,LPDWORD); -BOOL32 WINAPI GetFileSecurity32W(LPCWSTR,SECURITY_INFORMATION,LPSECURITY_DESCRIPTOR,DWORD,LPDWORD); +BOOL32 WINAPI GetFileSecurity32A(LPCSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,LPDWORD); +BOOL32 WINAPI GetFileSecurity32W(LPCWSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,LPDWORD); #define GetFileSecurity WINELIB_NAME_AW(GetFileSecurity) BOOL32 WINAPI GetUserName32A(LPSTR,LPDWORD); BOOL32 WINAPI GetUserName32W(LPWSTR,LPDWORD); @@ -139,7 +161,7 @@ DWORD WINAPI RegEnumKeyEx32W(HKEY,DWORD,LPWSTR,LPDWORD,LPDWORD,LPWSTR, LPDWORD,LPFILETIME); #define RegEnumKeyEx WINELIB_NAME_AW(RegEnumKeyEx) -LONG WINAPI RegGetKeySecurity(HKEY,SECURITY_INFORMATION,LPSECURITY_DESCRIPTOR,LPDWORD); +LONG WINAPI RegGetKeySecurity(HKEY,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,LPDWORD); LONG WINAPI RegLoadKey32A(HKEY,LPCSTR,LPCSTR); LONG WINAPI RegLoadKey32W(HKEY,LPCWSTR,LPCWSTR); #define RegLoadKey WINELIB_NAME_AW(RegLoadKey) @@ -163,8 +185,8 @@ LONG WINAPI RegUnLoadKey32A(HKEY,LPCSTR); LONG WINAPI RegUnLoadKey32W(HKEY,LPCWSTR); #define RegUnLoadKey WINELIB_NAME_AW(RegUnLoadKey) -BOOL32 WINAPI SetFileSecurity32A(LPCSTR,SECURITY_INFORMATION,LPSECURITY_DESCRIPTOR); -BOOL32 WINAPI SetFileSecurity32W(LPCWSTR,SECURITY_INFORMATION,LPSECURITY_DESCRIPTOR); +BOOL32 WINAPI SetFileSecurity32A(LPCSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR); +BOOL32 WINAPI SetFileSecurity32W(LPCWSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR); #define SetFileSecurity WINELIB_NAME_AW(SetFileSecurity) BOOL32 WINAPI StartService32A(HANDLE32,DWORD,LPCSTR*); BOOL32 WINAPI StartService32W(HANDLE32,DWORD,LPCWSTR*); @@ -206,10 +228,4 @@ DWORD WINAPI RegSetValueEx32W(HKEY,LPWSTR,DWORD,DWORD,LPBYTE,DWORD); #define RegSetValueEx WINELIB_NAME_AW(RegSetValueEx) -void SHELL_Init(void); -void SHELL_SaveRegistry(void); -void SHELL_LoadRegistry(void); - - - #endif /* __WINE_WINREG_H */