Browse Source

* second batch of mantis #29762 related -w function fixes..

git-svn-id: trunk@33217 -
marco 9 years ago
parent
commit
0bfdfe20ea
3 changed files with 482 additions and 178 deletions
  1. 22 22
      rtl/win/wininc/ascfun.inc
  2. 431 127
      rtl/win/wininc/struct.inc
  3. 29 29
      rtl/win/wininc/unifun.inc

+ 22 - 22
rtl/win/wininc/ascfun.inc

@@ -305,10 +305,10 @@ function CreateFontIndirectA(var _para1:LOGFONT):HFONT; external 'gdi32' name 'C
 function CreateICA(_para1:LPCSTR; _para2:LPCSTR; _para3:LPCSTR; _para4:LPDEVMODE):HDC; external 'gdi32' name 'CreateICA';
 function CreateMetaFileA(_para1:LPCSTR):HDC; external 'gdi32' name 'CreateMetaFileA';
 function CreateScalableFontResourceA(_para1:DWORD; _para2:LPCSTR; _para3:LPCSTR; _para4:LPCSTR):WINBOOL; external 'gdi32' name 'CreateScalableFontResourceA';
-function EnumFontFamiliesExA(_para1:HDC; _para2:LPLOGFONT; _para3:FONTENUMEXPROC; _para4:LPARAM; _para5:DWORD):longint; external 'gdi32' name 'EnumFontFamiliesExA';
-function EnumFontFamiliesA(_para1:HDC; _para2:LPCSTR; _para3:FONTENUMPROC; _para4:LPARAM):longint; external 'gdi32' name 'EnumFontFamiliesA';
-function EnumFontsA(_para1:HDC; _para2:LPCSTR; _para3:ENUMFONTSPROC; _para4:LPARAM):longint; external 'gdi32' name 'EnumFontsA';
-function EnumFontsA(_para1:HDC; _para2:LPCSTR; _para3:ENUMFONTSPROC; _para4:pointer):longint; external 'gdi32' name 'EnumFontsA';
+function EnumFontFamiliesExA(_para1:HDC; _para2:LPLOGFONTA; _para3:FONTENUMEXPROCA; _para4:LPARAM; _para5:DWORD):longint; external 'gdi32' name 'EnumFontFamiliesExA';
+function EnumFontFamiliesA(_para1:HDC; _para2:LPCSTR; _para3:FONTENUMPROCA; _para4:LPARAM):longint; external 'gdi32' name 'EnumFontFamiliesA';
+function EnumFontsA(_para1:HDC; _para2:LPCSTR; _para3:ENUMFONTSPROCA; _para4:LPARAM):longint; external 'gdi32' name 'EnumFontsA';
+function EnumFontsA(_para1:HDC; _para2:LPCSTR; _para3:ENUMFONTSPROCA; _para4:pointer):longint; external 'gdi32' name 'EnumFontsA';
 function GetCharWidthA(_para1:HDC; _para2:UINT; _para3:UINT; _para4:LPINT):WINBOOL; external 'gdi32' name 'GetCharWidthA';
 function GetCharWidth32A(_para1:HDC; _para2:UINT; _para3:UINT; _para4:LPINT):WINBOOL; external 'gdi32' name 'GetCharWidth32A';
 function GetCharWidthFloatA(_para1:HDC; _para2:UINT; _para3:UINT; _para4:PSingle):WINBOOL; external 'gdi32' name 'GetCharWidthFloatA';
@@ -316,27 +316,27 @@ function GetCharABCWidthsA(_para1:HDC; _para2:UINT; _para3:UINT; _para4:LPABC):W
 function GetCharABCWidthsFloatA(_para1:HDC; _para2:UINT; _para3:UINT; _para4:LPABCFLOAT):WINBOOL; external 'gdi32' name 'GetCharABCWidthsFloatA';
 function GetGlyphOutlineA(_para1:HDC; _para2:UINT; _para3:UINT; _para4:LPGLYPHMETRICS; _para5:DWORD;_para6:LPVOID; _para7:PMAT2):DWORD; external 'gdi32' name 'GetGlyphOutlineA';
 function GetMetaFileA(_para1:LPCSTR):HMETAFILE; external 'gdi32' name 'GetMetaFileA';
-function GetOutlineTextMetricsA(_para1:HDC; _para2:UINT; _para3:LPOUTLINETEXTMETRIC):UINT; external 'gdi32' name 'GetOutlineTextMetricsA';
+function GetOutlineTextMetricsA(_para1:HDC; _para2:UINT; _para3:LPOUTLINETEXTMETRICA):UINT; external 'gdi32' name 'GetOutlineTextMetricsA';
 function GetTextExtentPointA(_para1:HDC; _para2:LPCSTR; _para3:longint; _para4:LPSIZE):WINBOOL; external 'gdi32' name 'GetTextExtentPointA';
 function GetTextExtentPoint32A(_para1:HDC; _para2:LPCSTR; _para3:longint; _para4:LPSIZE):WINBOOL; external 'gdi32' name 'GetTextExtentPoint32A';
 function GetTextExtentExPointA(_para1:HDC; _para2:LPCSTR; _para3:longint; _para4:longint; _para5:LPINT;_para6:LPINT; _para7:LPSIZE):WINBOOL; external 'gdi32' name 'GetTextExtentExPointA';
-function GetCharacterPlacementA(_para1:HDC; _para2:LPCSTR; _para3:longint; _para4:longint; _para5:LPGCP_RESULTS;_para6:DWORD):DWORD; external 'gdi32' name 'GetCharacterPlacementA';
+function GetCharacterPlacementA(_para1:HDC; _para2:LPCSTR; _para3:longint; _para4:longint; _para5:LPGCP_RESULTSA;_para6:DWORD):DWORD; external 'gdi32' name 'GetCharacterPlacementA';
 function ResetDCA(_para1:HDC; _para2:LPDEVMODE):HDC; external 'gdi32' name 'ResetDCA';
 function RemoveFontResourceA(_para1:LPCSTR):WINBOOL; external 'gdi32' name 'RemoveFontResourceA';
 function CopyEnhMetaFileA(_para1:HENHMETAFILE; _para2:LPCSTR):HENHMETAFILE; external 'gdi32' name 'CopyEnhMetaFileA';
 function CreateEnhMetaFileA(_para1:HDC; _para2:LPCSTR; _para3:LPRECT; _para4:LPCSTR):HDC; external 'gdi32' name 'CreateEnhMetaFileA';
 function GetEnhMetaFileA(_para1:LPCSTR):HENHMETAFILE; external 'gdi32' name 'GetEnhMetaFileA';
 function GetEnhMetaFileDescriptionA(_para1:HENHMETAFILE; _para2:UINT; _para3:LPSTR):UINT; external 'gdi32' name 'GetEnhMetaFileDescriptionA';
-function GetTextMetricsA(_para1:HDC; _para2:LPTEXTMETRIC):WINBOOL; external 'gdi32' name 'GetTextMetricsA';
-function StartDocA(_para1:HDC; _para2:PDOCINFO):longint; external 'gdi32' name 'StartDocA';
+function GetTextMetricsA(_para1:HDC; _para2:LPTEXTMETRICA):WINBOOL; external 'gdi32' name 'GetTextMetricsA';
+function StartDocA(_para1:HDC; _para2:PDOCINFOA):longint; external 'gdi32' name 'StartDocA';
 function GetObjectA(_para1:HGDIOBJ; _para2:longint; _para3:LPVOID):longint; external 'gdi32' name 'GetObjectA';
 function TextOutA(_para1:HDC; _para2:longint; _para3:longint; _para4:LPCSTR; _para5:longint):WINBOOL; external 'gdi32' name 'TextOutA';
 function ExtTextOutA(_para1:HDC; _para2:longint; _para3:longint; _para4:UINT; _para5:LPRECT;_para6:LPCSTR; _para7:UINT; _para8:LPINT):WINBOOL; external 'gdi32' name 'ExtTextOutA';
-function PolyTextOutA(_para1:HDC; _para2:PPOLYTEXT; _para3:longint):WINBOOL; external 'gdi32' name 'PolyTextOutA';
+function PolyTextOutA(_para1:HDC; _para2:PPOLYTEXTA; _para3:longint):WINBOOL; external 'gdi32' name 'PolyTextOutA';
 function GetTextFaceA(_para1:HDC; _para2:longint; _para3:LPSTR):longint; external 'gdi32' name 'GetTextFaceA';
 function GetKerningPairsA(_para1:HDC; _para2:DWORD; _para3:LPKERNINGPAIR):DWORD; external 'gdi32' name 'GetKerningPairsA';
-function CreateColorSpaceA(_para1:LPLOGCOLORSPACE):HCOLORSPACE; external 'gdi32' name 'CreateColorSpaceA';
-function GetLogColorSpaceA(_para1:HCOLORSPACE; _para2:LPLOGCOLORSPACE; _para3:DWORD):WINBOOL; external 'gdi32' name 'GetLogColorSpaceA';
+function CreateColorSpaceA(_para1:LPLOGCOLORSPACEA):HCOLORSPACE; external 'gdi32' name 'CreateColorSpaceA';
+function GetLogColorSpaceA(_para1:HCOLORSPACE; _para2:LPLOGCOLORSPACEA; _para3:DWORD):WINBOOL; external 'gdi32' name 'GetLogColorSpaceA';
 function GetICMProfileA(_para1:HDC; _para2:DWORD; _para3:LPSTR):WINBOOL; external 'gdi32' name 'GetICMProfileA';
 function SetICMProfileA(_para1:HDC; _para2:LPSTR):WINBOOL; external 'gdi32' name 'SetICMProfileA';
 function UpdateICMRegKeyA(_para1:DWORD; _para2:DWORD; _para3:LPSTR; _para4:UINT):WINBOOL; external 'gdi32' name 'UpdateICMRegKeyA';
@@ -390,7 +390,7 @@ function RegOpenKeyExA(hKey:HKEY; lpSubKey:LPCSTR; ulOptions:DWORD; samDesired:R
 function RegQueryInfoKeyA(hKey:HKEY; lpClass:LPSTR; lpcbClass:LPDWORD; lpReserved:LPDWORD; lpcSubKeys:LPDWORD;lpcbMaxSubKeyLen:LPDWORD; lpcbMaxClassLen:LPDWORD; lpcValues:LPDWORD; lpcbMaxValueNameLen:LPDWORD;
   lpcbMaxValueLen:LPDWORD;lpcbSecurityDescriptor:LPDWORD; lpftLastWriteTime:PFILETIME):LONG; external 'advapi32' name 'RegQueryInfoKeyA';
 function RegQueryValueA(hKey:HKEY; lpSubKey:LPCSTR; lpValue:LPSTR; lpcbValue:PLONG):LONG; external 'advapi32' name 'RegQueryValueA';
-function RegQueryMultipleValuesA(hKey:HKEY; val_list:PVALENT; num_vals:DWORD; lpValueBuf:LPSTR; ldwTotsize:LPDWORD):LONG; external 'advapi32' name 'RegQueryMultipleValuesA';
+function RegQueryMultipleValuesA(hKey:HKEY; val_list:PVALENTA; num_vals:DWORD; lpValueBuf:LPSTR; ldwTotsize:LPDWORD):LONG; external 'advapi32' name 'RegQueryMultipleValuesA';
 function RegQueryValueExA(hKey:HKEY; lpValueName:LPCSTR; lpReserved:LPDWORD; lpType:LPDWORD; lpData:LPBYTE;lpcbData:LPDWORD):LONG; external 'advapi32' name 'RegQueryValueExA';
 function RegReplaceKeyA(hKey:HKEY; lpSubKey:LPCSTR; lpNewFile:LPCSTR; lpOldFile:LPCSTR):LONG; external 'advapi32' name 'RegReplaceKeyA';
 function RegRestoreKeyA(hKey:HKEY; lpFile:LPCSTR; dwFlags:DWORD):LONG; external 'advapi32' name 'RegRestoreKeyA';
@@ -406,8 +406,8 @@ function GetLocaleInfoA(Locale:LCID; LCType:LCTYPE; lpLCData:LPSTR; cchData:long
 function SetLocaleInfoA(Locale:LCID; LCType:LCTYPE; lpLCData:LPCSTR):WINBOOL; external 'kernel32' name 'SetLocaleInfoA';
 function GetTimeFormatA(Locale:LCID; dwFlags:DWORD; lpTime:LPSYSTEMTIME; lpFormat:LPCSTR; lpTimeStr:LPSTR;cchTime:longint):longint; external 'kernel32' name 'GetTimeFormatA';
 function GetDateFormatA(Locale:LCID; dwFlags:DWORD; lpDate:LPSYSTEMTIME; lpFormat:LPCSTR; lpDateStr:LPSTR;cchDate:longint):longint; external 'kernel32' name 'GetDateFormatA';
-function GetNumberFormatA(Locale:LCID; dwFlags:DWORD; lpValue:LPCSTR; lpFormat:PNUMBERFMT; lpNumberStr:LPSTR;cchNumber:longint):longint; external 'kernel32' name 'GetNumberFormatA';
-function GetCurrencyFormatA(Locale:LCID; dwFlags:DWORD; lpValue:LPCSTR; lpFormat:PCURRENCYFMT; lpCurrencyStr:LPSTR;cchCurrency:longint):longint; external 'kernel32' name 'GetCurrencyFormatA';
+function GetNumberFormatA(Locale:LCID; dwFlags:DWORD; lpValue:LPCSTR; lpFormat:PNUMBERFMTA; lpNumberStr:LPSTR;cchNumber:longint):longint; external 'kernel32' name 'GetNumberFormatA';
+function GetCurrencyFormatA(Locale:LCID; dwFlags:DWORD; lpValue:LPCSTR; lpFormat:PCURRENCYFMTA; lpCurrencyStr:LPSTR;cchCurrency:longint):longint; external 'kernel32' name 'GetCurrencyFormatA';
 function EnumCalendarInfoA(lpCalInfoEnumProc:CALINFO_ENUMPROCA; Locale:LCID; Calendar:CALID; CalType:CALTYPE):WINBOOL; external 'kernel32' name 'EnumCalendarInfoA';
 function EnumTimeFormatsA(lpTimeFmtEnumProc:TIMEFMT_ENUMPROCA; Locale:LCID; dwFlags:DWORD):WINBOOL; external 'kernel32' name 'EnumTimeFormatsA';
 function EnumDateFormatsA(lpDateFmtEnumProc:DATEFMT_ENUMPROCA; Locale:LCID; dwFlags:DWORD):WINBOOL; external 'kernel32' name 'EnumDateFormatsA';
@@ -430,28 +430,28 @@ function SetConsoleTitleA(lpConsoleTitle:LPCSTR):WINBOOL; external 'kernel32' na
 function ReadConsoleA(hConsoleInput:HANDLE; lpBuffer:LPVOID; nNumberOfCharsToRead:DWORD; lpNumberOfCharsRead:LPDWORD; lpReserved:LPVOID):WINBOOL; external 'kernel32' name 'ReadConsoleA';
 function WriteConsoleA(hConsoleOutput:HANDLE;lpBuffer:pointer; nNumberOfCharsToWrite:DWORD; lpNumberOfCharsWritten:LPDWORD; lpReserved:LPVOID):WINBOOL; external 'kernel32' name 'WriteConsoleA';
 function WNetAddConnectionA(lpRemoteName:LPCSTR; lpPassword:LPCSTR; lpLocalName:LPCSTR):DWORD; external 'mpr' name 'WNetAddConnectionA';
-function WNetAddConnection2A(lpNetResource:LPNETRESOURCE; lpPassword:LPCSTR; lpUserName:LPCSTR; dwFlags:DWORD):DWORD; external 'mpr' name 'WNetAddConnection2A';
-function WNetAddConnection3A(hwndOwner:HWND; lpNetResource:LPNETRESOURCE; lpPassword:LPCSTR; lpUserName:LPCSTR; dwFlags:DWORD):DWORD; external 'mpr' name 'WNetAddConnection3A';
+function WNetAddConnection2A(lpNetResource:LPNETRESOURCEA; lpPassword:LPCSTR; lpUserName:LPCSTR; dwFlags:DWORD):DWORD; external 'mpr' name 'WNetAddConnection2A';
+function WNetAddConnection3A(hwndOwner:HWND; lpNetResource:LPNETRESOURCEA; lpPassword:LPCSTR; lpUserName:LPCSTR; dwFlags:DWORD):DWORD; external 'mpr' name 'WNetAddConnection3A';
 function WNetCancelConnectionA(lpName:LPCSTR; fForce:WINBOOL):DWORD; external 'mpr' name 'WNetCancelConnectionA';
 function WNetCancelConnection2A(lpName:LPCSTR; dwFlags:DWORD; fForce:WINBOOL):DWORD; external 'mpr' name 'WNetCancelConnection2A';
 function WNetGetConnectionA(lpLocalName:LPCSTR; lpRemoteName:LPSTR; lpnLength:LPDWORD):DWORD; external 'mpr' name 'WNetGetConnectionA';
-function WNetUseConnectionA(hwndOwner:HWND; lpNetResource:LPNETRESOURCE; lpUserID:LPCSTR; lpPassword:LPCSTR; dwFlags:DWORD;lpAccessName:LPSTR; lpBufferSize:LPDWORD; lpResult:LPDWORD):DWORD; external 'mpr' name 'WNetUseConnectionA';
+function WNetUseConnectionA(hwndOwner:HWND; lpNetResource:LPNETRESOURCEA; lpUserID:LPCSTR; lpPassword:LPCSTR; dwFlags:DWORD;lpAccessName:LPSTR; lpBufferSize:LPDWORD; lpResult:LPDWORD):DWORD; external 'mpr' name 'WNetUseConnectionA';
 function WNetSetConnectionA(lpName:LPCSTR; dwProperties:DWORD; pvValues:LPVOID):DWORD; external 'mpr' name 'WNetSetConnectionA';
-function WNetConnectionDialog1A(lpConnDlgStruct:LPCONNECTDLGSTRUCT):DWORD; external 'mpr' name 'WNetConnectionDialog1A';
-function WNetDisconnectDialog1A(lpConnDlgStruct:LPDISCDLGSTRUCT):DWORD; external 'mpr' name 'WNetDisconnectDialog1A';
-function WNetOpenEnumA(dwScope:DWORD; dwType:DWORD; dwUsage:DWORD; lpNetResource:LPNETRESOURCE; lphEnum:LPHANDLE):DWORD; external 'mpr' name 'WNetOpenEnumA';
+function WNetConnectionDialog1A(lpConnDlgStruct:LPCONNECTDLGSTRUCTA):DWORD; external 'mpr' name 'WNetConnectionDialog1A';
+function WNetDisconnectDialog1A(lpConnDlgStruct:LPDISCDLGSTRUCTA):DWORD; external 'mpr' name 'WNetDisconnectDialog1A';
+function WNetOpenEnumA(dwScope:DWORD; dwType:DWORD; dwUsage:DWORD; lpNetResource:LPNETRESOURCEA; lphEnum:LPHANDLE):DWORD; external 'mpr' name 'WNetOpenEnumA';
 function WNetEnumResourceA(hEnum:HANDLE; lpcCount:LPDWORD; lpBuffer:LPVOID; lpBufferSize:LPDWORD):DWORD; external 'mpr' name 'WNetEnumResourceA';
 function WNetGetUniversalNameA(lpLocalPath:LPCSTR; dwInfoLevel:DWORD; lpBuffer:LPVOID; lpBufferSize:LPDWORD):DWORD; external 'mpr' name 'WNetGetUniversalNameA';
 function WNetGetUserA(lpName:LPCSTR; lpUserName:LPSTR; lpnLength:LPDWORD):DWORD; external 'mpr' name 'WNetGetUserA';
 function WNetGetProviderNameA(dwNetType:DWORD; lpProviderName:LPSTR; lpBufferSize:LPDWORD):DWORD; external 'mpr' name 'WNetGetProviderNameA';
 function WNetGetNetworkInformationA(lpProvider:LPCSTR; lpNetInfoStruct:LPNETINFOSTRUCT):DWORD; external 'mpr' name 'WNetGetNetworkInformationA';
 function WNetGetLastErrorA(lpError:LPDWORD; lpErrorBuf:LPSTR; nErrorBufSize:DWORD; lpNameBuf:LPSTR; nNameBufSize:DWORD):DWORD; external 'mpr' name 'WNetGetLastErrorA';
-function MultinetGetConnectionPerformanceA(lpNetResource:LPNETRESOURCE; lpNetConnectInfoStruct:LPNETCONNECTINFOSTRUCT):DWORD; external 'mpr' name 'MultinetGetConnectionPerformanceA';
+function MultinetGetConnectionPerformanceA(lpNetResource:LPNETRESOURCEA; lpNetConnectInfoStruct:LPNETCONNECTINFOSTRUCT):DWORD; external 'mpr' name 'MultinetGetConnectionPerformanceA';
 function ChangeServiceConfigA(hService:SC_HANDLE; dwServiceType:DWORD; dwStartType:DWORD; dwErrorControl:DWORD; lpBinaryPathName:LPCSTR;lpLoadOrderGroup:LPCSTR; lpdwTagId:LPDWORD; lpDependencies:LPCSTR; lpServiceStartName:LPCSTR;
   lpPassword:LPCSTR;lpDisplayName:LPCSTR):WINBOOL; external 'advapi32' name 'ChangeServiceConfigA';
 function CreateServiceA(hSCManager:SC_HANDLE; lpServiceName:LPCSTR; lpDisplayName:LPCSTR; dwDesiredAccess:DWORD; dwServiceType:DWORD;dwStartType:DWORD; dwErrorControl:DWORD; lpBinaryPathName:LPCSTR; lpLoadOrderGroup:LPCSTR;
   lpdwTagId:LPDWORD;lpDependencies:LPCSTR; lpServiceStartName:LPCSTR; lpPassword:LPCSTR):SC_HANDLE; external 'advapi32' name 'CreateServiceA';
-function EnumDependentServicesA(hService:SC_HANDLE; dwServiceState:DWORD; lpServices:LPENUM_SERVICE_STATUS; cbBufSize:DWORD; pcbBytesNeeded:LPDWORD;lpServicesReturned:LPDWORD):WINBOOL; external 'advapi32' name 'EnumDependentServicesA';
+function EnumDependentServicesA(hService:SC_HANDLE; dwServiceState:DWORD; lpServices:LPENUM_SERVICE_STATUSA; cbBufSize:DWORD; pcbBytesNeeded:LPDWORD;lpServicesReturned:LPDWORD):WINBOOL; external 'advapi32' name 'EnumDependentServicesA';
 function EnumServicesStatusA(hSCManager:SC_HANDLE; dwServiceType:DWORD; dwServiceState:DWORD; lpServices:LPENUM_SERVICE_STATUSA; cbBufSize:DWORD;pcbBytesNeeded:LPDWORD; lpServicesReturned:LPDWORD; lpResumeHandle:LPDWORD):WINBOOL;
   external 'advapi32' name 'EnumServicesStatusA';
 function GetServiceKeyNameA(hSCManager:SC_HANDLE; lpDisplayName:LPCSTR; lpServiceName:LPSTR; lpcchBuffer:LPDWORD):WINBOOL; external 'advapi32' name 'GetServiceKeyNameA';

+ 431 - 127
rtl/win/wininc/struct.inc

@@ -1607,19 +1607,46 @@ Const
      TCREATETHREADDEBUGINFO = CREATE_THREAD_DEBUG_INFO;
      PCREATETHREADDEBUGINFO = ^CREATE_THREAD_DEBUG_INFO;
 
-     CURRENCYFMT = record
-          NumDigits : UINT;
-          LeadingZero : UINT;
-          Grouping : UINT;
-          lpDecimalSep : LPTSTR;
-          lpThousandSep : LPTSTR;
+     CURRENCYFMTA = record
+          NumDigits     : UINT;
+          LeadingZero   : UINT;
+          Grouping      : UINT;
+          lpDecimalSep  : LPSTR;
+          lpThousandSep : LPSTR;
+          NegativeOrder : UINT;
+          PositiveOrder : UINT;
+          lpCurrencySymbol : LPSTR;
+       end;
+     _currencyfmtA = CURRENCYFMTA;
+     TcurrencyfmtA = CURRENCYFMTA;
+     PcurrencyfmtA = ^CURRENCYFMTA;
+
+     CURRENCYFMTW = record
+          NumDigits     : UINT;
+          LeadingZero   : UINT;
+          Grouping      : UINT;
+          lpDecimalSep  : LPWSTR;
+          lpThousandSep : LPWSTR;
           NegativeOrder : UINT;
           PositiveOrder : UINT;
-          lpCurrencySymbol : LPTSTR;
+          lpCurrencySymbol : LPWSTR;
        end;
-     _currencyfmt = CURRENCYFMT;
-     Tcurrencyfmt = CURRENCYFMT;
-     Pcurrencyfmt = ^CURRENCYFMT;
+
+     _CURRENCYFMTW = CURRENCYFMTW;
+     TCURRENCYFMTW = CURRENCYFMTW;
+     PCURRENCYFMTW = ^CURRENCYFMTW;
+
+     {$ifdef Unicode}
+     _CURRENCYFMT  = CURRENCYFMTW;
+     CURRENCYFMT   = CURRENCYFMTW;
+     TCURRENCYFMT  = CURRENCYFMTW;
+     PCURRENCYFMT  = ^CURRENCYFMTW;
+     {$else}
+     _CURRENCYFMT  = CURRENCYFMTA;
+     CURRENCYFMT   = CURRENCYFMTA;
+     TCURRENCYFMT  = CURRENCYFMTA;
+     PCURRENCYFMT  = ^CURRENCYFMTA;
+     {$endif}
 
      CURSORSHAPE = record
           xHotSpot : longint;
@@ -2292,16 +2319,35 @@ Const
      TDOCINFO2 = DOC_INFO_2;
      PDOCINFO2 = ^DOC_INFO_2;
 
-     DOCINFO = record
+     DOCINFOA = record
           cbSize : longint;
-          lpszDocName : LPCTSTR;
-          lpszOutput : LPCTSTR;
-          lpszDatatype : LPCTSTR;
+          lpszDocName  : LPCSTR;
+          lpszOutput   : LPCSTR;
+          lpszDatatype : LPCSTR;
           fwType : DWORD;
        end;
-     TDOCINFO = DOCINFO;
-     TDOCINFOA = DOCINFO;
-     PDOCINFO = ^DOCINFO;
+     TDOCINFOA = DOCINFOA;
+     PDOCINFOa = ^DOCINFOA;
+
+     DOCINFOW = record
+          cbSize : longint;
+          lpszDocName  : LPCWSTR;
+          lpszOutput   : LPCWSTR;
+          lpszDatatype : LPCWSTR;
+          fwType : DWORD;
+       end;
+     TDOCINFOW = DOCINFOW;
+     PDOCINFOW = ^DOCINFOW;
+
+     {$ifdef Unicode}
+     DOCINFO   = DOCINFOW;
+     TDOCINFO  = DOCINFOW;
+     PDOCINFO  = ^DOCINFOW;
+     {$else}
+     DOCINFO   = DOCINFOA;
+     TDOCINFO  = DOCINFOA;
+     PDOCINFO  = ^DOCINFOA;
+     {$endif}
 
      DRAGLISTINFO = record
           uNotification : UINT;
@@ -3614,16 +3660,6 @@ Const
      TSERVICESTATUS = SERVICE_STATUS;
      PSERVICESTATUS = ^SERVICE_STATUS;
 
-     ENUM_SERVICE_STATUS = record
-          lpServiceName : LPTSTR;
-          lpDisplayName : LPTSTR;
-          ServiceStatus : SERVICE_STATUS;
-       end;
-     LPENUM_SERVICE_STATUS = ^ENUM_SERVICE_STATUS;
-     _ENUM_SERVICE_STATUS = ENUM_SERVICE_STATUS;
-     TENUMSERVICESTATUS = ENUM_SERVICE_STATUS;
-     PENUMSERVICESTATUS = ^ENUM_SERVICE_STATUS;
-
      ENUM_SERVICE_STATUSA= record
           lpServiceName : LPSTR;
           lpDisplayName : LPSTR;
@@ -3644,35 +3680,90 @@ Const
      TENUMSERVICESTATUSW    = ENUM_SERVICE_STATUSW;
      PENUMSERVICESTATUSW    = ^ENUM_SERVICE_STATUSW;
 
-     ENUMLOGFONT = record
-          elfLogFont : LOGFONT;
-          elfFullName : array[0..(LF_FULLFACESIZE)-1] of TCHAR;
-          elfStyle : array[0..(LF_FACESIZE)-1] of TCHAR;
+     {$ifdef Unicode}
+     LPENUM_SERVICE_STATUS = ^ENUM_SERVICE_STATUSW;
+     _ENUM_SERVICE_STATUS  = ENUM_SERVICE_STATUSW;
+     TENUMSERVICESTATUS    = ENUM_SERVICE_STATUSW;
+     ENUMSERVICESTATUS     = ENUM_SERVICE_STATUSW;
+     PENUMSERVICESTATUS    = ^ENUM_SERVICE_STATUSW;
+     {$else}
+     LPENUM_SERVICE_STATUS = ^ENUM_SERVICE_STATUSA;
+     _ENUM_SERVICE_STATUS  = ENUM_SERVICE_STATUSA;
+     TENUMSERVICESTATUS    = ENUM_SERVICE_STATUSA;
+     ENUMSERVICESTATUS     = ENUM_SERVICE_STATUSA;
+     PENUMSERVICESTATUS    = ^ENUM_SERVICE_STATUSA;
+     {$endif}
+
+     ENUMLOGFONTA = record
+          elfLogFont : LOGFONTA;
+          elfFullName : array[0..(LF_FULLFACESIZE)-1] of AnsiCHAR;
+          elfStyle : array[0..(LF_FACESIZE)-1] of AnsiCHAR;
        end;
-     tagENUMLOGFONT = ENUMLOGFONT;
-     TENUMLOGFONT = ENUMLOGFONT;
-     PENUMLOGFONT = ^ENUMLOGFONT;
+     tagENUMLOGFONTA =  ENUMLOGFONTA;
+     TENUMLOGFONTA   =  ENUMLOGFONTA;
+     PENUMLOGFONTA   = ^ENUMLOGFONTA;
 
-     ENUMLOGFONTEX = record
-          elfLogFont : LOGFONT;
-          elfFullName : array[0..(LF_FULLFACESIZE)-1] of TCHAR;
-          elfStyle : array[0..(LF_FACESIZE)-1] of TCHAR;
-          elfScript : array[0..(LF_FACESIZE)-1] of TCHAR;
-       end;
-     tagENUMLOGFONTEX = ENUMLOGFONTEX;
-     TENUMLOGFONTEX = ENUMLOGFONTEX;
-     PENUMLOGFONTEX = ^ENUMLOGFONTEX;
-  {
-    Then follow:
-
-    TCHAR SourceName[]
-    TCHAR Computername[]
-    SID   UserSid
-    TCHAR Strings[]
-    BYTE  Data[]
-    CHAR  Pad[]
-    DWORD Length;
-   }
+     ENUMLOGFONTW = record
+          elfLogFont : LOGFONTW;
+          elfFullName : array[0..(LF_FULLFACESIZE)-1] of WCHAR;
+          elfStyle : array[0..(LF_FACESIZE)-1] of WCHAR;
+       end;
+     tagENUMLOGFONTW = ENUMLOGFONTW;
+     TENUMLOGFONTW   = ENUMLOGFONTW;
+     PENUMLOGFONTW   = ^ENUMLOGFONTW;
+     {$ifdef Unicode}
+     tagENUMLOGFONT  = ENUMLOGFONTW;
+     TENUMLOGFONT    = ENUMLOGFONTW;
+     ENUMLOGFONT     = ENUMLOGFONTW;
+     PENUMLOGFONT    = ^ENUMLOGFONTW;
+     {$else}
+     tagENUMLOGFONT  = ENUMLOGFONTA;
+     TENUMLOGFONT    = ENUMLOGFONTA;
+     ENUMLOGFONT     = ENUMLOGFONTA;
+     PENUMLOGFONT    = ^ENUMLOGFONTA;
+     {$endif}
+     ENUMLOGFONTEXA = record
+          elfLogFont : LOGFONTA;
+          elfFullName : array[0..(LF_FULLFACESIZE)-1] of AnsiCHAR;
+          elfStyle : array[0..(LF_FACESIZE)-1] of AnsiCHAR;
+          elfScript : array[0..(LF_FACESIZE)-1] of AnsiCHAR;
+       end;
+     tagENUMLOGFONTEXA = ENUMLOGFONTEXA;
+     TENUMLOGFONTEXA   = ENUMLOGFONTEXA;
+     PENUMLOGFONTEXA   = ^ENUMLOGFONTEXA;
+
+     ENUMLOGFONTEXW = record
+          elfLogFont : LOGFONTW;
+          elfFullName : array[0..(LF_FULLFACESIZE)-1] of WCHAR;
+          elfStyle : array[0..(LF_FACESIZE)-1] of WCHAR;
+          elfScript : array[0..(LF_FACESIZE)-1] of WCHAR;
+       end;
+          {
+            Then follow:
+
+            TCHAR SourceName[]
+            TCHAR Computername[]
+            SID   UserSid
+            TCHAR Strings[]
+            BYTE  Data[]
+            CHAR  Pad[]
+            DWORD Length;
+           }
+     tagENUMLOGFONTEXW = ENUMLOGFONTEXW;
+     TENUMLOGFONTEXW   = ENUMLOGFONTEXW;
+     PENUMLOGFONTEXW   = ^ENUMLOGFONTEXW;
+
+     {$ifdef Unicode}
+     tagENUMLOGFONTEX  = ENUMLOGFONTEXW;
+     ENUMLOGFONTEX     = ENUMLOGFONTEXW;
+     TENUMLOGFONTEX    = ENUMLOGFONTEXW;
+     PENUMLOGFONTEX    = ^ENUMLOGFONTEXW;
+     {$else}
+     tagENUMLOGFONTEX  = ENUMLOGFONTEXA;
+     ENUMLOGFONTEX     = ENUMLOGFONTEXA;
+     TENUMLOGFONTEX    = ENUMLOGFONTEXA;
+     PENUMLOGFONTEX    = ^ENUMLOGFONTEXA;
+     {$endif}
 
      EVENTLOGRECORD = record
           Length : DWORD;
@@ -3940,9 +4031,25 @@ Const
      Tformatrange = FORMATRANGE;
      Pformatrange = ^FORMATRANGE;
 
-     GCP_RESULTS = record
+     GCP_RESULTSA = record
+          lStructSize : DWORD;
+          lpOutString : LPSTR;
+          lpOrder : ^UINT;
+          lpDx : ^WINT;
+          lpCaretPos : ^WINT;
+          lpClass : LPSTR;           { Unicode-independent, i.e. not LPTSTR }
+          lpGlyphs : LPWSTR;         { Unicode-independent }
+          nGlyphs : UINT;
+          nMaxFit : WINT;
+       end;
+     LPGCP_RESULTSA = ^GCP_RESULTSA;
+     tagGCP_RESULTSA= GCP_RESULTSA;
+     TGCPRESULTSA   = GCP_RESULTSA;
+     PGCPRESULTSA   = ^GCP_RESULTSA;
+
+     GCP_RESULTSW = record
           lStructSize : DWORD;
-          lpOutString : LPTSTR;
+          lpOutString : LPWSTR;
           lpOrder : ^UINT;
           lpDx : ^WINT;
           lpCaretPos : ^WINT;
@@ -3951,10 +4058,24 @@ Const
           nGlyphs : UINT;
           nMaxFit : WINT;
        end;
-     LPGCP_RESULTS = ^GCP_RESULTS;
-     tagGCP_RESULTS = GCP_RESULTS;
-     TGCPRESULTS = GCP_RESULTS;
-     PGCPRESULTS = ^GCP_RESULTS;
+     LPGCP_RESULTSW  = ^GCP_RESULTSW;
+     tagGCP_RESULTSW = GCP_RESULTSW;
+     TGCPRESULTSW    = GCP_RESULTSW;
+     PGCPRESULTSW    = ^GCP_RESULTSW;
+
+     {$ifdef Unicode}
+     LPGCP_RESULTS   = ^GCP_RESULTSW;
+     tagGCP_RESULTS  = GCP_RESULTSW;
+     TGCPRESULTS     = GCP_RESULTSW;
+     GCPRESULTS      = GCP_RESULTSW;
+     PGCPRESULTS     = ^GCP_RESULTSW;
+     {$else}
+     LPGCP_RESULTS   = ^GCP_RESULTSA;
+     tagGCP_RESULTS  = GCP_RESULTSA;
+     TGCPRESULTS     = GCP_RESULTSA;
+     GCPRESULTS      = GCP_RESULTSA;
+     PGCPRESULTS     = ^GCP_RESULTSA;
+     {$endif}
 
      GENERIC_MAPPING = record
           GenericRead : ACCESS_MASK;
@@ -5078,22 +5199,49 @@ Const
      TNDDESHAREINFO = NDDESHAREINFO;
      PNDDESHAREINFO = ^NDDESHAREINFO;
 
-     NETRESOURCE = record
+     NETRESOURCEA = record
           dwScope : DWORD;
           dwType : DWORD;
           dwDisplayType : DWORD;
           dwUsage : DWORD;
-          lpLocalName : LPTSTR;
-          lpRemoteName : LPTSTR;
-          lpComment : LPTSTR;
-          lpProvider : LPTSTR;
+          lpLocalName : LPSTR;
+          lpRemoteName : LPSTR;
+          lpComment : LPSTR;
+          lpProvider : LPSTR;
        end;
-     LPNETRESOURCE = ^NETRESOURCE;
-     _NETRESOURCE = NETRESOURCE;
-     TNETRESOURCE = NETRESOURCE;
-     TNETRESOURCEA = NETRESOURCE;
-     PNETRESOURCE = ^NETRESOURCE;
-     PNETRESOURCEA = ^NETRESOURCE;
+     LPNETRESOURCEA = ^NETRESOURCEA;
+     _NETRESOURCEA  = NETRESOURCEA;
+     TNETRESOURCEA  = NETRESOURCEA;
+     PNETRESOURCEA  = ^NETRESOURCEA;
+
+     NETRESOURCEW = record
+          dwScope : DWORD;
+          dwType : DWORD;
+          dwDisplayType : DWORD;
+          dwUsage : DWORD;
+          lpLocalName : LPWSTR;
+          lpRemoteName : LPWSTR;
+          lpComment : LPWSTR;
+          lpProvider : LPWSTR;
+       end;
+     LPNETRESOURCEW = ^NETRESOURCEW;
+     _NETRESOURCEW = NETRESOURCEW;
+     TNETRESOURCEW = NETRESOURCEW;
+     PNETRESOURCEW = ^NETRESOURCEW;
+
+     {$ifdef Unicode}
+     LPNETRESOURCE = ^NETRESOURCEW;
+     _NETRESOURCE  = NETRESOURCEW;
+     TNETRESOURCE  = NETRESOURCEW;
+     NETRESOURCE   = NETRESOURCEW;
+     PNETRESOURCE  = ^NETRESOURCEW;
+     {$else}
+     LPNETRESOURCE = ^NETRESOURCEA;
+     _NETRESOURCE  = NETRESOURCEA;
+     TNETRESOURCE  = NETRESOURCEA;
+     NETRESOURCE   = NETRESOURCEA;
+     PNETRESOURCE  = ^NETRESOURCEA;
+     {$endif}
 
      NEWCPLINFOA = record
           dwSize : DWORD;
@@ -5379,17 +5527,41 @@ Const
      TNSSERVICEINFO = NS_SERVICE_INFO;
      PNSSERVICEINFO = ^NS_SERVICE_INFO;
 
-     NUMBERFMT = record
+     NUMBERFMTA = record
           NumDigits : UINT;
           LeadingZero : UINT;
           Grouping : UINT;
-          lpDecimalSep : LPTSTR;
-          lpThousandSep : LPTSTR;
+          lpDecimalSep : LPSTR;
+          lpThousandSep : LPSTR;
           NegativeOrder : UINT;
        end;
-     _numberfmt = NUMBERFMT;
-     Tnumberfmt = NUMBERFMT;
-     Pnumberfmt = ^NUMBERFMT;
+     _numberfmtA = NUMBERFMTA;
+     TnumberfmtA = NUMBERFMTA;
+     PnumberfmtA = ^NUMBERFMTA;
+
+     NUMBERFMTW = record
+          NumDigits : UINT;
+          LeadingZero : UINT;
+          Grouping : UINT;
+          lpDecimalSep : LPWSTR;
+          lpThousandSep : LPWSTR;
+          NegativeOrder : UINT;
+       end;
+     _numberfmtW = NUMBERFMTW;
+     TnumberfmtW = NUMBERFMTW;
+     PnumberfmtW = ^NUMBERFMTW;
+
+     {$ifdef Unicode}
+     _NUMBERFMT = NUMBERFMTW;
+     TNUMBERFMT = NUMBERFMTW;
+     NUMBERFMT  = NUMBERFMTW;
+     PNUMBERFMT = ^NUMBERFMTW;
+     {$else}
+     _NUMBERFMT = NUMBERFMTA;
+     TNUMBERFMT = NUMBERFMTA;
+     NUMBERFMT  = NUMBERFMTA;
+     PNUMBERFMT = ^NUMBERFMTA;
+     {$endif}
 
      OFSTRUCT = record
           cBytes : BYTE;
@@ -5572,7 +5744,6 @@ Const
      TTEXTMETRICW = TEXTMETRICW;
      PTEXTMETRICW = ^TEXTMETRICW;
 
-
      {$IFNDEF UNICODE}
        LPTEXTMETRIC       = ^TEXTMETRICA;
        _TEXTMETRIC        = TEXTMETRICA;
@@ -5823,18 +5994,43 @@ Const
      TPERFOBJECTTYPE = PERF_OBJECT_TYPE;
      PPERFOBJECTTYPE = ^PERF_OBJECT_TYPE;
 
-     POLYTEXT = record
+     POLYTEXTA = record
+          x : longint;
+          y : longint;
+          n : UINT;
+          lpstr : LPCSTR;
+          uiFlags : UINT;
+          rcl : RECT;
+          pdx : ^longint;
+       end;
+     _POLYTEXTA = POLYTEXTA;
+     TPOLYTEXTA = POLYTEXTA;
+     PPOLYTEXTA = ^POLYTEXTA;
+
+     POLYTEXTW = record
           x : longint;
           y : longint;
           n : UINT;
-          lpstr : LPCTSTR;
+          lpstr : LPCWSTR;
           uiFlags : UINT;
           rcl : RECT;
           pdx : ^longint;
        end;
-     _POLYTEXT = POLYTEXT;
-     TPOLYTEXT = POLYTEXT;
-     PPOLYTEXT = ^POLYTEXT;
+     _POLYTEXTW = POLYTEXTW;
+     TPOLYTEXTW = POLYTEXTW;
+     PPOLYTEXTW = ^POLYTEXTW;
+
+     {$ifdef unicode}
+     _POLYTEXT = POLYTEXTW;
+     TPOLYTEXT = POLYTEXTW;
+     POLYTEXT  = POLYTEXTW;
+     PPOLYTEXT = ^POLYTEXTW;
+     {$else}
+     _POLYTEXT = POLYTEXTA;
+     TPOLYTEXT = POLYTEXTA;
+     POLYTEXT  = POLYTEXTA;
+     PPOLYTEXT = ^POLYTEXTA;
+     {$endif}
 
      PORT_INFO_1 = record
           pName : LPTSTR;
@@ -6228,17 +6424,6 @@ Const
      TQUERYSERVICECONFIGW    = QUERY_SERVICE_CONFIGW;
      PQUERYSERVICECONFIGW    = ^QUERY_SERVICE_CONFIGW;
 
-
-     QUERY_SERVICE_LOCK_STATUS = record
-          fIsLocked : DWORD;
-          lpLockOwner : LPTSTR;
-          dwLockDuration : DWORD;
-       end;
-     LPQUERY_SERVICE_LOCK_STATUS = ^QUERY_SERVICE_LOCK_STATUS;
-     _QUERY_SERVICE_LOCK_STATUS = QUERY_SERVICE_LOCK_STATUS;
-     TQUERYSERVICELOCKSTATUS = QUERY_SERVICE_LOCK_STATUS;
-     PQUERYSERVICELOCKSTATUS = ^QUERY_SERVICE_LOCK_STATUS;
-
      QUERY_SERVICE_LOCK_STATUSA = record
           fIsLocked : DWORD;
           lpLockOwner : LPSTR;
@@ -6258,6 +6443,19 @@ Const
      _QUERY_SERVICE_LOCK_STATUSW = QUERY_SERVICE_LOCK_STATUSW;
      TQUERYSERVICELOCKSTATUSW = QUERY_SERVICE_LOCK_STATUSW;
      PQUERYSERVICELOCKSTATUSW = ^QUERY_SERVICE_LOCK_STATUSW;
+     {$ifdef Unicode}
+     LPQUERY_SERVICE_LOCK_STATUS = ^QUERY_SERVICE_LOCK_STATUSW;
+     _QUERY_SERVICE_LOCK_STATUS  = QUERY_SERVICE_LOCK_STATUSW;
+     QUERY_SERVICE_LOCK_STATUS   = QUERY_SERVICE_LOCK_STATUSW;
+     TQUERYSERVICELOCKSTATUS     = QUERY_SERVICE_LOCK_STATUSW;
+     PQUERYSERVICELOCKSTATUS     = ^QUERY_SERVICE_LOCK_STATUSW;
+     {$else}
+     LPQUERY_SERVICE_LOCK_STATUS = ^QUERY_SERVICE_LOCK_STATUSA;
+     _QUERY_SERVICE_LOCK_STATUS  = QUERY_SERVICE_LOCK_STATUSA;
+     QUERY_SERVICE_LOCK_STATUS   = QUERY_SERVICE_LOCK_STATUSA;
+     TQUERYSERVICELOCKSTATUS     = QUERY_SERVICE_LOCK_STATUSA;
+     PQUERYSERVICELOCKSTATUS     = ^QUERY_SERVICE_LOCK_STATUSA;
+     {$endif}
 
      RASAMBA = record
           dwSize : DWORD;
@@ -7358,17 +7556,41 @@ Const
      TTOOLINFO = TOOLINFO;
      PTOOLINFO = ^TOOLINFO;
 
-     TOOLTIPTEXT = record
+     TOOLTIPTEXTA = record
           hdr : NMHDR;
-          lpszText : LPTSTR;
-          szText : array[0..79] of TCHAR;
+          lpszText : LPSTR;
+          szText : array[0..79] of AnsiCHAR;
+          hinst : HINST;
+          uFlags : UINT;
+          lParam : LPARAM;
+       end;
+     LPTOOLTIPTEXTA = ^TOOLTIPTEXTA;
+     TTOOLTIPTEXTA  = TOOLTIPTEXTA;
+     PTOOLTIPTEXTA  = ^TOOLTIPTEXTA;
+
+     TOOLTIPTEXTW = record
+          hdr : NMHDR;
+          lpszText : LPWSTR;
+          szText : array[0..79] of WideCHAR;
           hinst : HINST;
           uFlags : UINT;
           lParam : LPARAM;
        end;
-     LPTOOLTIPTEXT = ^TOOLTIPTEXT;
-     TTOOLTIPTEXT = TOOLTIPTEXT;
-     PTOOLTIPTEXT = ^TOOLTIPTEXT;
+     LPTOOLTIPTEXTW = ^TOOLTIPTEXTW;
+     TTOOLTIPTEXTW  = TOOLTIPTEXTW;
+     PTOOLTIPTEXTW  = ^TOOLTIPTEXTW;
+
+     {$ifdef Unicode}
+     LPTOOLTIPTEXT  = ^TOOLTIPTEXTW;
+     TOOLTIPTEXT    = TOOLTIPTEXTW;
+     TTOOLTIPTEXT   = TOOLTIPTEXTW;
+     PTOOLTIPTEXT   = ^TOOLTIPTEXTW;
+     {$else}
+     LPTOOLTIPTEXT  = ^TOOLTIPTEXTA;
+     TOOLTIPTEXT    = TOOLTIPTEXTA;
+     TTOOLTIPTEXT   = TOOLTIPTEXTA;
+     PTOOLTIPTEXT   = ^TOOLTIPTEXTA;
+     {$endif}
 
      TPMPARAMS = record
           cbSize : UINT;
@@ -7506,14 +7728,33 @@ Const
      TUSEROBJECTFLAGS = USEROBJECTFLAGS;
      PUSEROBJECTFLAGS = ^USEROBJECTFLAGS;
 
-     VALENT = record
-          ve_valuename : LPTSTR;
+     VALENTA = record
+          ve_valuename : LPSTR;
+          ve_valuelen : DWORD;
+          ve_valueptr : DWORD_PTR;
+          ve_type : DWORD;
+       end;
+     TVALENTA = VALENTA;
+     PVALENTA = ^VALENTA;
+
+     VALENTW = record
+          ve_valuename : LPWSTR;
           ve_valuelen : DWORD;
           ve_valueptr : DWORD_PTR;
           ve_type : DWORD;
        end;
-     TVALENT = VALENT;
-     PVALENT = ^VALENT;
+     TVALENTW = VALENTW;
+     PVALENTW = ^VALENTW;
+
+     {$ifdef Unicode}
+     VALENT  = VALENTW;
+     TVALENT = VALENTW;
+     PVALENT = ^VALENTW;
+     {$else}
+     VALENT  = VALENTA;
+     TVALENT = VALENTA;
+     PVALENT = ^VALENTA;
+     {$endif}
 
      value_ent = VALENT;
      Tvalue_ent = VALENT;
@@ -7722,30 +7963,80 @@ Const
      WNDClassEx    = WNDClassExA;
      {$endif}
 
-     CONNECTDLGSTRUCT = record
+     CONNECTDLGSTRUCTA = record
+          cbStructure : DWORD;
+          hwndOwner   : HWND;
+          lpConnRes   : LPNETRESOURCEA;
+          dwFlags     : DWORD;
+          dwDevNum    : DWORD;
+       end;
+     LPCONNECTDLGSTRUCTA = ^CONNECTDLGSTRUCTA;
+     _CONNECTDLGSTRUCTA  = CONNECTDLGSTRUCTA;
+     TCONNECTDLGSTRUCTA  = CONNECTDLGSTRUCTA;
+     PCONNECTDLGSTRUCTA  = ^CONNECTDLGSTRUCTA;
+
+     CONNECTDLGSTRUCTW = record
+          cbStructure : DWORD;
+          hwndOwner   : HWND;
+          lpConnRes   : LPNETRESOURCEW;
+          dwFlags     : DWORD;
+          dwDevNum    : DWORD;
+       end;
+     LPCONNECTDLGSTRUCTW = ^CONNECTDLGSTRUCTW;
+     _CONNECTDLGSTRUCTW = CONNECTDLGSTRUCTW;
+     TCONNECTDLGSTRUCTW = CONNECTDLGSTRUCTW;
+     PCONNECTDLGSTRUCTW = ^CONNECTDLGSTRUCTW;
+
+     {$ifdef Unicode}
+     LPCONNECTDLGSTRUCT = ^CONNECTDLGSTRUCTW;
+     _CONNECTDLGSTRUCT  = CONNECTDLGSTRUCTW;
+     CONNECTDLGSTRUCT   = CONNECTDLGSTRUCTW;
+     TCONNECTDLGSTRUCT  = CONNECTDLGSTRUCTW;
+     PCONNECTDLGSTRUCT  = ^CONNECTDLGSTRUCTW;
+     {$else}
+     LPCONNECTDLGSTRUCT = ^CONNECTDLGSTRUCTA;
+     _CONNECTDLGSTRUCT  = CONNECTDLGSTRUCTA;
+     CONNECTDLGSTRUCT   = CONNECTDLGSTRUCTA;
+     TCONNECTDLGSTRUCT  = CONNECTDLGSTRUCTA;
+     PCONNECTDLGSTRUCT  = ^CONNECTDLGSTRUCTA;
+     {$endif}
+
+     DISCDLGSTRUCTA = record
           cbStructure : DWORD;
           hwndOwner : HWND;
-          lpConnRes : LPNETRESOURCE;
+          lpLocalName : LPSTR;
+          lpRemoteName : LPSTR;
           dwFlags : DWORD;
-          dwDevNum : DWORD;
        end;
-     LPCONNECTDLGSTRUCT = ^CONNECTDLGSTRUCT;
-     _CONNECTDLGSTRUCT = CONNECTDLGSTRUCT;
-     TCONNECTDLGSTRUCT = CONNECTDLGSTRUCT;
-     PCONNECTDLGSTRUCT = ^CONNECTDLGSTRUCT;
+     LPDISCDLGSTRUCTA = ^DISCDLGSTRUCTA;
+     _DISCDLGSTRUCTA  = DISCDLGSTRUCTA;
+     TDISCDLGSTRUCTA  = DISCDLGSTRUCTA;
+     PDISCDLGSTRUCTA  = ^DISCDLGSTRUCTA;
 
-     DISCDLGSTRUCT = record
+     DISCDLGSTRUCTW = record
           cbStructure : DWORD;
           hwndOwner : HWND;
-          lpLocalName : LPTSTR;
-          lpRemoteName : LPTSTR;
+          lpLocalName : LPWSTR;
+          lpRemoteName : LPWSTR;
           dwFlags : DWORD;
        end;
-     LPDISCDLGSTRUCT = ^DISCDLGSTRUCT;
-     _DISCDLGSTRUCT = DISCDLGSTRUCT;
-     TDISCDLGSTRUCT = DISCDLGSTRUCT;
-     TDISCDLGSTRUCTA = DISCDLGSTRUCT;
-     PDISCDLGSTRUCT = ^DISCDLGSTRUCT;
+     LPDISCDLGSTRUCTW = ^DISCDLGSTRUCTW;
+     _DISCDLGSTRUCTW  = DISCDLGSTRUCTW;
+     TDISCDLGSTRUCTW  = DISCDLGSTRUCTW;
+     PDISCDLGSTRUCTW  = ^DISCDLGSTRUCTW;
+     {$ifdef Unicode}
+     LPDISCDLGSTRUCT = ^DISCDLGSTRUCTW;
+     _DISCDLGSTRUCT  = DISCDLGSTRUCTW;
+     TDISCDLGSTRUCT  = DISCDLGSTRUCTW;
+     DISCDLGSTRUCT   = DISCDLGSTRUCTW;
+     PDISCDLGSTRUCT  = ^DISCDLGSTRUCTW;
+     {$else}
+     LPDISCDLGSTRUCT = ^DISCDLGSTRUCTA;
+     _DISCDLGSTRUCT  = DISCDLGSTRUCTA;
+     TDISCDLGSTRUCT  = DISCDLGSTRUCTA;
+     DISCDLGSTRUCT   = DISCDLGSTRUCTA;
+     PDISCDLGSTRUCT  = ^DISCDLGSTRUCTA;
+     {$endif}
 
      NETINFOSTRUCT = record
           cbStructure : DWORD;
@@ -7779,10 +8070,15 @@ Const
      ENHMETAFILEPROC = function (_para1:HDC; _para2:HANDLETABLE; _para3:ENHMETARECORD; _para4:longint; _para5:LPARAM):longint;stdcall;
 
      ENUMFONTSPROC = function (_para1:LPLOGFONT; _para2:LPTEXTMETRIC; _para3:DWORD; _para4:LPARAM):longint;stdcall;
+     ENUMFONTSPROCA= function (_para1:LPLOGFONTA; _para2:LPTEXTMETRICA; _para3:DWORD; _para4:LPARAM):longint;stdcall;
+     ENUMFONTSPROCW= function (_para1:LPLOGFONTW; _para2:LPTEXTMETRICW; _para3:DWORD; _para4:LPARAM):longint;stdcall;
 
-     FONTENUMPROC = function (var _para1:ENUMLOGFONT; var _para2:NEWTEXTMETRIC; _para3:longint; _para4:LPARAM):longint;stdcall;
-
+     FONTENUMPROC   = function (var _para1:ENUMLOGFONT; var _para2:NEWTEXTMETRIC; _para3:longint; _para4:LPARAM):longint;stdcall;
+     FONTENUMPROCA  = function (var _para1:ENUMLOGFONTA; var _para2:NEWTEXTMETRICA; _para3:longint; _para4:LPARAM):longint;stdcall;
+     FONTENUMPROCW  = function (var _para1:ENUMLOGFONTW; var _para2:NEWTEXTMETRICW; _para3:longint; _para4:LPARAM):longint;stdcall;
      FONTENUMEXPROC = function (var _para1:ENUMLOGFONTEX;var _para2:NEWTEXTMETRICEX; _para3:longint; _para4:LPARAM):longint;stdcall;
+     FONTENUMEXPROCA= function (var _para1:ENUMLOGFONTEXA;var _para2:NEWTEXTMETRICEX; _para3:longint; _para4:LPARAM):longint;stdcall;
+     FONTENUMEXPROCW= function (var _para1:ENUMLOGFONTEXW;var _para2:NEWTEXTMETRICEX; _para3:longint; _para4:LPARAM):longint;stdcall;
 
      LPOVERLAPPED_COMPLETION_ROUTINE = procedure (_para1:DWORD; _para2:DWORD; _para3:LPOVERLAPPED);stdcall;
 
@@ -8036,7 +8332,9 @@ Const
                  //guidItem : TGUID;     // #if (_WIN32_IE >= 0x600)}
                 );
      end;
-     _NOTIFYICONDATA = _NOTIFYICONDATAA;
+     TNotifyIconDataA = _NOTIFYICONDATAA;
+     NOTIFYICONDATAA = _NOTIFYICONDATAA;
+     PNotifyIconDataA = ^TNotifyIconDataA;
 
      _NOTIFYICONDATAW = record
          cbSize: DWORD;
@@ -8057,15 +8355,21 @@ Const
                 //guidItem : TGUID;     // #if (_WIN32_IE >= 0x600)}
                );
      end;
-     TNotifyIconDataA = _NOTIFYICONDATAA;
      TNotifyIconDataW = _NOTIFYICONDATAW;
-     TNotifyIconData = TNotifyIconDataA;
-     NOTIFYICONDATAA = _NOTIFYICONDATAA;
      NOTIFYICONDATAW = _NOTIFYICONDATAW;
-     NOTIFYICONDATA = NOTIFYICONDATAA;
-     PNotifyIconDataA = ^TNotifyIconDataA;
      PNotifyIconDataW = ^TNotifyIconDataW;
+
+     {$ifdef Unicode}
+     _NOTIFYICONDATA = _NOTIFYICONDATAW;
+     TNotifyIconData = TNotifyIconDataW;
+     NOTIFYICONDATA  = NOTIFYICONDATAW;
+     PNotifyIconData = PNotifyIconDataW;
+     {$else}
+     _NOTIFYICONDATA = _NOTIFYICONDATAA;
+     TNotifyIconData = TNotifyIconDataA;
+     NOTIFYICONDATA  = NOTIFYICONDATAA;
      PNotifyIconData = PNotifyIconDataA;
+     {$endif}
 
      TWOHandleArray = array[0..MAXIMUM_WAIT_OBJECTS-1] of HANDLE;
      PWOHandleArray = ^TWOHandleArray;

+ 29 - 29
rtl/win/wininc/unifun.inc

@@ -302,10 +302,10 @@ function CreateFontW(_para1:longint; _para2:longint; _para3:longint; _para4:long
 function CreateICW(_para1:LPCWSTR; _para2:LPCWSTR; _para3:LPCWSTR; _para4:LPDEVMODEw):HDC; external 'gdi32' name 'CreateICW';
 function CreateMetaFileW(_para1:LPCWSTR):HDC; external 'gdi32' name 'CreateMetaFileW';
 function CreateScalableFontResourceW(_para1:DWORD; _para2:LPCWSTR; _para3:LPCWSTR; _para4:LPCWSTR):WINBOOL; external 'gdi32' name 'CreateScalableFontResourceW';
-function EnumFontFamiliesExW(_para1:HDC; _para2:LPLOGFONT; _para3:FONTENUMEXPROC; _para4:LPARAM; _para5:DWORD):longint; external 'gdi32' name 'EnumFontFamiliesExW';
-function EnumFontFamiliesW(_para1:HDC; _para2:LPCWSTR; _para3:FONTENUMPROC; _para4:LPARAM):longint; external 'gdi32' name 'EnumFontFamiliesW';
-function EnumFontsW(_para1:HDC; _para2:LPCWSTR; _para3:ENUMFONTSPROC; _para4:LPARAM):longint; external 'gdi32' name 'EnumFontsW';
-function EnumFontsW(_para1:HDC; _para2:LPCWSTR; _para3:ENUMFONTSPROC; _para4:pointer):longint; external 'gdi32' name 'EnumFontsW';
+function EnumFontFamiliesExW(_para1:HDC; _para2:LPLOGFONTW; _para3:FONTENUMEXPROCW; _para4:LPARAM; _para5:DWORD):longint; external 'gdi32' name 'EnumFontFamiliesExW';
+function EnumFontFamiliesW(_para1:HDC; _para2:LPCWSTR; _para3:FONTENUMPROCW; _para4:LPARAM):longint; external 'gdi32' name 'EnumFontFamiliesW';
+function EnumFontsW(_para1:HDC; _para2:LPCWSTR; _para3:ENUMFONTSPROCW; _para4:LPARAM):longint; external 'gdi32' name 'EnumFontsW';
+function EnumFontsW(_para1:HDC; _para2:LPCWSTR; _para3:ENUMFONTSPROCW; _para4:pointer):longint; external 'gdi32' name 'EnumFontsW';
 function GetCharWidthW(_para1:HDC; _para2:UINT; _para3:UINT; _para4:LPINT):WINBOOL; external 'gdi32' name 'GetCharWidthW';
 function GetCharWidth32W(_para1:HDC; _para2:UINT; _para3:UINT; _para4:LPINT):WINBOOL; external 'gdi32' name 'GetCharWidth32W';
 function GetCharWidthFloatW(_para1:HDC; _para2:UINT; _para3:UINT; _para4:PSingle):WINBOOL; external 'gdi32' name 'GetCharWidthFloatW';
@@ -313,31 +313,31 @@ function GetCharABCWidthsW(_para1:HDC; _para2:UINT; _para3:UINT; _para4:LPABC):W
 function GetCharABCWidthsFloatW(_para1:HDC; _para2:UINT; _para3:UINT; _para4:LPABCFLOAT):WINBOOL; external 'gdi32' name 'GetCharABCWidthsFloatW';
 function GetGlyphOutlineW(_para1:HDC; _para2:UINT; _para3:UINT; _para4:LPGLYPHMETRICS; _para5:DWORD;_para6:LPVOID; _para7:PMAT2):DWORD; external 'gdi32' name 'GetGlyphOutlineW';
 function GetMetaFileW(_para1:LPCWSTR):HMETAFILE; external 'gdi32' name 'GetMetaFileW';
-function GetOutlineTextMetricsW(_para1:HDC; _para2:UINT; _para3:LPOUTLINETEXTMETRIC):UINT; external 'gdi32' name 'GetOutlineTextMetricsW';
+function GetOutlineTextMetricsW(_para1:HDC; _para2:UINT; _para3:LPOUTLINETEXTMETRICW):UINT; external 'gdi32' name 'GetOutlineTextMetricsW';
 function GetTextExtentPointW(_para1:HDC; _para2:LPCWSTR; _para3:longint; _para4:LPSIZE):WINBOOL; external 'gdi32' name 'GetTextExtentPointW';
 function GetTextExtentPoint32W(_para1:HDC; _para2:LPCWSTR; _para3:longint; _para4:LPSIZE):WINBOOL; external 'gdi32' name 'GetTextExtentPoint32W';
 function GetTextExtentExPointW(_para1:HDC; _para2:LPCWSTR; _para3:longint; _para4:longint; _para5:LPINT;_para6:LPINT; _para7:LPSIZE):WINBOOL; external 'gdi32' name 'GetTextExtentExPointW';
-function GetCharacterPlacementW(_para1:HDC; _para2:LPCWSTR; _para3:longint; _para4:longint; _para5:LPGCP_RESULTS;_para6:DWORD):DWORD; external 'gdi32' name 'GetCharacterPlacementW';
+function GetCharacterPlacementW(_para1:HDC; _para2:LPCWSTR; _para3:longint; _para4:longint; _para5:LPGCP_RESULTSW;_para6:DWORD):DWORD; external 'gdi32' name 'GetCharacterPlacementW';
 function ResetDCW(_para1:HDC; _para2:LPDEVMODEW):HDC; external 'gdi32' name 'ResetDCW';
 function RemoveFontResourceW(_para1:LPCWSTR):WINBOOL; external 'gdi32' name 'RemoveFontResourceW';
 function CopyEnhMetaFileW(_para1:HENHMETAFILE; _para2:LPCWSTR):HENHMETAFILE; external 'gdi32' name 'CopyEnhMetaFileW';
 function CreateEnhMetaFileW(_para1:HDC; _para2:LPCWSTR; _para3:LPRECT; _para4:LPCWSTR):HDC; external 'gdi32' name 'CreateEnhMetaFileW';
 function GetEnhMetaFileW(_para1:LPCWSTR):HENHMETAFILE; external 'gdi32' name 'GetEnhMetaFileW';
 function GetEnhMetaFileDescriptionW(_para1:HENHMETAFILE; _para2:UINT; _para3:LPWSTR):UINT; external 'gdi32' name 'GetEnhMetaFileDescriptionW';
-function GetTextMetricsW(_para1:HDC; _para2:LPTEXTMETRIC):WINBOOL; external 'gdi32' name 'GetTextMetricsW';
-function StartDocW(_para1:HDC; _para2:PDOCINFO):longint; external 'gdi32' name 'StartDocW';
+function GetTextMetricsW(_para1:HDC; _para2:LPTEXTMETRICW):WINBOOL; external 'gdi32' name 'GetTextMetricsW';
+function StartDocW(_para1:HDC; _para2:PDOCINFOW):longint; external 'gdi32' name 'StartDocW';
 function GetObjectW(_para1:HGDIOBJ; _para2:longint; _para3:LPVOID):longint; external 'gdi32' name 'GetObjectW';
 function TextOutW(_para1:HDC; _para2:longint; _para3:longint; _para4:LPCWSTR; _para5:longint):WINBOOL; external 'gdi32' name 'TextOutW';
 function ExtTextOutW(_para1:HDC; _para2:longint; _para3:longint; _para4:UINT; _para5:LPRECT;_para6:LPCWSTR; _para7:UINT; _para8:LPINT):WINBOOL; external 'gdi32' name 'ExtTextOutW';
-function PolyTextOutW(_para1:HDC; _para2:PPOLYTEXT; _para3:longint):WINBOOL; external 'gdi32' name 'PolyTextOutW';
+function PolyTextOutW(_para1:HDC; _para2:PPOLYTEXTW; _para3:longint):WINBOOL; external 'gdi32' name 'PolyTextOutW';
 function GetTextFaceW(_para1:HDC; _para2:longint; _para3:LPWSTR):longint; external 'gdi32' name 'GetTextFaceW';
 function GetKerningPairsW(_para1:HDC; _para2:DWORD; _para3:LPKERNINGPAIR):DWORD; external 'gdi32' name 'GetKerningPairsW';
-function GetLogColorSpaceW(_para1:HCOLORSPACE; _para2:LPLOGCOLORSPACE; _para3:DWORD):WINBOOL; external 'gdi32' name 'GetLogColorSpaceW';
-function CreateColorSpaceW(_para1:LPLOGCOLORSPACE):HCOLORSPACE; external 'gdi32' name 'CreateColorSpaceW';
+function GetLogColorSpaceW(_para1:HCOLORSPACE; _para2:LPLOGCOLORSPACEW; _para3:DWORD):WINBOOL; external 'gdi32' name 'GetLogColorSpaceW';
+function CreateColorSpaceW(_para1:LPLOGCOLORSPACEW):HCOLORSPACE; external 'gdi32' name 'CreateColorSpaceW';
 function GetICMProfileW(_para1:HDC; _para2:LPDWORD; _para3:LPWSTR):WINBOOL; external 'gdi32' name 'GetICMProfileW';
 function SetICMProfileW(_para1:HDC; _para2:LPWSTR):WINBOOL; external 'gdi32' name 'SetICMProfileW';
 function UpdateICMRegKeyW(_para1:DWORD; _para2:DWORD; _para3:LPWSTR; _para4:UINT):WINBOOL; external 'gdi32' name 'UpdateICMRegKeyW';
-function EnumICMProfilesW(_para1:HDC; _para2:ICMENUMPROC; _para3:LPARAM):longint; external 'gdi32' name 'EnumICMProfilesW';
+function EnumICMProfilesW(_para1:HDC; _para2:ICMENUMPROCW; _para3:LPARAM):longint; external 'gdi32' name 'EnumICMProfilesW';
 {
 function CreatePropertySheetPageW(lppsp:LPCPROPSHEETPAGE):HPROPSHEETPAGE; external 'comctl32' name 'CreatePropertySheetPageW';
 function PropertySheetW(lppsph:LPCPROPSHEETHEADER):longint; external 'comctl32' name 'PropertySheetW';
@@ -381,7 +381,7 @@ function RegRestoreKeyW(hKey:HKEY; lpFile:LPCWSTR; dwFlags:DWORD):LONG; external
 function RegSaveKeyW(hKey:HKEY; lpFile:LPCWSTR; lpSecurityAttributes:LPSECURITY_ATTRIBUTES):LONG; external 'advapi32' name 'RegSaveKeyW';
 function RegSetValueW(hKey:HKEY; lpSubKey:LPCWSTR; dwType:DWORD; lpData:LPCWSTR; cbData:DWORD):LONG; external 'advapi32' name 'RegSetValueW';
 function RegQueryValueW(hKey:HKEY; lpSubKey:LPCWSTR; lpValue:LPWSTR; lpcbValue:PLONG):LONG; external 'advapi32' name 'RegQueryValueW';
-function RegQueryMultipleValuesW(hKey:HKEY; val_list:PVALENT; num_vals:DWORD; lpValueBuf:LPWSTR; ldwTotsize:LPDWORD):LONG; external 'advapi32' name 'RegQueryMultipleValuesW';
+function RegQueryMultipleValuesW(hKey:HKEY; val_list:PVALENTW; num_vals:DWORD; lpValueBuf:LPWSTR; ldwTotsize:LPDWORD):LONG; external 'advapi32' name 'RegQueryMultipleValuesW';
 function RegQueryValueExW(hKey:HKEY; lpValueName:LPCWSTR; lpReserved:LPDWORD; lpType:LPDWORD; lpData:LPBYTE;lpcbData:LPDWORD):LONG; external 'advapi32' name 'RegQueryValueExW';
 function RegReplaceKeyW(hKey:HKEY; lpSubKey:LPCWSTR; lpNewFile:LPCWSTR; lpOldFile:LPCWSTR):LONG; external 'advapi32' name 'RegReplaceKeyW';
 function RegConnectRegistryW(lpMachineName:LPWSTR; hKey:HKEY; phkResult:PHKEY):LONG; external 'advapi32' name 'RegConnectRegistryW';
@@ -404,16 +404,16 @@ function GetLocaleInfoW(Locale:LCID; LCType:LCTYPE; lpLCData:LPWSTR; cchData:lon
 function SetLocaleInfoW(Locale:LCID; LCType:LCTYPE; lpLCData:LPCWSTR):WINBOOL; external 'kernel32' name 'SetLocaleInfoW';
 function GetTimeFormatW(Locale:LCID; dwFlags:DWORD; lpTime:LPSYSTEMTIME; lpFormat:LPCWSTR; lpTimeStr:LPWSTR;cchTime:longint):longint; external 'kernel32' name 'GetTimeFormatW';
 function GetDateFormatW(Locale:LCID; dwFlags:DWORD; lpDate:LPSYSTEMTIME; lpFormat:LPCWSTR; lpDateStr:LPWSTR;cchDate:longint):longint; external 'kernel32' name 'GetDateFormatW';
-function GetNumberFormatW(Locale:LCID; dwFlags:DWORD; lpValue:LPCWSTR; lpFormat:PNUMBERFMT; lpNumberStr:LPWSTR;cchNumber:longint):longint; external 'kernel32' name 'GetNumberFormatW';
-function GetCurrencyFormatW(Locale:LCID; dwFlags:DWORD; lpValue:LPCWSTR; lpFormat:PCURRENCYFMT; lpCurrencyStr:LPWSTR;cchCurrency:longint):longint; external 'kernel32' name 'GetCurrencyFormatW';
-function EnumCalendarInfoW(lpCalInfoEnumProc:CALINFO_ENUMPROC; Locale:LCID; Calendar:CALID; CalType:CALTYPE):WINBOOL; external 'kernel32' name 'EnumCalendarInfoW';
-function EnumTimeFormatsW(lpTimeFmtEnumProc:TIMEFMT_ENUMPROC; Locale:LCID; dwFlags:DWORD):WINBOOL; external 'kernel32' name 'EnumTimeFormatsW';
-function EnumDateFormatsW(lpDateFmtEnumProc:DATEFMT_ENUMPROC; Locale:LCID; dwFlags:DWORD):WINBOOL; external 'kernel32' name 'EnumDateFormatsW';
+function GetNumberFormatW(Locale:LCID; dwFlags:DWORD; lpValue:LPCWSTR; lpFormat:PnumberfmtW; lpNumberStr:LPWSTR;cchNumber:longint):longint; external 'kernel32' name 'GetNumberFormatW';
+function GetCurrencyFormatW(Locale:LCID; dwFlags:DWORD; lpValue:LPCWSTR; lpFormat:PCURRENCYFMTW; lpCurrencyStr:LPWSTR;cchCurrency:longint):longint; external 'kernel32' name 'GetCurrencyFormatW';
+function EnumCalendarInfoW(lpCalInfoEnumProc:CALINFO_ENUMPROCW; Locale:LCID; Calendar:CALID; CalType:CALTYPE):WINBOOL; external 'kernel32' name 'EnumCalendarInfoW';
+function EnumTimeFormatsW(lpTimeFmtEnumProc:TIMEFMT_ENUMPROCW; Locale:LCID; dwFlags:DWORD):WINBOOL; external 'kernel32' name 'EnumTimeFormatsW';
+function EnumDateFormatsW(lpDateFmtEnumProc:DATEFMT_ENUMPROCW; Locale:LCID; dwFlags:DWORD):WINBOOL; external 'kernel32' name 'EnumDateFormatsW';
 function GetStringTypeExW(Locale:LCID; dwInfoType:DWORD; lpSrcStr:LPCWSTR; cchSrc:longint; lpCharType:LPWORD):WINBOOL; external 'kernel32' name 'GetStringTypeExW';
 function GetStringTypeW(dwInfoType:DWORD; lpSrcStr:LPCWSTR; cchSrc:longint; lpCharType:LPWORD):WINBOOL; external 'kernel32' name 'GetStringTypeW';
 function FoldStringW(dwMapFlags:DWORD; lpSrcStr:LPCWSTR; cchSrc:longint; lpDestStr:LPWSTR; cchDest:longint):longint; external 'kernel32' name 'FoldStringW';
-function EnumSystemLocalesW(lpLocaleEnumProc:LOCALE_ENUMPROC; dwFlags:DWORD):WINBOOL; external 'kernel32' name 'EnumSystemLocalesW';
-function EnumSystemCodePagesW(lpCodePageEnumProc:CODEPAGE_ENUMPROC; dwFlags:DWORD):WINBOOL; external 'kernel32' name 'EnumSystemCodePagesW';
+function EnumSystemLocalesW(lpLocaleEnumProc:LOCALE_ENUMPROCW; dwFlags:DWORD):WINBOOL; external 'kernel32' name 'EnumSystemLocalesW';
+function EnumSystemCodePagesW(lpCodePageEnumProc:CODEPAGE_ENUMPROCW; dwFlags:DWORD):WINBOOL; external 'kernel32' name 'EnumSystemCodePagesW';
 function PeekConsoleInputW(hConsoleInput:HANDLE; lpBuffer:PINPUTRECORD; nLength:DWORD; lpNumberOfEventsRead:LPDWORD):WINBOOL; external 'kernel32' name 'PeekConsoleInputW';
 function ReadConsoleInputW(hConsoleInput:HANDLE; lpBuffer:PINPUTRECORD; nLength:DWORD; lpNumberOfEventsRead:LPDWORD):WINBOOL; external 'kernel32' name 'ReadConsoleInputW';
 function WriteConsoleInputW(hConsoleInput:HANDLE; lpBuffer:PINPUTRECORD; nLength:DWORD; lpNumberOfEventsWritten:LPDWORD):WINBOOL; external 'kernel32' name 'WriteConsoleInputW';
@@ -429,28 +429,28 @@ function ReadConsoleW(hConsoleInput:HANDLE; lpBuffer:LPVOID; nNumberOfCharsToRea
 function WriteConsoleW(hConsoleOutput:HANDLE;lpBuffer:pointer; nNumberOfCharsToWrite:DWORD; lpNumberOfCharsWritten:LPDWORD; lpReserved:LPVOID):WINBOOL; external 'kernel32' name 'WriteConsoleW';
 function GetCPInfoExW(Codepage:UINT; dwFlags:DWORD; CPinfoEx:LPCPINFOEXW):WINBOOL; external 'kernel32' name 'GetCPInfoExW';
 function WNetAddConnectionW(lpRemoteName:LPCWSTR; lpPassword:LPCWSTR; lpLocalName:LPCWSTR):DWORD; external 'mpr' name 'WNetAddConnectionW';
-function WNetAddConnection2W(lpNetResource:LPNETRESOURCE; lpPassword:LPCWSTR; lpUserName:LPCWSTR; dwFlags:DWORD):DWORD; external 'mpr' name 'WNetAddConnection2W';
-function WNetAddConnection3W(hwndOwner:HWND; lpNetResource:LPNETRESOURCE; lpPassword:LPCWSTR; lpUserName:LPCWSTR; dwFlags:DWORD):DWORD; external 'mpr' name 'WNetAddConnection3W';
+function WNetAddConnection2W(lpNetResource:LPNETRESOURCEW; lpPassword:LPCWSTR; lpUserName:LPCWSTR; dwFlags:DWORD):DWORD; external 'mpr' name 'WNetAddConnection2W';
+function WNetAddConnection3W(hwndOwner:HWND; lpNetResource:LPNETRESOURCEW; lpPassword:LPCWSTR; lpUserName:LPCWSTR; dwFlags:DWORD):DWORD; external 'mpr' name 'WNetAddConnection3W';
 function WNetCancelConnectionW(lpName:LPCWSTR; fForce:WINBOOL):DWORD; external 'mpr' name 'WNetCancelConnectionW';
 function WNetCancelConnection2W(lpName:LPCWSTR; dwFlags:DWORD; fForce:WINBOOL):DWORD; external 'mpr' name 'WNetCancelConnection2W';
 function WNetGetConnectionW(lpLocalName:LPCWSTR; lpRemoteName:LPWSTR; lpnLength:LPDWORD):DWORD; external 'mpr' name 'WNetGetConnectionW';
-function WNetUseConnectionW(hwndOwner:HWND; lpNetResource:LPNETRESOURCE; lpUserID:LPCWSTR; lpPassword:LPCWSTR; dwFlags:DWORD;lpAccessName:LPWSTR; lpBufferSize:LPDWORD; lpResult:LPDWORD):DWORD; external 'mpr' name 'WNetUseConnectionW';
+function WNetUseConnectionW(hwndOwner:HWND; lpNetResource:LPNETRESOURCEW; lpUserID:LPCWSTR; lpPassword:LPCWSTR; dwFlags:DWORD;lpAccessName:LPWSTR; lpBufferSize:LPDWORD; lpResult:LPDWORD):DWORD; external 'mpr' name 'WNetUseConnectionW';
 function WNetSetConnectionW(lpName:LPCWSTR; dwProperties:DWORD; pvValues:LPVOID):DWORD; external 'mpr' name 'WNetSetConnectionW';
-function WNetConnectionDialog1W(lpConnDlgStruct:LPCONNECTDLGSTRUCT):DWORD; external 'mpr' name 'WNetConnectionDialog1W';
-function WNetDisconnectDialog1W(lpConnDlgStruct:LPDISCDLGSTRUCT):DWORD; external 'mpr' name 'WNetDisconnectDialog1W';
-function WNetOpenEnumW(dwScope:DWORD; dwType:DWORD; dwUsage:DWORD; lpNetResource:LPNETRESOURCE; lphEnum:LPHANDLE):DWORD; external 'mpr' name 'WNetOpenEnumW';
+function WNetConnectionDialog1W(lpConnDlgStruct:LPCONNECTDLGSTRUCTW):DWORD; external 'mpr' name 'WNetConnectionDialog1W';
+function WNetDisconnectDialog1W(lpConnDlgStruct:LPDISCDLGSTRUCTW):DWORD; external 'mpr' name 'WNetDisconnectDialog1W';
+function WNetOpenEnumW(dwScope:DWORD; dwType:DWORD; dwUsage:DWORD; lpNetResource:LPNETRESOURCEW                      ; lphEnum:LPHANDLE):DWORD; external 'mpr' name 'WNetOpenEnumW';
 function WNetEnumResourceW(hEnum:HANDLE; lpcCount:LPDWORD; lpBuffer:LPVOID; lpBufferSize:LPDWORD):DWORD; external 'mpr' name 'WNetEnumResourceW';
 function WNetGetUniversalNameW(lpLocalPath:LPCWSTR; dwInfoLevel:DWORD; lpBuffer:LPVOID; lpBufferSize:LPDWORD):DWORD; external 'mpr' name 'WNetGetUniversalNameW';
 function WNetGetUserW(lpName:LPCWSTR; lpUserName:LPWSTR; lpnLength:LPDWORD):DWORD; external 'mpr' name 'WNetGetUserW';
 function WNetGetProviderNameW(dwNetType:DWORD; lpProviderName:LPWSTR; lpBufferSize:LPDWORD):DWORD; external 'mpr' name 'WNetGetProviderNameW';
 function WNetGetNetworkInformationW(lpProvider:LPCWSTR; lpNetInfoStruct:LPNETINFOSTRUCT):DWORD; external 'mpr' name 'WNetGetNetworkInformationW';
 function WNetGetLastErrorW(lpError:LPDWORD; lpErrorBuf:LPWSTR; nErrorBufSize:DWORD; lpNameBuf:LPWSTR; nNameBufSize:DWORD):DWORD; external 'mpr' name 'WNetGetLastErrorW';
-function MultinetGetConnectionPerformanceW(lpNetResource:LPNETRESOURCE; lpNetConnectInfoStruct:LPNETCONNECTINFOSTRUCT):DWORD; external 'mpr' name 'MultinetGetConnectionPerformanceW';
+function MultinetGetConnectionPerformanceW(lpNetResource:LPNETRESOURCEW; lpNetConnectInfoStruct:LPNETCONNECTINFOSTRUCT):DWORD; external 'mpr' name 'MultinetGetConnectionPerformanceW';
 function ChangeServiceConfigW(hService:SC_HANDLE; dwServiceType:DWORD; dwStartType:DWORD; dwErrorControl:DWORD; lpBinaryPathName:LPCWSTR;lpLoadOrderGroup:LPCWSTR; lpdwTagId:LPDWORD; lpDependencies:LPCWSTR; lpServiceStartName:LPCWSTR;
   lpPassword:LPCWSTR;lpDisplayName:LPCWSTR):WINBOOL; external 'advapi32' name 'ChangeServiceConfigW';
 function CreateServiceW(hSCManager:SC_HANDLE; lpServiceName:LPCWSTR; lpDisplayName:LPCWSTR; dwDesiredAccess:DWORD; dwServiceType:DWORD;dwStartType:DWORD; dwErrorControl:DWORD; lpBinaryPathName:LPCWSTR; lpLoadOrderGroup:LPCWSTR;
   lpdwTagId:LPDWORD;lpDependencies:LPCWSTR; lpServiceStartName:LPCWSTR; lpPassword:LPCWSTR):SC_HANDLE; external 'advapi32' name 'CreateServiceW';
-function EnumDependentServicesW(hService:SC_HANDLE; dwServiceState:DWORD; lpServices:LPENUM_SERVICE_STATUS; cbBufSize:DWORD; pcbBytesNeeded:LPDWORD;lpServicesReturned:LPDWORD):WINBOOL; external 'advapi32' name 'EnumDependentServicesW';
+function EnumDependentServicesW(hService:SC_HANDLE; dwServiceState:DWORD; lpServices:LPENUM_SERVICE_STATUSW; cbBufSize:DWORD; pcbBytesNeeded:LPDWORD;lpServicesReturned:LPDWORD):WINBOOL; external 'advapi32' name 'EnumDependentServicesW';
 function EnumServicesStatusW(hSCManager:SC_HANDLE; dwServiceType:DWORD; dwServiceState:DWORD; lpServices:LPENUM_SERVICE_STATUSW; cbBufSize:DWORD;pcbBytesNeeded:LPDWORD; lpServicesReturned:LPDWORD; lpResumeHandle:LPDWORD):WINBOOL;
   external 'advapi32' name 'EnumServicesStatusW';
 function GetServiceKeyNameW(hSCManager:SC_HANDLE; lpDisplayName:LPCWSTR; lpServiceName:LPWSTR; lpcchBuffer:LPDWORD):WINBOOL; external 'advapi32' name 'GetServiceKeyNameW';
@@ -468,7 +468,7 @@ function ExtractIconW(_para1:HINST; _para2:LPCWSTR; _para3:cardinal):HICON; exte
 function FindExecutableW(_para1:LPCWSTR; _para2:LPCWSTR; _para3:LPCWSTR):HINST; external 'shell32' name 'FindExecutableW';
 function ShellAboutW(_para1:HWND; _para2:LPCWSTR; _para3:LPCWSTR; _para4:HICON):longint; external 'shell32' name 'ShellAboutW';
 function ShellExecuteW(_para1:HWND; _para2:LPCWSTR; _para3:LPCWSTR; _para4:LPCWSTR; _para5:LPCWSTR;_para6:longint):HINST; external 'shell32' name 'ShellExecuteW';
-function Shell_NotifyIconW(dwMessage: DWORD; lpData: PNotifyIconDataA): BOOL; external 'shell32' name 'Shell_NotifyIconW';
+function Shell_NotifyIconW(dwMessage: DWORD; lpData: PNotifyIconDataW): BOOL; external 'shell32' name 'Shell_NotifyIconW';
 function DdeCreateStringHandleW(_para1:DWORD; _para2:LPCWSTR; _para3:longint):HSZ; external 'user32' name 'DdeCreateStringHandleW';
 function DdeInitializeW(_para1:LPDWORD; _para2:PFNCALLBACK; _para3:DWORD; _para4:DWORD):UINT; external 'user32' name 'DdeInitializeW';
 function DdeQueryStringW(_para1:DWORD; _para2:HSZ; _para3:LPCWSTR; _para4:DWORD; _para5:longint):DWORD; external 'user32' name 'DdeQueryStringW';