diff --git a/tools/winapi/win16.api b/tools/winapi/win16.api index 6a17771c91d..2b28efa60cc 100644 --- a/tools/winapi/win16.api +++ b/tools/winapi/win16.api @@ -1234,7 +1234,7 @@ void void -%%wineps16.dll +%%wineps16.drv %long @@ -1297,6 +1297,42 @@ BOOL HWND16 + +%%wintab.dll + +%long + +DWORD +LPARAM +LRESULT + +%ptr + +LPBYTE +LPINT16 +LPLOGCONTEXT16 +LPVOID +LPWTHOOKPROC16 +UINT16 * +WTCONFIGPROC16 +WTENUMPROC16 +WTHOOKPROC16 + +%str + +LPSTR + +%word + +BOOL16 +HCTX16 +HMGR16 +HWND16 +HWTHOOK16 +INT16 +UINT16 +WPARAM16 + %%winsock.dll %long diff --git a/tools/winapi/win32.api b/tools/winapi/win32.api index 4032b287c4c..fd3cb3e3602 100644 --- a/tools/winapi/win32.api +++ b/tools/winapi/win32.api @@ -17,6 +17,8 @@ NTSTATUS POLICY_INFORMATION_CLASS REGSAM SC_HANDLE +SC_STATUS_TYPE +SE_OBJECT_TYPE SECURITY_IMPERSONATION_LEVEL SECURITY_INFORMATION SERVICE_STATUS_HANDLE @@ -53,8 +55,11 @@ LPSERVICE_TABLE_ENTRYA LPSERVICE_TABLE_ENTRYW LPVOID LPVOID * +LPWSTR * PACL PACL * +PACTRL_ACCESSW * +PACTRL_AUDITW * PBOOL PDWORD PGENERIC_MAPPING @@ -164,8 +169,10 @@ LPWSTR %long BOOL +DWORD HFCI HFDI +HRESULT INT_PTR TCOMP USHORT @@ -173,6 +180,7 @@ int %ptr +DLLVERSIONINFO * PCCAB PERF PFDICABINETINFO @@ -201,6 +209,10 @@ PFNWRITE char * void * +%str + +LPCSTR + %%comcat.dll %long @@ -405,6 +417,26 @@ HDC void +%%d3dx8.dll + +%long + +DWORD +HFONT +HRESULT +UINT + +%ptr + +LPD3DXBUFFER * +LPDIRECT3DDEVICE8 +LPCVOID +LPD3DXFONT * + +%str + +LPSTR + %%ddraw.dll %long @@ -893,6 +925,7 @@ LPCVOID LPDCB LPDEBUG_EVENT LPDWORD +LPFIBER_START_ROUTINE LPFILETIME LPINPUT_RECORD LPLDT_ENTRY @@ -964,7 +997,6 @@ BUILTIN16_DESCRIPTOR * FARPROC16 UINT16 * SEGPTR -struct DPMI_segments * %str @@ -1270,7 +1302,7 @@ MSVCRT_clock_t MSVCRT_complex MSVCRT_size_t MSVCRT_time_t -WCHAR +MSVCRT_wchar_t int long unsigned int @@ -1280,6 +1312,7 @@ unsigned long LONGLONG ULONGLONG +__int64 %ptr @@ -1287,7 +1320,6 @@ EXCEPTION_FRAME * EXCEPTION_FRAME ** MSVCRT_EXCEPTION_FRAME * MSVCRT_FILE * -MSVCRT_compar_fn_t MSVCRT_exception * MSVCRT_fpos_t * MSVCRT_free_func @@ -1296,15 +1328,15 @@ MSVCRT_matherr_func MSVCRT_new_handler_func MSVCRT_sig_handler_func MSVCRT_time_t * +MSVCRT_wchar_t * +MSVCRT_wchar_t ** +MSVCRT_wchar_t *** MSVCRT_wint_t PCONTEXT PEXCEPTION_FRAME PEXCEPTION_FRAME * PEXCEPTION_POINTERS PEXCEPTION_RECORD -WCHAR * -WCHAR ** -WCHAR *** WORD ** _HEAPINFO * _INITTERMFUN * @@ -1313,7 +1345,6 @@ __non_rtti_object * _onexit_t _onexit_t ** _se_translator_function -_stati64 * bad_cast * bad_typeid * char * @@ -1326,6 +1357,7 @@ struct MSVCRT_tm * struct _diskfree_t * struct _finddata_t * struct _stat * +struct _stati64 * struct _timeb * struct _utimbuf * struct _wfinddata_t * @@ -1397,10 +1429,16 @@ LPBITMAPINFO LPBITMAPINFOHEADER LPDWORD LPVOID +PCOMPVARS %str LPCSTR +LPSTR + +%void + +void %wstr @@ -1416,6 +1454,7 @@ NET_API_STATUS %ptr +LPBYTE LPBYTE * LPDWORD LPVOID @@ -1527,6 +1566,9 @@ PIMAGE_SECTION_HEADER PIO_APC_ROUTINE PIO_STATUS_BLOCK PLARGE_INTEGER +PLPCMESSAGE +PLPCSECTIONINFO +PLPCSECTIONMAPINFO PLUID POBJDIR_INFORMATION POBJECT_ATTRIBUTES @@ -2107,9 +2149,11 @@ MIDL_STUB_MESSAGE * PFORMAT_STRING PMIDL_STUB_DESC PMIDL_STUB_MESSAGE +PRPC_BINDING_VECTOR PRPC_MESSAGE PRPC_POLICY PRPCOLEMESSAGE +PUUID_VECTOR ProxyFileInfo ** REFCLSID REFIID @@ -2123,6 +2167,8 @@ RPC_STATUS * UUID * unsigned char * unsigned char ** +unsigned short * +unsigned short ** void * %str @@ -2308,6 +2354,7 @@ LPSHELLEXECUTEINFOA LPSHELLEXECUTEINFOW LPSHELLFLAGSTATE LPSHELLFOLDER +LPSHELLSTATE LPSHELLVIEW * LPSHFILEOPSTRUCTA LPSHFILEOPSTRUCTW @@ -2397,6 +2444,7 @@ DLLVERSIONINFO * DWORD * HICON * HKEY * +HWND * IBindCtx * IConnectionPoint ** IFACE_INDEX_TBL * @@ -2439,7 +2487,6 @@ LPWSTR * OLECMD * OLECMDTEXT * PHUSKEY -PHWND PLONG PSECURITY_DESCRIPTOR PVOID @@ -2751,8 +2798,6 @@ LPBYTE LPCDLGTEMPLATEA LPCDLGTEMPLATEW LPCMENUINFO -LPCONVCONTEXT -LPCONVINFO LPCVOID LPDEVMODEA LPDEVMODEW @@ -2783,6 +2828,8 @@ MONITORENUMPROC MSG * PAINTSTRUCT * PCOMBOBOXINFO +PCONVCONTEXT +PCONVINFO PCURSORINFO PDWORD_PTR PFNCALLBACK @@ -2925,6 +2972,16 @@ LPCSTR void +%%winejack.drv + +%long + +DWORD +HDRVR +LONG +UINT +WORD + %%winemp3.acm %long @@ -3037,6 +3094,7 @@ LPINTERNET_BUFFERSW LPINTERNET_CACHE_ENTRY_INFOA LPINTERNET_CACHE_ENTRY_INFOW LPURL_COMPONENTSA +LPURL_COMPONENTSW LPVOID LPWIN32_FIND_DATAA LPWIN32_FIND_DATAW @@ -3178,6 +3236,40 @@ LPSTR LPCWSTR LPWSTR +%%wintab32.dll + +%long + +BOOL +DWORD +LPARAM +LRESULT +HCTX +HMGR +HWND +HWTHOOK +UINT +WPARAM +int + +%ptr + +LPBYTE +LPINT +LPLOGCONTEXTA +LPLOGCONTEXTW +LPVOID +UINT * +WTENUMPROC + +%str + +LPSTR + +%wstr + +LPWSTR + %%wintrust.dll %long diff --git a/tools/winapi/winapi.pm b/tools/winapi/winapi.pm index a95ee51a7ec..b0ef7be9c6f 100644 --- a/tools/winapi/winapi.pm +++ b/tools/winapi/winapi.pm @@ -293,6 +293,19 @@ sub parse_spec_file { $calling_convention .= " -register"; } + if ($internal_name =~ /^(.*?)\.(.*?)$/) { + my $forward_module = $1; + my $forward_name = $2; + + if (0) { + $calling_convention .= " -forward"; + } else { + $calling_convention = "forward"; + } + + $$function_forward{$module}{$external_name} = [$forward_module, $forward_name]; + } + if($external_name ne "@") { $$module_external_calling_convention{$module}{$external_name} = $calling_convention; } else { diff --git a/tools/winapi_check/modules.dat b/tools/winapi_check/modules.dat index 208f3a1ce20..792306addd5 100644 --- a/tools/winapi_check/modules.dat +++ b/tools/winapi_check/modules.dat @@ -48,6 +48,10 @@ dlls/crypt32 dlls/d3d8 +% dlls/d3dx8/d3dx8.spec + +dlls/d3dx8 + % dlls/dciman32/dciman32.spec dlls/dciman32 @@ -484,15 +488,11 @@ dlls/winaspi dlls/winedos -% dlls/winedos/winedos16.spec - -dlls/winedos - % dlls/wineps/wineps.spec dlls/wineps -% dlls/wineps/wineps16.spec +% dlls/wineps/wineps16.drv.spec dlls/wineps @@ -548,6 +548,10 @@ dlls/winmm/winealsa dlls/winmm/wineaudioio +% dlls/winmm/winejack/winejack.drv.spec + +dlls/winmm/winejack + % dlls/winmm/winenas/winenas.drv.spec dlls/winmm/winenas @@ -574,6 +578,14 @@ dlls/winnls dlls/winsock +% dlls/wintab32/wintab.spec + +dlls/wintab32 + +% dlls/wintab32/wintab32.spec + +dlls/wintab32 + % dlls/winsock/ws2_32.spec dlls/winsock diff --git a/tools/winapi_check/winapi_check b/tools/winapi_check/winapi_check index d31b581e444..ca4cefd1f46 100755 --- a/tools/winapi_check/winapi_check +++ b/tools/winapi_check/winapi_check @@ -42,10 +42,12 @@ use config qw( use output qw($output); use winapi_check_options qw($options); -if($options->progress) { - $output->enable_progress; -} else { - $output->disable_progress; +BEGIN { + if($options->progress) { + $output->enable_progress; + } else { + $output->disable_progress; + } } use modules qw($modules); @@ -94,7 +96,7 @@ if ($options->global) { } } elsif(-e "$wine_dir/include/$header") { $include2info{$file}{includes}{"include/$header"}++; - } else { + } elsif ($header ne "config.h") { $output->write("$file: #include \"$header\" is not a local include\n"); } } @@ -536,11 +538,11 @@ foreach my $file (@c_files) { } else { $include = "$header"; } - } elsif($header eq "controls.h") { # FIXME: Kludge + } elsif($header =~ /^(?:controls\.h|message\.h)$/) { # FIXME: Kludge $include = "dlls/user/$header"; - } elsif($header eq "ts_xlib.h") { # FIXME: Kludge + } elsif($header =~ /^(?:ts_xlib\.h|winproc\.h|x11font\.h|)$/) { # FIXME: Kludge $include = "dlls/x11drv/$header"; - } elsif($check_local) { + } elsif($check_local && $header ne "config.h") { $output->write("$file: #include \"$header\": file not found\n"); } @@ -611,12 +613,12 @@ foreach my $file (@c_files) { $include2info{$name}{used}++; } } - } elsif($header eq "controls.h") { # FIXME: Kludge + } elsif($header =~ /^(?:controls\.h|message\.h)$/) { # FIXME: Kludge $include2info{"dlls/user/$header"}{used}++; foreach my $name (keys(%{$include2info{"dlls/user/$header"}{includes}})) { $include2info{$name}{used}++; } - } elsif($header eq "ts_xlib.h") { # FIXME: Kludge + } elsif($header =~ /^(?:ts_xlib\.h|winproc\.h|x11font\.h|)$/) { # FIXME: Kludge $include2info{"dlls/x11drv/$header"}{used}++; foreach my $name (keys(%{$include2info{"dlls/user/$header"}{includes}})) { $include2info{$name}{used}++; @@ -626,7 +628,7 @@ foreach my $file (@c_files) { foreach my $name (keys(%{$include2info{"include/$header"}{includes}})) { $include2info{$name}{used}++; } - } else { + } elsif ($header ne "config.h") { $output->write("$file: #include \"$header\" is not a local include\n"); } } diff --git a/tools/winapi_check/winapi_local.pm b/tools/winapi_check/winapi_local.pm index 898551f0fe9..6dd186ab405 100644 --- a/tools/winapi_check/winapi_local.pm +++ b/tools/winapi_check/winapi_local.pm @@ -412,7 +412,7 @@ sub check_file { } if($options->cross_call_unicode_ascii) { - if($name =~ /W$/) { + if($name =~ /(?write("$file: $module: $name: illegal call to $called_name (Unicode -> ASCII)\n");