[MSGINA] Improve exports for all stubbed functions (#3256)
authorOleg Dubinskiy <oleg.dubinskij2013@yandex.ua>
Sat, 28 Nov 2020 14:32:53 +0000 (16:32 +0200)
committerGitHub <noreply@github.com>
Sat, 28 Nov 2020 14:32:53 +0000 (17:32 +0300)
Since they are completely undocumented and unlikely will be implemented in ROS,
stubbing them only in spec file seems to be a better solution than adding wrong
prototypes.

Use `stdcall -stub` instead of `stub` and enable parameters of the functions.
This allows to properly load our msgina.dll in Windows XP/2003.

Although it still doesn't boot to desktop with dll replaced, but nevertheless
the system crash that was caused by stubbed functions does no longer happen.

dll/win32/msgina/msgina.spec

index 53de1e6..44c2181 100644 (file)
@@ -1,31 +1,31 @@
-1 stub -noname ShellGetUserList   ; (long long long)
-2 stub -noname ShellStatusHostEnd ; (long)
+1 stdcall -stub -noname ShellGetUserList(long long long)
+2 stdcall -stub -noname ShellStatusHostEnd(long)
 3 stdcall -noname ShellIsFriendlyUIActive()
-4 stub -noname ShellIsSuspendAllowed   ; ()
-5 stub -noname ShellIsRemoteConnectionsEnabled ; ()
-6 stub -noname ShellEnableFriendlyUI    ; (long)
-7 stub -noname ShellEnableMultipleUsers ; (long)
-8 stub -noname ShellEnableRemoteConnections ; (long)
+4 stdcall -stub -noname ShellIsSuspendAllowed()
+5 stdcall -stub -noname ShellIsRemoteConnectionsEnabled()
+6 stdcall -stub -noname ShellEnableFriendlyUI(long)
+7 stdcall -stub -noname ShellEnableMultipleUsers(long)
+8 stdcall -stub -noname ShellEnableRemoteConnections(long)
 9 stdcall -noname ShellTurnOffDialog(ptr)
-10 stub -noname ShellIsMultipleUsersEnabled ; ()
-11 stub -noname ShellACPIPowerButtonPressed ; (long long long)
-12 stub -noname ShellIsSingleUserNoPassword ; (wstr wstr)
-13 stub -noname ShellStatusHostShuttingDown ; ()
-14 stub -noname ShellNotifyThemeUserChange  ; (long long)
-15 stub -noname ShellSwitchWhenInteractiveReady ; (long long)
+10 stdcall -stub -noname ShellIsMultipleUsersEnabled()
+11 stdcall -stub -noname ShellACPIPowerButtonPressed(long long long)
+12 stdcall -stub -noname ShellIsSingleUserNoPassword(wstr wstr)
+13 stdcall -stub -noname ShellStatusHostShuttingDown()
+14 stdcall -stub -noname ShellNotifyThemeUserChange(long long)
+15 stdcall -stub -noname ShellSwitchWhenInteractiveReady(long long)
 16 stdcall -noname ShellDimScreen(ptr ptr)
-17 stub -noname ShellInstallAccountFilterData ; ()
-18 stub -noname ShellStatusHostBegin ; (long)
-19 stub -noname ShellIsUserInteractiveLogonAllowed ; (long)
-20 stub -noname ShellSwitchUser ; (long)
-21 stub -noname ShellReturnToWelcome ; (long)
-22 stub -noname ShellStatusHostPowerEvent ; ()
-23 stub -noname ShellStartCredentialServer ; (wstr long long long)
-24 stub -noname ShellAcquireLogonMutex ; ()
-25 stub -noname ShellReleaseLogonMutex ; (long)
-26 stub -noname ShellSignalShutdown    ; ()
-27 stub -noname ShellStatusHostHide    ; ()
-28 stub -noname ShellStatusHostShow    ; ()
+17 stdcall -stub -noname ShellInstallAccountFilterData()
+18 stdcall -stub -noname ShellStatusHostBegin(long)
+19 stdcall -stub -noname ShellIsUserInteractiveLogonAllowed(long)
+20 stdcall -stub -noname ShellSwitchUser(long)
+21 stdcall -stub -noname ShellReturnToWelcome(long)
+22 stdcall -stub -noname ShellStatusHostPowerEvent()
+23 stdcall -stub -noname ShellStartCredentialServer(wstr long long long)
+24 stdcall -stub -noname ShellAcquireLogonMutex()
+25 stdcall -stub -noname ShellReleaseLogonMutex(long)
+26 stdcall -stub -noname ShellSignalShutdown()
+27 stdcall -stub -noname ShellStatusHostHide()
+28 stdcall -stub -noname ShellStatusHostShow()
 @ stdcall ShellShutdownDialog(ptr wstr long)
 @ stdcall WlxActivateUserShell(ptr wstr wstr ptr)
 @ stdcall WlxDisconnectNotify(ptr)
@@ -42,7 +42,7 @@
 @ stdcall WlxLogoff(ptr)
 @ stdcall WlxNegotiate(long ptr)
 @ stdcall WlxNetworkProviderLoad(ptr ptr)
-@ stub WlxReconnectNotify ; (long)
+@ stdcall -stub WlxReconnectNotify(long)
 @ stdcall WlxRemoveStatusMessage(ptr)
 @ stdcall WlxScreenSaverNotify(ptr ptr)
 @ stdcall WlxShutdown(ptr long)