Browse Source

* mantis #29762 unicode structure problems fixed up to and including MessageBoxIndirectW

git-svn-id: trunk@33216 -
marco 9 years ago
parent
commit
5e8bc3a631

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

@@ -176,7 +176,7 @@ function OpenDesktopA(lpszDesktop:LPSTR; dwFlags:DWORD; fInherit:WINBOOL; dwDesi
 function EnumDesktopsA(hwinsta:HWINSTA; lpEnumFunc:DESKTOPENUMPROC; lParam:LPARAM):WINBOOL; external 'user32' name 'EnumDesktopsA';
 function CreateWindowStationA(lpwinsta:LPSTR; dwReserved:DWORD; dwDesiredAccess:DWORD; lpsa:LPSECURITY_ATTRIBUTES):HWINSTA; external 'user32' name 'CreateWindowStationA';
 function OpenWindowStationA(lpszWinSta:LPSTR; fInherit:WINBOOL; dwDesiredAccess:DWORD):HWINSTA; external 'user32' name 'OpenWindowStationA';
-function EnumWindowStationsA(lpEnumFunc:ENUMWINDOWSTATIONPROC; lParam:LPARAM):WINBOOL; external 'user32' name 'EnumWindowStationsA';
+function EnumWindowStationsA(lpEnumFunc:ENUMWINDOWSTATIONPROCA; lParam:LPARAM):WINBOOL; external 'user32' name 'EnumWindowStationsA';
 function GetUserObjectInformationA(hObj:HANDLE; nIndex:longint; pvInfo:PVOID; nLength:DWORD; lpnLengthNeeded:LPDWORD):WINBOOL; external 'user32' name 'GetUserObjectInformationA';
 function SetUserObjectInformationA(hObj:HANDLE; nIndex:longint; pvInfo:PVOID; nLength:DWORD):WINBOOL; external 'user32' name 'SetUserObjectInformationA';
 function RegisterWindowMessageA(lpString:LPCSTR):UINT; external 'user32' name 'RegisterWindowMessageA';
@@ -193,9 +193,9 @@ function DefWindowProcA(hWnd:HWND; Msg:UINT; wParam:WPARAM; lParam:LPARAM):LRESU
 function CallWindowProcA(lpPrevWndFunc:WNDPROC; hWnd:HWND; Msg:UINT; wParam:WPARAM; lParam:LPARAM):LRESULT; external 'user32' name 'CallWindowProcA';
 function RegisterClassA(lpWndClass:LPWNDCLASS):ATOM; external 'user32' name 'RegisterClassA';
 function UnregisterClassA(lpClassName:LPCSTR; hInstance:HINST):WINBOOL; external 'user32' name 'UnregisterClassA';
-function GetClassInfoA(hInstance:HINST; lpClassName:LPCSTR; lpWndClass:LPWNDCLASS):WINBOOL; external 'user32' name 'GetClassInfoA';
-function RegisterClassExA(_para1:LPWNDCLASSEX):ATOM; external 'user32' name 'RegisterClassExA';
-function GetClassInfoExA(_para1:HINST; _para2:LPCSTR; _para3:LPWNDCLASSEX):WINBOOL; external 'user32' name 'GetClassInfoExA';
+function GetClassInfoA(hInstance:HINST; lpClassName:LPCSTR; lpWndClass:LPWNDCLASSA):WINBOOL; external 'user32' name 'GetClassInfoA';
+function RegisterClassExA(_para1:LPWNDCLASSEXA):ATOM; external 'user32' name 'RegisterClassExA';
+function GetClassInfoExA(_para1:HINST; _para2:LPCSTR; _para3:LPWNDCLASSEXA):WINBOOL; external 'user32' name 'GetClassInfoExA';
 function CreateWindowExA(dwExStyle:DWORD; lpClassName:LPCSTR; lpWindowName:LPCSTR; dwStyle:DWORD; X:longint;Y:longint; nWidth:longint; nHeight:longint; hWndParent:HWND; hMenu:HMENU;hInstance:HINST; lpParam:LPVOID):HWND;
   external 'user32' name 'CreateWindowExA';
 function CreateDialogParamA(hInstance:HINST; lpTemplateName:LPCSTR; hWndParent:HWND; lpDialogFunc:DLGPROC; dwInitParam:LPARAM):HWND; external 'user32' name 'CreateDialogParamA';
@@ -239,9 +239,9 @@ function GetMenuStringA(hMenu:HMENU; uIDItem:UINT; lpString:LPSTR; nMaxCount:lon
 function InsertMenuA(hMenu:HMENU; uPosition:UINT; uFlags:UINT; uIDNewItem:UINT; lpNewItem:LPCSTR):WINBOOL; external 'user32' name 'InsertMenuA';
 function AppendMenuA(hMenu:HMENU; uFlags:UINT; uIDNewItem:UINT; lpNewItem:LPCSTR):WINBOOL; external 'user32' name 'AppendMenuA';
 function ModifyMenuA(hMnu:HMENU; uPosition:UINT; uFlags:UINT; uIDNewItem:UINT; lpNewItem:LPCSTR):WINBOOL; external 'user32' name 'ModifyMenuA';
-function InsertMenuItemA(_para1:HMENU; _para2:UINT; _para3:WINBOOL; _para4:LPCMENUITEMINFO):WINBOOL; external 'user32' name 'InsertMenuItemA';
-function GetMenuItemInfoA(_para1:HMENU; _para2:UINT; _para3:WINBOOL; _para4:LPMENUITEMINFO):WINBOOL; external 'user32' name 'GetMenuItemInfoA';
-function SetMenuItemInfoA(_para1:HMENU; _para2:UINT; _para3:WINBOOL; _para4:LPCMENUITEMINFO):WINBOOL; external 'user32' name 'SetMenuItemInfoA';
+function InsertMenuItemA(_para1:HMENU; _para2:UINT; _para3:WINBOOL; _para4:LPCMENUITEMINFOA):WINBOOL; external 'user32' name 'InsertMenuItemA';
+function GetMenuItemInfoA(_para1:HMENU; _para2:UINT; _para3:WINBOOL; _para4:LPMENUITEMINFOA):WINBOOL; external 'user32' name 'GetMenuItemInfoA';
+function SetMenuItemInfoA(_para1:HMENU; _para2:UINT; _para3:WINBOOL; _para4:LPCMENUITEMINFOA):WINBOOL; external 'user32' name 'SetMenuItemInfoA';
 function DrawTextA(hDC:HDC; lpString:LPCSTR; nCount:longint; lpRect:LPRECT; uFormat:UINT):longint; external 'user32' name 'DrawTextA';
 function DrawTextExA(_para1:HDC; _para2:LPSTR; _para3:longint; _para4:LPRECT; _para5:UINT;_para6:LPDRAWTEXTPARAMS):longint; external 'user32' name 'DrawTextExA';
 function GrayStringA(hDC:HDC; hBrush:HBRUSH; lpOutputFunc:GRAYSTRINGPROC; lpData:LPARAM; nCount:longint;X:longint; Y:longint; nWidth:longint; nHeight:longint):WINBOOL; external 'user32' name 'GrayStringA';
@@ -258,7 +258,7 @@ function GetWindowTextA(hWnd:HWND; lpString:LPSTR; nMaxCount:longint):longint; e
 function GetWindowTextLengthA(hWnd:HWND):longint; external 'user32' name 'GetWindowTextLengthA';
 function MessageBoxA(hWnd:HWND; lpText:LPCSTR; lpCaption:LPCSTR; uType:UINT):longint; external 'user32' name 'MessageBoxA';
 function MessageBoxExA(hWnd:HWND; lpText:LPCSTR; lpCaption:LPCSTR; uType:UINT; wLanguageId:WORD):longint; external 'user32' name 'MessageBoxExA';
-function MessageBoxIndirectA(_para1:LPMSGBOXPARAMS):longint; external 'user32' name 'MessageBoxIndirectA';
+function MessageBoxIndirectA(_para1:LPMSGBOXPARAMSA):longint; external 'user32' name 'MessageBoxIndirectA';
 function GetWindowLongA(hWnd:HWND; nIndex:longint):LONG; external 'user32' name 'GetWindowLongA';
 function SetWindowLongA(hWnd:HWND; nIndex:longint; dwNewLong:LONG):LONG; external 'user32' name 'SetWindowLongA';
 function GetClassLongA(hWnd:HWND; nIndex:longint):DWORD; external 'user32' name 'GetClassLongA';

+ 2 - 0
rtl/win/wininc/base.inc

@@ -670,6 +670,8 @@
      ENUMWINDOWSPROC = function (_para1:HWND; _para2:LPARAM):WINBOOL;stdcall;
 
      ENUMWINDOWSTATIONPROC = function (_para1:LPTSTR; _para2:LPARAM):WINBOOL;stdcall;
+     ENUMWINDOWSTATIONPROCA = function (_para1:LPSTR; _para2:LPARAM):WINBOOL;stdcall;
+     ENUMWINDOWSTATIONPROCW = function (_para1:LPWSTR; _para2:LPARAM):WINBOOL;stdcall;
 
      SENDASYNCPROC = procedure (_para1:HWND; _para2:UINT; _para3:ULONG_PTR; _para4:LRESULT);stdcall;
 

+ 77 - 16
rtl/win/wininc/struct.inc

@@ -4604,7 +4604,7 @@ Const
      TMENUINFO = MENUINFO;
      PMENUINFO = ^MENUINFO;
 
-     MENUITEMINFO = record
+     MENUITEMINFOA = record
           cbSize : UINT;
           fMask : UINT;
           fType : UINT;
@@ -4614,16 +4614,50 @@ Const
           hbmpChecked : HBITMAP;
           hbmpUnchecked : HBITMAP;
           dwItemData : ULONG_PTR;
-          dwTypeData : LPTSTR;
+          dwTypeData : LPSTR;
           cch : UINT;
           hbmpItem : HBITMAP;
        end;
-     LPMENUITEMINFO = ^MENUITEMINFO;
-     LPCMENUITEMINFO = ^MENUITEMINFO;
-     tagMENUITEMINFO = MENUITEMINFO;
-     TMENUITEMINFO = MENUITEMINFO;
-     TMENUITEMINFOA = MENUITEMINFO;
-     PMENUITEMINFO = ^MENUITEMINFO;
+     LPMENUITEMINFOA = ^MENUITEMINFOA;
+     LPCMENUITEMINFOA = ^MENUITEMINFOA;
+     tagMENUITEMINFOA = MENUITEMINFOA;
+     TMENUITEMINFOA = MENUITEMINFOA;
+     PMENUITEMINFOA = ^MENUITEMINFOA;
+
+     MENUITEMINFOW = record
+          cbSize : UINT;
+          fMask : UINT;
+          fType : UINT;
+          fState : UINT;
+          wID : UINT;
+          hSubMenu : HMENU;
+          hbmpChecked : HBITMAP;
+          hbmpUnchecked : HBITMAP;
+          dwItemData : ULONG_PTR;
+          dwTypeData : LPWSTR;
+          cch : UINT;
+          hbmpItem : HBITMAP;
+       end;
+     LPMENUITEMINFOW = ^MENUITEMINFOW;
+     LPCMENUITEMINFOW = ^MENUITEMINFOW;
+     tagMENUITEMINFOW = MENUITEMINFOW;
+     TMENUITEMINFOW = MENUITEMINFOW;
+     PMENUITEMINFOW = ^MENUITEMINFOW;
+     {$ifdef unicode}
+     LPMENUITEMINFO   = ^MENUITEMINFOW;
+     LPCMENUITEMINFO  = ^MENUITEMINFOW;
+     tagMENUITEMINFO  =  MENUITEMINFOW;
+     TMENUITEMINFO    =  MENUITEMINFOW;
+     PMENUITEMINFO    = ^MENUITEMINFOW;
+     MENUITEMINFO     =  MENUITEMINFOW;
+     {$ELSE}
+     LPMENUITEMINFO   = ^MENUITEMINFOA;
+     LPCMENUITEMINFO  = ^MENUITEMINFOA;
+     tagMENUITEMINFO  = MENUITEMINFOA;
+     TMENUITEMINFO    = MENUITEMINFOA;
+     PMENUITEMINFO    = ^MENUITEMINFOA;
+     MENUITEMINFO     =  MENUITEMINFOA;
+     {$ENDIF}
 
      MENUITEMTEMPLATE = record
           mtOption : WORD;
@@ -4905,22 +4939,49 @@ Const
      MSGBOXCALLBACK = procedure (lpHelpInfo:LPHELPINFO);stdcall;
      TMSGBOXCALLBACK = MSGBOXCALLBACK;
 
-     MSGBOXPARAMS = record
+     MSGBOXPARAMSA = record
           cbSize : UINT;
           hwndOwner : HWND;
           hInstance : HINST;
-          lpszText : LPCTSTR;
-          lpszCaption : LPCTSTR;
+          lpszText : LPCSTR;
+          lpszCaption : LPCSTR;
           dwStyle : DWORD;
-          lpszIcon : LPCTSTR;
+          lpszIcon : LPCSTR;
           dwContextHelpId : DWORD_PTR;
           lpfnMsgBoxCallback : MSGBOXCALLBACK;
           dwLanguageId : DWORD;
        end;
-     LPMSGBOXPARAMS = ^MSGBOXPARAMS;
-     TMSGBOXPARAMS = MSGBOXPARAMS;
-     TMSGBOXPARAMSA = MSGBOXPARAMS;
-     PMSGBOXPARAMS = ^MSGBOXPARAMS;
+     LPMSGBOXPARAMSA = ^MSGBOXPARAMSA;
+     TMSGBOXPARAMSA  =  MSGBOXPARAMSA;
+     PMSGBOXPARAMSA  = ^MSGBOXPARAMSA;
+
+     MSGBOXPARAMSW = record
+          cbSize : UINT;
+          hwndOwner : HWND;
+          hInstance : HINST;
+          lpszText : LPCWSTR;
+          lpszCaption : LPCWSTR;
+          dwStyle : DWORD;
+          lpszIcon : LPCWSTR;
+          dwContextHelpId : DWORD_PTR;
+          lpfnMsgBoxCallback : MSGBOXCALLBACK;
+          dwLanguageId : DWORD;
+     end;
+     LPMSGBOXPARAMSW = ^MSGBOXPARAMSW;
+     TMSGBOXPARAMSW  =  MSGBOXPARAMSW;
+     PMSGBOXPARAMSW  = ^MSGBOXPARAMSW;
+
+     {$ifdef Unicode}
+     LPMSGBOXPARAMS  = ^MSGBOXPARAMSW;
+     TMSGBOXPARAMS   =  MSGBOXPARAMSW;
+     PMSGBOXPARAMS   = ^MSGBOXPARAMSW;
+     MSGBOXPARAMS    =  MSGBOXPARAMSW;
+     {$else}
+     LPMSGBOXPARAMS  = ^MSGBOXPARAMSA;
+     TMSGBOXPARAMS   =  MSGBOXPARAMSA;
+     PMSGBOXPARAMS   = ^MSGBOXPARAMSA;
+     MSGBOXPARAMS    =  MSGBOXPARAMSA;
+     {$endif}
 
      MSGFILTER = record
           nmhdr : NMHDR;

+ 1 - 1
rtl/win/wininc/unidef.inc

@@ -193,7 +193,7 @@ function RegisterClass(lpWndClass:LPWNDCLASS):ATOM; external 'user32' name 'Regi
 function UnregisterClass(lpClassName:LPCWSTR; hInstance:HINST):WINBOOL; external 'user32' name 'UnregisterClassW';
 function GetClassInfo(hInstance:HINST; lpClassName:LPCWSTR; lpWndClass:LPWNDCLASS):WINBOOL; external 'user32' name 'GetClassInfoW';
 function RegisterClassEx(_para1:LPWNDCLASSEXW):ATOM; external 'user32' name 'RegisterClassExW';
-function GetClassInfoEx(_para1:HINST; _para2:LPCWSTR; _para3:LPWNDCLASSEX):WINBOOL; external 'user32' name 'GetClassInfoExW';
+function GetClassInfoEx(_para1:HINST; _para2:LPCWSTR; _para3:LPWNDCLASSEXW):WINBOOL; external 'user32' name 'GetClassInfoExW';
 function CreateWindowEx(dwExStyle:DWORD; lpClassName:LPCWSTR; lpWindowName:LPCWSTR; dwStyle:DWORD; X:longint;Y:longint; nWidth:longint; nHeight:longint; hWndParent:HWND; hMenu:HMENU;hInstance:HINST; lpParam:LPVOID):HWND;
   external 'user32' name 'CreateWindowExW';
 function CreateDialogParam(hInstance:HINST; lpTemplateName:LPCWSTR; hWndParent:HWND; lpDialogFunc:DLGPROC; dwInitParam:LPARAM):HWND; external 'user32' name 'CreateDialogParamW';

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

@@ -173,7 +173,7 @@ function OpenDesktopW(lpszDesktop:LPWSTR; dwFlags:DWORD; fInherit:WINBOOL; dwDes
 function EnumDesktopsW(hwinsta:HWINSTA; lpEnumFunc:DESKTOPENUMPROC; lParam:LPARAM):WINBOOL; external 'user32' name 'EnumDesktopsW';
 function CreateWindowStationW(lpwinsta:LPWSTR; dwReserved:DWORD; dwDesiredAccess:DWORD; lpsa:LPSECURITY_ATTRIBUTES):HWINSTA; external 'user32' name 'CreateWindowStationW';
 function OpenWindowStationW(lpszWinSta:LPWSTR; fInherit:WINBOOL; dwDesiredAccess:DWORD):HWINSTA; external 'user32' name 'OpenWindowStationW';
-function EnumWindowStationsW(lpEnumFunc:ENUMWINDOWSTATIONPROC; lParam:LPARAM):WINBOOL; external 'user32' name 'EnumWindowStationsW';
+function EnumWindowStationsW(lpEnumFunc:ENUMWINDOWSTATIONPROCW; lParam:LPARAM):WINBOOL; external 'user32' name 'EnumWindowStationsW';
 function GetUserObjectInformationW(hObj:HANDLE; nIndex:longint; pvInfo:PVOID; nLength:DWORD; lpnLengthNeeded:LPDWORD):WINBOOL; external 'user32' name 'GetUserObjectInformationW';
 function SetUserObjectInformationW(hObj:HANDLE; nIndex:longint; pvInfo:PVOID; nLength:DWORD):WINBOOL; external 'user32' name 'SetUserObjectInformationW';
 function RegisterWindowMessageW(lpString:LPCWSTR):UINT; external 'user32' name 'RegisterWindowMessageW';
@@ -190,9 +190,9 @@ function DefWindowProcW(hWnd:HWND; Msg:UINT; wParam:WPARAM; lParam:LPARAM):LRESU
 function CallWindowProcW(lpPrevWndFunc:WNDPROC; hWnd:HWND; Msg:UINT; wParam:WPARAM; lParam:LPARAM):LRESULT; external 'user32' name 'CallWindowProcW';
 function RegisterClassW(lpWndClass:LPWNDCLASSW):ATOM; external 'user32' name 'RegisterClassW';
 function UnregisterClassW(lpClassName:LPCWSTR; hInstance:HINST):WINBOOL; external 'user32' name 'UnregisterClassW';
-function GetClassInfoW(hInstance:HINST; lpClassName:LPCWSTR; lpWndClass:LPWNDCLASS):WINBOOL; external 'user32' name 'GetClassInfoW';
+function GetClassInfoW(hInstance:HINST; lpClassName:LPCWSTR; lpWndClass:LPWNDCLASSW):WINBOOL; external 'user32' name 'GetClassInfoW';
 function RegisterClassExW(_para1:LPWNDCLASSEXW):ATOM; external 'user32' name 'RegisterClassExW';
-function GetClassInfoExW(_para1:HINST; _para2:LPCWSTR; _para3:LPWNDCLASSEX):WINBOOL; external 'user32' name 'GetClassInfoExW';
+function GetClassInfoExW(_para1:HINST; _para2:LPCWSTR; _para3:LPWNDCLASSEXW):WINBOOL; external 'user32' name 'GetClassInfoExW';
 function CreateWindowExW(dwExStyle:DWORD; lpClassName:LPCWSTR; lpWindowName:LPCWSTR; dwStyle:DWORD; X:longint;Y:longint; nWidth:longint; nHeight:longint; hWndParent:HWND; hMenu:HMENU;hInstance:HINST; lpParam:LPVOID):HWND;
   external 'user32' name 'CreateWindowExW';
 function CreateDialogParamW(hInstance:HINST; lpTemplateName:LPCWSTR; hWndParent:HWND; lpDialogFunc:DLGPROC; dwInitParam:LPARAM):HWND; external 'user32' name 'CreateDialogParamW';
@@ -236,9 +236,9 @@ function GetMenuStringW(hMenu:HMENU; uIDItem:UINT; lpString:LPWSTR; nMaxCount:lo
 function InsertMenuW(hMenu:HMENU; uPosition:UINT; uFlags:UINT; uIDNewItem:UINT; lpNewItem:LPCWSTR):WINBOOL; external 'user32' name 'InsertMenuW';
 function AppendMenuW(hMenu:HMENU; uFlags:UINT; uIDNewItem:UINT; lpNewItem:LPCWSTR):WINBOOL; external 'user32' name 'AppendMenuW';
 function ModifyMenuW(hMnu:HMENU; uPosition:UINT; uFlags:UINT; uIDNewItem:UINT; lpNewItem:LPCWSTR):WINBOOL; external 'user32' name 'ModifyMenuW';
-function InsertMenuItemW(_para1:HMENU; _para2:UINT; _para3:WINBOOL; _para4:LPCMENUITEMINFO):WINBOOL; external 'user32' name 'InsertMenuItemW';
-function GetMenuItemInfoW(_para1:HMENU; _para2:UINT; _para3:WINBOOL; _para4:LPMENUITEMINFO):WINBOOL; external 'user32' name 'GetMenuItemInfoW';
-function SetMenuItemInfoW(_para1:HMENU; _para2:UINT; _para3:WINBOOL; _para4:LPCMENUITEMINFO):WINBOOL; external 'user32' name 'SetMenuItemInfoW';
+function InsertMenuItemW(_para1:HMENU; _para2:UINT; _para3:WINBOOL; _para4:LPCMENUITEMINFOW):WINBOOL; external 'user32' name 'InsertMenuItemW';
+function GetMenuItemInfoW(_para1:HMENU; _para2:UINT; _para3:WINBOOL; _para4:LPMENUITEMINFOW):WINBOOL; external 'user32' name 'GetMenuItemInfoW';
+function SetMenuItemInfoW(_para1:HMENU; _para2:UINT; _para3:WINBOOL; _para4:LPCMENUITEMINFOW):WINBOOL; external 'user32' name 'SetMenuItemInfoW';
 function DrawTextW(hDC:HDC; lpString:LPCWSTR; nCount:longint; lpRect:LPRECT; uFormat:UINT):longint; external 'user32' name 'DrawTextW';
 function DrawTextExW(_para1:HDC; _para2:LPWSTR; _para3:longint; _para4:LPRECT; _para5:UINT;_para6:LPDRAWTEXTPARAMS):longint; external 'user32' name 'DrawTextExW';
 function GrayStringW(hDC:HDC; hBrush:HBRUSH; lpOutputFunc:GRAYSTRINGPROC; lpData:LPARAM; nCount:longint;X:longint; Y:longint; nWidth:longint; nHeight:longint):WINBOOL; external 'user32' name 'GrayStringW';
@@ -248,14 +248,14 @@ function GetTabbedTextExtentW(hDC:HDC; lpString:LPCWSTR; nCount:longint; nTabPos
 function SetPropW(hWnd:HWND; lpString:LPCWSTR; hData:HANDLE):WINBOOL; external 'user32' name 'SetPropW';
 function GetPropW(hWnd:HWND; lpString:LPCWSTR):HANDLE; external 'user32' name 'GetPropW';
 function RemovePropW(hWnd:HWND; lpString:LPCWSTR):HANDLE; external 'user32' name 'RemovePropW';
-function EnumPropsExW(hWnd:HWND; lpEnumFunc:PROPENUMPROCEX; lParam:LPARAM):longint; external 'user32' name 'EnumPropsExW';
-function EnumPropsW(hWnd:HWND; lpEnumFunc:PROPENUMPROC):longint; external 'user32' name 'EnumPropsW';
+function EnumPropsExW(hWnd:HWND; lpEnumFunc:PROPENUMPROCEXW; lParam:LPARAM):longint; external 'user32' name 'EnumPropsExW';
+function EnumPropsW(hWnd:HWND; lpEnumFunc:PROPENUMPROCW):longint; external 'user32' name 'EnumPropsW';
 function SetWindowTextW(hWnd:HWND; lpString:LPCWSTR):WINBOOL; external 'user32' name 'SetWindowTextW';
 function GetWindowTextW(hWnd:HWND; lpString:LPWSTR; nMaxCount:longint):longint; external 'user32' name 'GetWindowTextW';
 function GetWindowTextLengthW(hWnd:HWND):longint; external 'user32' name 'GetWindowTextLengthW';
 function MessageBoxW(hWnd:HWND; lpText:LPCWSTR; lpCaption:LPCWSTR; uType:UINT):longint; external 'user32' name 'MessageBoxW';
 function MessageBoxExW(hWnd:HWND; lpText:LPCWSTR; lpCaption:LPCWSTR; uType:UINT; wLanguageId:WORD):longint; external 'user32' name 'MessageBoxExW';
-function MessageBoxIndirectW(_para1:LPMSGBOXPARAMS):longint; external 'user32' name 'MessageBoxIndirectW';
+function MessageBoxIndirectW(_para1:LPMSGBOXPARAMSW):longint; external 'user32' name 'MessageBoxIndirectW';
 function GetWindowLongW(hWnd:HWND; nIndex:longint):LONG; external 'user32' name 'GetWindowLongW';
 function SetWindowLongW(hWnd:HWND; nIndex:longint; dwNewLong:LONG):LONG; external 'user32' name 'SetWindowLongW';
 function GetClassLongW(hWnd:HWND; nIndex:longint):DWORD; external 'user32' name 'GetClassLongW';