Other W->A crosscalls

Adam Petaccia adam at tpetaccia.com
Thu Sep 16 01:15:25 CDT 2004


I know I'm just a random guy subscribed, but I couldn't help but notice
that your <li> tags weren't closed.

On Wed, 2004-09-15 at 21:56 -0700, Tony Lambregts wrote:
> Michael Stefaniuc wrote 
> 
> >Corrected script and output files are attached. Now they are only 178
> >lines of output which brings us damn near to Dimi's number.
> 
> Once I got rid of the duplicate calls I ended up with 130.
> 
> Changelog: update Janitorial template to reflect the true number of A->W crosscalls
> 
> Tony Lambregts
> 
> Index: janitorial.template
> ===================================================================
> RCS file: /home/wine/lostwages/templates/en/janitorial.template,v
> retrieving revision 1.42
> diff -u -u -r1.42 janitorial.template
> --- janitorial.template	15 Sep 2004 20:02:38 -0000	1.42
> +++ janitorial.template	16 Sep 2004 04:34:48 -0000
> @@ -196,65 +196,145 @@
>    The ASCII to Unicode conversion is lossy; moreover, with the
>    shift to Unicode, it's actually slower to deal in ASCII than
>    in Unicode, because of the additional conversions required.
> -  There are 54 cross calls from Unicode to ANSI as reported by
> +  There are 130 cross calls from Unicode to ANSI as of September 15, 2004.
> +
> +  winapi_check  
>    <tt>tools/winapi_check/winapi_check --none --progress --cross-call-unicode-ascii</tt>
> -  (as of Aug 12, 2004):
> +  does not catch all cross calls.
> +  however <a href="http://www.winehq.org/hypermail/wine-devel/2004/09/0452.html">wine_crosscalls.pl</a>
> +  by Michael Stefaniuc seems to be more thorough.
> +  
>    <ul>
> -    <li class=submitted>dlls/advapi32/crypt.c: advapi32: CryptAcquireContextW: illegal call to CryptAcquireContextA
> -    <li class=submitted>dlls/advapi32/crypt.c: advapi32: CryptEnumProviderTypesW: illegal call to CryptEnumProviderTypesA
> -    <li class=committed>dlls/advapi32/crypt.c: advapi32: CryptEnumProvidersW: illegal call to CryptEnumProvidersA
> -    <li class=submitted>dlls/advapi32/crypt.c: advapi32: CryptGetDefaultProviderW: illegal call to CryptGetDefaultProviderA
> -    <li class=submitted>dlls/advapi32/crypt.c: advapi32: CryptSetProviderExW: illegal call to CryptSetProviderExA
> -    <li>dlls/ddraw/main.c: ddraw: DirectDrawEnumerateExW: illegal call to DirectDrawEnumerateExA
> -    <li>dlls/gdi/printdrv.c: gdi32: StartDocW: illegal call to HEAP_strdupWtoA
> -    <li>dlls/gdi/printdrv.c: gdi32: StartDocW: illegal call to StartDocA
> -    <li>dlls/kernel/comm.c: kernel32: CommConfigDialogW: illegal call to CommConfigDialogA
> -    <li>dlls/kernel/comm.c: kernel32: CommConfigDialogW: illegal call to HEAP_strdupWtoA
> -    <li>dlls/kernel/comm.c: kernel32: SetDefaultCommConfigW: illegal call to HEAP_strdupWtoA
> -    <li>dlls/kernel/comm.c: kernel32: SetDefaultCommConfigW: illegal call to SetDefaultCommConfigA
> -    <li>dlls/kernel/locale.c: kernel32: GetLocaleInfoW: illegal call to GetModuleHandleA
> -    <li>dlls/kernel/sync.c: kernel32: WaitNamedPipeW: illegal call to CreateEventA
> -    <li>dlls/lzexpand/lzexpand_main.c: lz32: LZOpenFileW: illegal call to LZOpenFileA
> -    <li>dlls/rpcrt4/rpc_binding.c: rpcrt4: RpcBindingToStringBindingW: illegal call to RpcBindingToStringBindingA
> -    <li>dlls/rpcrt4/rpc_binding.c: rpcrt4: RpcBindingToStringBindingW: illegal call to RpcStringFreeA
> -    <li>dlls/rpcrt4/rpc_server.c: rpcrt4: RpcServerUseProtseqEpExW: illegal call to RPCRT4_strdupWtoA
> -    <li>dlls/shell32/shell32_main.c: shell32: ShellAboutW: illegal call to DialogBoxIndirectParamA
> -    <li>dlls/shell32/shell32_main.c: shell32: ShellAboutW: illegal call to HEAP_strdupWtoA
> -    <li>dlls/shell32/shell32_main.c: shell32: ShellAboutW: illegal call to LoadIconA
> -    <li>dlls/shell32/shellole.c: shell32: DragQueryFileW: illegal call to DragQueryFileA
> -    <li>dlls/shell32/systray.c: shell32: Shell_NotifyIconW: illegal call to Shell_NotifyIconA
> -    <li>dlls/shlwapi/string.c: shlwapi: StrCmpLogicalW: illegal call to SHLWAPI_ChrCmpHelperA
> -    <li>dlls/shlwapi/string.c: shlwapi: StrFormatByteSizeW: illegal call to StrFormatByteSize64A
> -    <li>dlls/shlwapi/string.c: shlwapi: StrRetToStrW: illegal call to SHStrDupA
> -    <li>dlls/version/install.c: version: VerInstallFileW: illegal call to VerInstallFileA
> -    <li>dlls/winmm/driver.c: winmm: OpenDriverW: illegal call to OpenDriverA
> -    <li>dlls/winmm/joystick.c: winmm: joyGetDevCapsW: illegal call to joyGetDevCapsA
> -    <li>dlls/winmm/mci.c: winmm: mciSendStringW: illegal call to mciSendStringA
> -    <li>dlls/winmm/mmio.c: winmm: mmioRenameW: illegal call to mmioRenameA
> -    <li>dlls/winmm/mmio.c: winmm: mmioStringToFOURCCW: illegal call to mmioStringToFOURCCA
> -    <li>dlls/winmm/winmm.c: winmm: auxGetDevCapsW: illegal call to auxGetDevCapsA
> -    <li>dlls/winmm/winmm.c: winmm: mciGetErrorStringW: illegal call to mciGetErrorStringA
> -    <li>dlls/winmm/winmm.c: winmm: midiInGetDevCapsW: illegal call to midiInGetDevCapsA
> -    <li>dlls/winmm/winmm.c: winmm: midiOutGetDevCapsW: illegal call to midiOutGetDevCapsA
> -    <li>dlls/winmm/winmm.c: winmm: mixerGetControlDetailsW: illegal call to mixerGetControlDetailsA
> -    <li>dlls/winmm/winmm.c: winmm: mixerGetDevCapsW: illegal call to mixerGetDevCapsA
> -    <li>dlls/winmm/winmm.c: winmm: mixerGetLineControlsW: illegal call to mixerGetLineControlsA
> -    <li>dlls/winmm/winmm.c: winmm: mixerGetLineInfoW: illegal call to mixerGetLineInfoA
> -    <li>dlls/winmm/winmm.c: winmm: waveInGetDevCapsW: illegal call to waveInGetDevCapsA
> -    <li>dlls/winmm/winmm.c: winmm: waveOutGetDevCapsW: illegal call to waveOutGetDevCapsA
> -    <li>dlls/winspool/info.c: winspool.drv: AddPrinterW: illegal call to DEVMODEdupWtoA
> -    <li>dlls/winspool/info.c: winspool.drv: AddPrinterW: illegal call to RegSetValueExA
> -    <li>dlls/winspool/info.c: winspool.drv: DeviceCapabilitiesW: illegal call to DEVMODEdupWtoA
> -    <li>dlls/winspool/info.c: winspool.drv: DeviceCapabilitiesW: illegal call to DeviceCapabilitiesA
> -    <li>dlls/winspool/info.c: winspool.drv: DeviceCapabilitiesW: illegal call to HEAP_strdupWtoA
> -    <li>dlls/winspool/info.c: winspool.drv: DocumentPropertiesW: illegal call to DEVMODEdupWtoA
> -    <li>dlls/winspool/info.c: winspool.drv: DocumentPropertiesW: illegal call to DocumentPropertiesA
> -    <li>dlls/winspool/info.c: winspool.drv: DocumentPropertiesW: illegal call to HEAP_strdupWtoA
> -    <li>windows/clipboard.c: user32: GetClipboardFormatNameW: illegal call to GetClipboardFormatNameA
> -    <li>windows/clipboard.c: user32: RegisterClipboardFormatW: illegal call to HEAP_strdupWtoA
> -    <li>windows/clipboard.c: user32: RegisterClipboardFormatW: illegal call to RegisterClipboardFormatA
> -    <li>windows/winhelp.c: user32: WinHelpW: illegal call to WinHelpA
> -    <li>windows/winproc.c: user32: CallWindowProcW: illegal call to WINPROC_CallProc32WTo32A
> +    <li class=submitted>dlls/advapi32/crypt.c CryptAcquireContextW: illegal call to CryptAcquireContextA
> +    <li class=submitted>dlls/advapi32/crypt.c CryptEnumProviderTypesW: illegal call to CryptEnumProviderTypesA
> +    <li class=submitted>dlls/advapi32/crypt.c CryptGetDefaultProviderW: illegal call to CryptGetDefaultProviderA
> +    <li class=submitted>dlls/advapi32/crypt.c CryptSetProviderExW: illegal call to CryptSetProviderExA
> +    <li>dlls/comctl32/string.c StrRStrIW: illegal call to COMCTL32_ChrCmpIA
> +    <li>dlls/comctl32/tooltips.c TOOLTIPS_AddToolW: illegal call to SendMessageA
> +    <li>dlls/commdlg/colordlg.c ChooseColorW: illegal call to FindResourceA
> +    <li>dlls/commdlg/filedlg.c GetFileDialog95W: illegal call to GetCurrentDirectoryA
> +    <li>dlls/commdlg/filedlg.c GetFileDialog95W: illegal call to SetCurrentDirectoryA
> +    <li>dlls/commdlg/filedlg.c GetFileName31W: illegal call to GetWindowLongA
> +    <li>dlls/commdlg/fontdlg.c FormatCharDlgProcW: illegal call to GetPropA
> +    <li>dlls/commdlg/printdlg.c PageDlgProcW: illegal call to GetPropA
> +    <li>dlls/commdlg/printdlg.c PageDlgProcW: illegal call to SetDlgItemTextA
> +    <li>dlls/commdlg/printdlg.c PageDlgProcW: illegal call to SetPropA
> +    <li>dlls/commdlg/printdlg.c PRINTDLG_ChangePrinterW: illegal call to LoadStringA
> +    <li>dlls/commdlg/printdlg.c PRINTDLG_ChangePrinterW: illegal call to SendDlgItemMessageA
> +    <li>dlls/commdlg/printdlg.c PRINTDLG_PS_UpdateDlgStructW: illegal call to GetDlgItemTextA
> +    <li>dlls/commdlg/printdlg.c PRINTDLG_SetUpPaperComboBoxW: illegal call to SendDlgItemMessageA
> +    <li>dlls/commdlg/printdlg.c PRINTDLG_SetUpPrinterListComboW: illegal call to GetDefaultPrinterA
> +    <li>dlls/commdlg/printdlg.c PRINTDLG_SetUpPrinterListComboW: illegal call to SendDlgItemMessageA
> +    <li>dlls/commdlg/printdlg.c PRINTDLG_UpdatePrintDlgW: illegal call to LoadStringA
> +    <li>dlls/commdlg/printdlg.c PRINTDLG_UpdatePrintDlgW: illegal call to MessageBoxA
> +    <li>dlls/commdlg/printdlg.c PRINTDLG_WMCommandW: illegal call to SendDlgItemMessageA
> +    <li>dlls/commdlg/printdlg.c PRINTDLG_WMInitDialogW: illegal call to LoadIconA
> +    <li>dlls/commdlg/printdlg.c PRINTDLG_WMInitDialogW: illegal call to LoadImageA
> +    <li>dlls/commdlg/printdlg.c PRINTDLG_WMInitDialogW: illegal call to RegisterWindowMessageA
> +    <li>dlls/commdlg/printdlg.c PRINTDLG_WMInitDialogW: illegal call to SendDlgItemMessageA
> +    <li>dlls/ddraw/main.c DirectDrawEnumerateExW: illegal call to DirectDrawEnumerateExA
> +    <li>dlls/gdi/printdrv.c StartDocW: illegal call to HEAP_strdupWtoA
> +    <li>dlls/gdi/printdrv.c StartDocW: illegal call to StartDocA
> +    <li>dlls/hhctrl.ocx/hhctrl.c HtmlHelpW: illegal call to MessageBoxA
> +    <li>dlls/kernel/comm.c CommConfigDialogW: illegal call to CommConfigDialogA
> +    <li>dlls/kernel/comm.c CommConfigDialogW: illegal call to HEAP_strdupWtoA
> +    <li>dlls/kernel/comm.c SetDefaultCommConfigW: illegal call to HEAP_strdupWtoA
> +    <li>dlls/kernel/comm.c SetDefaultCommConfigW: illegal call to SetDefaultCommConfigA
> +    <li>dlls/kernel/resource.c FindResourceExW: illegal call to get_res_name_type_WtoA
> +    <li>dlls/lzexpand/lzexpand_main.c GetExpandedNameW: illegal call to GetExpandedNameA
> +    <li>dlls/lzexpand/lzexpand_main.c LZOpenFileW: illegal call to LZOpenFileA
> +    <li>dlls/rpcrt4/rpc_binding.c RpcBindingToStringBindingW: illegal call to RpcBindingToStringBindingA
> +    <li>dlls/rpcrt4/rpc_binding.c RpcBindingToStringBindingW: illegal call to RpcStringFreeA
> +    <li>dlls/rpcrt4/rpc_binding.c RPCRT4_CompleteBindingW: illegal call to RPCRT4_strdupWtoA
> +    <li>dlls/rpcrt4/rpc_binding.c RPCRT4_CompleteBindingW: illegal call to RPCRT4_strndupA
> +    <li>dlls/rpcrt4/rpc_binding.c RPCRT4_CreateBindingW: illegal call to RPCRT4_strdupWtoA
> +    <li>dlls/rpcrt4/rpc_server.c RpcServerUseProtseqEpExW: illegal call to RPCRT4_strdupWtoA
> +    <li>dlls/secur32/secur32.c SECUR32_findPackageW: illegal call to _makeFnTableA
> +    <li>dlls/secur32/thunks.c thunk_AcquireCredentialsHandleW: illegal call to AcquireCredentialsHandleA
> +    <li>dlls/secur32/thunks.c thunk_ImportSecurityContextW: illegal call to ImportSecurityContextA
> +    <li>dlls/shell32/pidl.c SHELL_GetPathFromIDListW: illegal call to lstrlenA
> +    <li>dlls/shell32/shell32_main.c ShellAboutW: illegal call to FindResourceA
> +    <li>dlls/shell32/shellole.c DragQueryFileW: illegal call to DragQueryFileA
> +    <li>dlls/shell32/systray.c Shell_NotifyIconW: illegal call to Shell_NotifyIconA
> +    <li>dlls/shlwapi/ordinal.c DragQueryFileWrapW: illegal call to LoadLibraryA
> +    <li>dlls/shlwapi/ordinal.c ExtractIconExWrapW: illegal call to LoadLibraryA
> +    <li>dlls/shlwapi/ordinal.c ExtractIconWrapW: illegal call to LoadLibraryA
> +    <li>dlls/shlwapi/ordinal.c ExtTextOutWrapW: illegal call to LoadLibraryA
> +    <li>dlls/shlwapi/ordinal.c GetFileVersionInfoSizeWrapW: illegal call to LoadLibraryA
> +    <li>dlls/shlwapi/ordinal.c GetFileVersionInfoWrapW: illegal call to LoadLibraryA
> +    <li>dlls/shlwapi/ordinal.c GetOpenFileNameWrapW: illegal call to LoadLibraryA
> +    <li>dlls/shlwapi/ordinal.c GetSaveFileNameWrapW: illegal call to LoadLibraryA
> +    <li>dlls/shlwapi/ordinal.c PageSetupDlgWrapW: illegal call to LoadLibraryA
> +    <li>dlls/shlwapi/ordinal.c PlaySoundWrapW: illegal call to LoadLibraryA
> +    <li>dlls/shlwapi/ordinal.c PrintDlgWrapW: illegal call to LoadLibraryA
> +    <li>dlls/shlwapi/ordinal.c SHBrowseForFolderWrapW: illegal call to LoadLibraryA
> +    <li>dlls/shlwapi/ordinal.c SHCreateWorkerWindowW: illegal call to LoadCursorA
> +    <li>dlls/shlwapi/ordinal.c SHCreateWorkerWindowW: illegal call to SetWindowLongA
> +    <li>dlls/shlwapi/ordinal.c SHCreateWorkerWindowW: illegal call to SHCreateWorkerWindowA
> +    <li>dlls/shlwapi/ordinal.c SHDefExtractIconWrapW: illegal call to LoadLibraryA
> +    <li>dlls/shlwapi/ordinal.c ShellExecuteExWrapW: illegal call to LoadLibraryA
> +    <li>dlls/shlwapi/ordinal.c SHFileOperationWrapW: illegal call to LoadLibraryA
> +    <li>dlls/shlwapi/ordinal.c SHGetFileInfoWrapW: illegal call to LoadLibraryA
> +    <li>dlls/shlwapi/ordinal.c SHGetNewLinkInfoWrapW: illegal call to LoadLibraryA
> +    <li>dlls/shlwapi/ordinal.c SHGetPathFromIDListWrapW: illegal call to LoadLibraryA
> +    <li>dlls/shlwapi/ordinal.c SHStringFromGUIDW: illegal call to SHStringFromGUIDA
> +    <li>dlls/shlwapi/ordinal.c VerQueryValueWrapW: illegal call to LoadLibraryA
> +    <li>dlls/shlwapi/ordinal.c WNetGetLastErrorWrapW: illegal call to LoadLibraryA
> +    <li>dlls/shlwapi/ordinal.c WNetRestoreConnectionWrapW: illegal call to LoadLibraryA
> +    <li>dlls/shlwapi/path.c PathIsNetworkPathW: illegal call to LoadLibraryA
> +    <li>dlls/shlwapi/string.c StrCmpLogicalW: illegal call to SHLWAPI_ChrCmpHelperA
> +    <li>dlls/shlwapi/string.c StrFormatByteSizeW: illegal call to StrFormatByteSize64A
> +    <li>dlls/shlwapi/string.c StrRetToStrW: illegal call to SHStrDupA
> +    <li>dlls/shlwapi/string.c StrRStrIW: illegal call to ChrCmpIA
> +    <li>dlls/shlwapi/url.c ParseURLW: illegal call to lstrlenA
> +    <li>dlls/user/message.c PeekMessageW: illegal call to GetClassLongA
> +    <li>dlls/version/install.c VerInstallFileW: illegal call to VerInstallFileA
> +    <li>dlls/wininet/internet.c InternetCheckConnectionW: illegal call to InternetCheckConnectionA
> +    <li>dlls/winmm/driver.c OpenDriverW: illegal call to OpenDriverA
> +    <li>dlls/winmm/joystick.c joyGetDevCapsW: illegal call to joyGetDevCapsA
> +    <li>dlls/winmm/mci.c mciSendStringW: illegal call to mciSendStringA
> +    <li>dlls/winmm/mmio.c mmioRenameW: illegal call to mmioRenameA
> +    <li>dlls/winmm/mmio.c mmioStringToFOURCCW: illegal call to mmioStringToFOURCCA
> +    <li>dlls/winmm/winmm.c auxGetDevCapsW: illegal call to auxGetDevCapsA
> +    <li>dlls/winmm/winmm.c mciGetErrorStringW: illegal call to mciGetErrorStringA
> +    <li>dlls/winmm/winmm.c mciSendCommandW: illegal call to MCI_MapMsgWtoA
> +    <li>dlls/winmm/winmm.c mciSendCommandW: illegal call to MCI_UnmapMsgWtoA
> +    <li>dlls/winmm/winmm.c mciSendCommandW: illegal call to mciSendCommandA
> +    <li>dlls/winmm/winmm.c midiInGetDevCapsW: illegal call to midiInGetDevCapsA
> +    <li>dlls/winmm/winmm.c midiOutGetDevCapsW: illegal call to midiOutGetDevCapsA
> +    <li>dlls/winmm/winmm.c mixerGetControlDetailsW: illegal call to mixerGetControlDetailsA
> +    <li>dlls/winmm/winmm.c mixerGetDevCapsW: illegal call to mixerGetDevCapsA
> +    <li>dlls/winmm/winmm.c mixerGetLineControlsW: illegal call to mixerGetLineControlsA
> +    <li>dlls/winmm/winmm.c mixerGetLineInfoW: illegal call to mixerGetLineInfoA
> +    <li>dlls/winmm/winmm.c waveInGetDevCapsW: illegal call to waveInGetDevCapsA
> +    <li>dlls/winmm/winmm.c waveOutGetDevCapsW: illegal call to waveOutGetDevCapsA
> +    <li>dlls/winsock/socket.c WSAStringToAddressW: illegal call to WSAStringToAddressA
> +    <li>dlls/winspool/info.c AddPrinterW: illegal call to DEVMODEdupWtoA
> +    <li>dlls/winspool/info.c AddPrinterW: illegal call to RegCreateKeyA
> +    <li>dlls/winspool/info.c AddPrinterW: illegal call to RegQueryValueA
> +    <li>dlls/winspool/info.c AddPrinterW: illegal call to RegSetValueExA
> +    <li>dlls/winspool/info.c DeviceCapabilitiesW: illegal call to DeviceCapabilitiesA
> +    <li>dlls/winspool/info.c DeviceCapabilitiesW: illegal call to DEVMODEdupWtoA
> +    <li>dlls/winspool/info.c DeviceCapabilitiesW: illegal call to HEAP_strdupWtoA
> +    <li>dlls/winspool/info.c DocumentPropertiesW: illegal call to DEVMODEdupWtoA
> +    <li>dlls/winspool/info.c DocumentPropertiesW: illegal call to DocumentPropertiesA
> +    <li>dlls/winspool/info.c DocumentPropertiesW: illegal call to HEAP_strdupWtoA
> +    <li>dlls/winspool/info.c OpenPrinterW: illegal call to RegCreateKeyA
> +    <li>programs/winedbg/winedbg.c dbg_outputW: illegal call to dbg_outputA
> +    <li>windows/clipboard.c GetClipboardFormatNameW: illegal call to GetClipboardFormatNameA
> +    <li>windows/clipboard.c RegisterClipboardFormatW: illegal call to HEAP_strdupWtoA
> +    <li>windows/clipboard.c RegisterClipboardFormatW: illegal call to RegisterClipboardFormatA
> +    <li>windows/cursoricon.c map_fileW: illegal call to CreateFileMappingA
> +    <li>windows/defwnd.c DEFWND_ImmIsUIMessageW: illegal call to GetModuleHandleA
> +    <li>windows/winhelp.c WinHelpW: illegal call to WinHelpA
> +    <li>windows/winhelp.c  WinHelpW: illegal call to WinHelpA
> +    <li>windows/winproc.c CallWindowProcW: illegal call to WINPROC_CallProc32WTo32A
> +    <li>windows/winproc.c WINPROC_MapMsg16To32W: illegal call to CREATESTRUCT16to32A
> +    <li>windows/winproc.c WINPROC_MapMsg16To32W: illegal call to MDICREATESTRUCT16to32A
> +    <li>windows/winproc.c WINPROC_MapMsg16To32W: illegal call to WINPROC_MapMsg16To32A
> +    <li>windows/winproc.c WINPROC_MapMsg32ATo32W: illegal call to GetWindowLongA
> +    <li>windows/winproc.c WINPROC_UnmapMsg16To32W: illegal call to WINPROC_UnmapMsg16To32A
> +    <li>windows/winproc.c WINPROC_UnmapMsg32ATo32W: illegal call to GetWindowLongA
>    </ul>
>  
>    <p>Please note that patches have been submitted for the <span class=submitted>italic</span> entries;
> 
> 
> 
-- 
Adam Petaccia <adam at tpetaccia.com>




More information about the wine-devel mailing list