mirror of
https://github.com/reactos/reactos.git
synced 2024-08-22 03:12:51 +00:00
![]() shell32.ShellMessageBoxW redirects to shlwapi.ShellMessageBoxWrapW. However the latter one (shlwapi) is exported by ordinal only. Trying to use in shell32.spec file the following syntax: 182 varargs ShellMessageBoxW() shlwapi.ShellMessageBoxWrapW will therefore fail at runtime, because Windows/ReactOS will fail to snap shlwapi.ShellMessageBoxWrapW. Using instead an export by orginal: 182 varargs ShellMessageBoxW() shlwapi.#388 actually fails as well, but at link time, by both MSVC' LINK and GNU's dlltool. This generates a .def file containing the line: ShellMessageBoxW=shlwapi.#388 @182 It is not clear why it fails, because according to: https://docs.microsoft.com/en-us/cpp/build/reference/exports?view=vs-2019 and https://devblogs.microsoft.com/oldnewthing/20121116-00/?p=6073 this should be possible. However one encounters the same errors as those described at: https://groups.google.com/forum/#!topic/microsoft.public.vc.language/AVnx-EnYdsY and https://www.xspdf.com/questions/22333.shtml ... So instead we use another trick, that appears to be already in use in the shell32.spec. Since the shlwapi functions are imported because we link to it, this means that ShellMessageBoxWrapW() is already available through this import. So we can specify it in the .spec file as is, without a full name prefixed with "shlwapi." . Therefore the associated shell32.ShellMessageBoxW function will instead link to the small ShellMessageBoxWrapW() import stub that is generated automatically. |
||
---|---|---|
.. | ||
dialogs | ||
droptargets | ||
folders | ||
lang | ||
res | ||
shelldesktop | ||
shellmenu | ||
shellrecyclebin | ||
wine | ||
avi_res.rc | ||
bitmap_res.rc | ||
CActiveDesktop.cpp | ||
CActiveDesktop.h | ||
CCopyToMenu.cpp | ||
CCopyToMoveToMenu.h | ||
CDefaultContextMenu.cpp | ||
CDefView.cpp | ||
CDefViewBckgrndMenu.cpp | ||
CDefViewDual.cpp | ||
CDropTargetHelper.cpp | ||
CDropTargetHelper.h | ||
CEnumIDListBase.cpp | ||
CEnumIDListBase.h | ||
CExtractIcon.cpp | ||
CFileSysBindData.cpp | ||
CFolder.cpp | ||
CFolder.h | ||
CFolderItems.cpp | ||
CFolderItems.h | ||
CFolderItemVerbs.cpp | ||
CFolderItemVerbs.h | ||
CFolderOptions.cpp | ||
CFolderOptions.h | ||
changenotify.cpp | ||
CIDLDataObj.cpp | ||
CMakeLists.txt | ||
CMoveToMenu.cpp | ||
CNewMenu.cpp | ||
CNewMenu.h | ||
COpenWithMenu.cpp | ||
COpenWithMenu.h | ||
CQueryAssociations.cpp | ||
CQueryAssociations.h | ||
CSendToMenu.cpp | ||
CSendToMenu.h | ||
CShellDispatch.cpp | ||
CShellDispatch.h | ||
CShellItem.cpp | ||
CShellItem.h | ||
CShellLink.cpp | ||
CShellLink.h | ||
CUserNotification.cpp | ||
CUserNotification.h | ||
debughlp.cpp | ||
debughlp.h | ||
folders.cpp | ||
icon_res.rc | ||
iconcache.cpp | ||
precomp.h | ||
rgs_res.rc | ||
shell32.cpp | ||
shell32.rc | ||
shell32.spec | ||
shell32_shldisp.idl | ||
shell32_version.h | ||
shell32_version.rc | ||
shfldr.h | ||
shlexec.cpp | ||
shlfileop.cpp | ||
shlfolder.cpp | ||
shobjidl_local.idl | ||
shresdef.h | ||
stubs.cpp | ||
systray.cpp | ||
vista.c |