// -------------------------------------------------------------------------- // Module Name: glue.cpp // // Copyright (c) 2000-2001, Microsoft Corporation // // C File containing "glue" functions that the shell depot component of // msgina uses. // // History: 2001-01-03 vtan created // 2001-01-11 vtan added stub functions for imp library // -------------------------------------------------------------------------- extern "C" { #include "msgina.h" #include "shtdnp.h" } // -------------------------------------------------------------------------- // ::_Gina_SasNotify // // Arguments: pWlxContext = PGLOBALS struct. // dwSASType = SAS type. // // Returns: // // Purpose: Notifies winlogon of a generated SAS. // // History: 2001-01-11 vtan created // -------------------------------------------------------------------------- EXTERN_C void _Gina_SasNotify (void *pWlxContext, DWORD dwSASType) { pWlxFuncs->WlxSasNotify(static_cast(pWlxContext)->hGlobalWlx, dwSASType); } // -------------------------------------------------------------------------- // ::_Gina_SetTimeout // // Arguments: pWlxContext = PGLOBALS struct. // dwTimeout = Timeout value. // // Returns: BOOL // // Purpose: Sets the internal msgina timeout value for dialogs. // // History: 2001-01-03 vtan created // -------------------------------------------------------------------------- EXTERN_C BOOL _Gina_SetTimeout (void *pWlxContext, DWORD dwTimeout) { return(pWlxFuncs->WlxSetTimeout(static_cast(pWlxContext)->hGlobalWlx, dwTimeout)); } // -------------------------------------------------------------------------- // ::_Gina_DialogBoxParam // // Arguments: pWlxContext = PGLOBALS struct. // See the platform SDK under DialogBoxParam. // // Returns: See the platform SDK under DialogBoxParam. // // Purpose: Calls winlogon's implementation of DialogBoxParam. // // History: 2001-01-03 vtan created // -------------------------------------------------------------------------- EXTERN_C INT_PTR _Gina_DialogBoxParam (void *pWlxContext, HINSTANCE hInstance, LPCWSTR pszTemplate, HWND hwndParent, DLGPROC pfnDlgProc, LPARAM lParam) { return(pWlxFuncs->WlxDialogBoxParam(static_cast(pWlxContext)->hGlobalWlx, hInstance, const_cast(pszTemplate), hwndParent, pfnDlgProc, lParam)); } // -------------------------------------------------------------------------- // ::_Gina_MessageBox // // Arguments: pWlxContext = PGLOBALS struct. // See the platform SDK under MessageBox. // // Returns: See the platform SDK under MessageBox. // // Purpose: Calls winlogon's implementation of MessageBox. // // History: 2001-03-02 vtan created // -------------------------------------------------------------------------- EXTERN_C INT_PTR _Gina_MessageBox (void *pWlxContext, HWND hwnd, LPCWSTR pszText, LPCWSTR pszCaption, UINT uiType) { return(pWlxFuncs->WlxMessageBox(static_cast(pWlxContext)->hGlobalWlx, hwnd, const_cast(pszText), const_cast(pszCaption), uiType)); } // -------------------------------------------------------------------------- // ::_Gina_SwitchDesktopToUser // // Arguments: pWlxContext = PGLOBALS struct. // // Returns: int // // Purpose: Calls winlogon's implementation for SwitchDesktopToUser. // // History: 2001-01-03 vtan created // -------------------------------------------------------------------------- EXTERN_C int _Gina_SwitchDesktopToUser (void *pWlxContext) { return(pWlxFuncs->WlxSwitchDesktopToUser(static_cast(pWlxContext)->hGlobalWlx)); } // -------------------------------------------------------------------------- // ::_Gina_ShutdownDialog // // Arguments: pWlxContext = PGLOBALS struct. // hwndParent = Parent HWND for dialog. // dwExcludeItems = Items to exclude from dialog. // // Returns: INT_PTR // // Purpose: Displays the shutdown that is hosted from winlogon not // explorer. // // History: 2001-01-03 vtan created // -------------------------------------------------------------------------- EXTERN_C INT_PTR _Gina_ShutdownDialog (void *pWlxContext, HWND hwndParent, DWORD dwExcludeItems) { return(static_cast(WinlogonShutdownDialog(hwndParent, static_cast(pWlxContext), dwExcludeItems))); } // -------------------------------------------------------------------------- // ::_Gina_GetUserToken // // Arguments: pWlxContext = PGLOBALS struct. // // Returns: HANDLE // // Purpose: Returns the user token handle. This handle must not be closed. // // History: 2001-01-03 vtan created // -------------------------------------------------------------------------- EXTERN_C HANDLE _Gina_GetUserToken (void *pWlxContext) { return(static_cast(pWlxContext)->UserProcessData.UserToken); } // -------------------------------------------------------------------------- // ::_Gina_GetUsername // // Arguments: pWlxContext = PGLOBALS struct. // // Returns: const WCHAR* // // Purpose: Returns the user name. Read only string. // // History: 2001-03-28 vtan created // -------------------------------------------------------------------------- EXTERN_C const WCHAR* _Gina_GetUsername (void *pWlxContext) { return(static_cast(pWlxContext)->UserName); } // -------------------------------------------------------------------------- // ::_Gina_GetDomain // // Arguments: pWlxContext = PGLOBALS struct. // // Returns: const WCHAR* // // Purpose: Returns the domain. Read only string. // // History: 2001-03-28 vtan created // -------------------------------------------------------------------------- EXTERN_C const WCHAR* _Gina_GetDomain (void *pWlxContext) { return(static_cast(pWlxContext)->Domain); } // -------------------------------------------------------------------------- // ::_Gina_SetTextFields // // Arguments: hwndDialog = HWND of the dialog. // pwszUsername = Username to set. // pwszDomain = Domain to set. // pwszPassword = Password to set. // // Returns: // // Purpose: Sets the values of the msgina logon dialog to the given // values. This allows pass thru of credentials from the UI host // to msgina to do the work. // // History: 2001-01-03 vtan created // -------------------------------------------------------------------------- EXTERN_C void _Gina_SetTextFields (HWND hwndDialog, const WCHAR *pwszUsername, const WCHAR *pwszDomain, const WCHAR *pwszPassword) { WCHAR szDomain[DNLEN + sizeof('\0')]; SetDlgItemText(hwndDialog, IDD_LOGON_NAME, pwszUsername); if ((pwszDomain == NULL) || (pwszDomain[0] == L'\0')) { DWORD dwComputerNameSize; TCHAR szComputerName[CNLEN + sizeof('\0')]; dwComputerNameSize = ARRAYSIZE(szComputerName); if (GetComputerName(szComputerName, &dwComputerNameSize) != FALSE) { lstrcpyn(szDomain, szComputerName, ARRAYSIZE(szDomain)); } pwszDomain = szDomain; } (LRESULT)SendMessage(GetDlgItem(hwndDialog, IDD_LOGON_DOMAIN), CB_SELECTSTRING, static_cast(-1), reinterpret_cast(pwszDomain)); SetDlgItemText(hwndDialog, IDD_LOGON_PASSWORD, pwszPassword); } // -------------------------------------------------------------------------- // ::_Gina_SetPasswordFocus // // Arguments: hwndDialog = HWND of dialog to set password focus. // // Returns: BOOL // // Purpose: Sets the focus to the password field in the dialog. // // History: 2001-01-03 vtan created // -------------------------------------------------------------------------- EXTERN_C BOOL _Gina_SetPasswordFocus (HWND hwndDialog) { return(SetPasswordFocus(hwndDialog)); } // -------------------------------------------------------------------------- // ::ShellGetUserList // // Arguments: See %SDXROOT%\shell\ext\gina\exports.cpp // // Returns: See %SDXROOT%\shell\ext\gina\exports.cpp // // Purpose: Stub function for export. // // History: 2001-01-11 vtan created // -------------------------------------------------------------------------- EXTERN_C LONG WINAPI ShellGetUserList (BOOL fRemoveGuest, DWORD *pdwUserCount, void* *pUserList) { return(_ShellGetUserList(fRemoveGuest, pdwUserCount, pUserList)); } // -------------------------------------------------------------------------- // ::ShellIsSingleUserNoPassword // // Arguments: See %SDXROOT%\shell\ext\gina\exports.cpp // // Returns: See %SDXROOT%\shell\ext\gina\exports.cpp // // Purpose: Stub function for export. // // History: 2001-01-11 vtan created // -------------------------------------------------------------------------- EXTERN_C BOOL WINAPI ShellIsSingleUserNoPassword (WCHAR *pwszUsername, WCHAR *pwszDomain) { return(_ShellIsSingleUserNoPassword(pwszUsername, pwszDomain)); } // -------------------------------------------------------------------------- // ::ShellIsFriendlyUIActive // // Arguments: See %SDXROOT%\shell\ext\gina\exports.cpp // // Returns: See %SDXROOT%\shell\ext\gina\exports.cpp // // Purpose: Stub function for export. // // History: 2001-01-11 vtan created // -------------------------------------------------------------------------- EXTERN_C BOOL WINAPI ShellIsFriendlyUIActive (void) { return(_ShellIsFriendlyUIActive()); } // -------------------------------------------------------------------------- // ::ShellIsMultipleUsersEnabled // // Arguments: See %SDXROOT%\shell\ext\gina\exports.cpp // // Returns: See %SDXROOT%\shell\ext\gina\exports.cpp // // Purpose: Stub function for export. // // History: 2001-01-11 vtan created // -------------------------------------------------------------------------- EXTERN_C BOOL WINAPI ShellIsMultipleUsersEnabled (void) { return(_ShellIsMultipleUsersEnabled()); } // -------------------------------------------------------------------------- // ::ShellIsRemoteConnectionsEnabled // // Arguments: See %SDXROOT%\shell\ext\gina\exports.cpp // // Returns: See %SDXROOT%\shell\ext\gina\exports.cpp // // Purpose: Stub function for export. // // History: 2001-01-11 vtan created // -------------------------------------------------------------------------- EXTERN_C BOOL WINAPI ShellIsRemoteConnectionsEnabled (void) { return(_ShellIsRemoteConnectionsEnabled()); } // -------------------------------------------------------------------------- // ::ShellEnableFriendlyUI // // Arguments: See %SDXROOT%\shell\ext\gina\exports.cpp // // Returns: See %SDXROOT%\shell\ext\gina\exports.cpp // // Purpose: Stub function for export. // // History: 2001-01-11 vtan created // -------------------------------------------------------------------------- EXTERN_C BOOL WINAPI ShellEnableFriendlyUI (BOOL fEnable) { return(_ShellEnableFriendlyUI(fEnable)); } // -------------------------------------------------------------------------- // ::ShellEnableMultipleUsers // // Arguments: See %SDXROOT%\shell\ext\gina\exports.cpp // // Returns: See %SDXROOT%\shell\ext\gina\exports.cpp // // Purpose: Stub function for export. // // History: 2001-01-11 vtan created // -------------------------------------------------------------------------- EXTERN_C BOOL WINAPI ShellEnableMultipleUsers (BOOL fEnable) { return(_ShellEnableMultipleUsers(fEnable)); } // -------------------------------------------------------------------------- // ::ShellEnableRemoteConnections // // Arguments: See %SDXROOT%\shell\ext\gina\exports.cpp // // Returns: See %SDXROOT%\shell\ext\gina\exports.cpp // // Purpose: Stub function for export. // // History: 2001-01-11 vtan created // -------------------------------------------------------------------------- EXTERN_C BOOL WINAPI ShellEnableRemoteConnections (BOOL fEnable) { return(_ShellEnableRemoteConnections(fEnable)); } // -------------------------------------------------------------------------- // ::ShellTurnOffDialog // // Arguments: See %SDXROOT%\shell\ext\gina\exports.cpp // // Returns: See %SDXROOT%\shell\ext\gina\exports.cpp // // Purpose: Stub function for export. // // History: 2001-01-11 vtan created // -------------------------------------------------------------------------- EXTERN_C DWORD WINAPI ShellTurnOffDialog (HWND hwndParent) { return(_ShellTurnOffDialog(hwndParent)); } // -------------------------------------------------------------------------- // ::ShellACPIPowerButtonPressed // // Arguments: See %SDXROOT%\shell\ext\gina\exports.cpp // // Returns: See %SDXROOT%\shell\ext\gina\exports.cpp // // Purpose: Stub function for export. // // History: 2001-01-11 vtan created // -------------------------------------------------------------------------- EXTERN_C int WINAPI ShellACPIPowerButtonPressed (void *pWlxContext, UINT uiEventType, BOOL fLocked) { return(_ShellACPIPowerButtonPressed(pWlxContext, uiEventType, fLocked)); } // -------------------------------------------------------------------------- // ::ShellIsSuspendAllowed // // Arguments: See %SDXROOT%\shell\ext\gina\exports.cpp // // Returns: See %SDXROOT%\shell\ext\gina\exports.cpp // // Purpose: Stub function for export. // // History: 2001-01-11 vtan created // -------------------------------------------------------------------------- EXTERN_C BOOL WINAPI ShellIsSuspendAllowed (void) { return(_ShellIsSuspendAllowed()); } // -------------------------------------------------------------------------- // ::ShellStatusHostBegin // // Arguments: See %SDXROOT%\shell\ext\gina\exports.cpp // // Returns: See %SDXROOT%\shell\ext\gina\exports.cpp // // Purpose: Stub function for export. // // History: 2001-01-11 vtan created // -------------------------------------------------------------------------- EXTERN_C void WINAPI ShellStatusHostBegin (UINT uiStartType) { _ShellStatusHostBegin(uiStartType); } // -------------------------------------------------------------------------- // ::ShellStatusHostEnd // // Arguments: See %SDXROOT%\shell\ext\gina\exports.cpp // // Returns: See %SDXROOT%\shell\ext\gina\exports.cpp // // Purpose: Stub function for export. // // History: 2001-01-11 vtan created // -------------------------------------------------------------------------- EXTERN_C void WINAPI ShellStatusHostEnd (UINT uiEndType) { _ShellStatusHostEnd(uiEndType); } // -------------------------------------------------------------------------- // ::ShellStatusHostShuttingDown // // Arguments: See %SDXROOT%\shell\ext\gina\exports.cpp // // Returns: See %SDXROOT%\shell\ext\gina\exports.cpp // // Purpose: Stub function for export. // // History: 2001-01-11 vtan created // -------------------------------------------------------------------------- EXTERN_C void WINAPI ShellStatusHostShuttingDown (void) { _ShellStatusHostShuttingDown(); } // -------------------------------------------------------------------------- // ::ShellStatusHostPowerEvent // // Arguments: See %SDXROOT%\shell\ext\gina\exports.cpp // // Returns: See %SDXROOT%\shell\ext\gina\exports.cpp // // Purpose: Stub function for export. // // History: 2001-01-11 vtan created // -------------------------------------------------------------------------- EXTERN_C void WINAPI ShellStatusHostPowerEvent (void) { _ShellStatusHostPowerEvent(); } // -------------------------------------------------------------------------- // ::ShellSwitchWhenInteractiveReady // // Arguments: See %SDXROOT%\shell\ext\gina\exports.cpp // // Returns: See %SDXROOT%\shell\ext\gina\exports.cpp // // Purpose: Stub function for export. // // History: 2001-01-11 vtan created // -------------------------------------------------------------------------- EXTERN_C BOOL WINAPI ShellSwitchWhenInteractiveReady (SWITCHTYPE eSwitchType, void *pWlxContext) { return(_ShellSwitchWhenInteractiveReady(eSwitchType, pWlxContext)); } // -------------------------------------------------------------------------- // ::ShellDimScreen // // Arguments: See %SDXROOT%\shell\ext\gina\exports.cpp // // Returns: See %SDXROOT%\shell\ext\gina\exports.cpp // // Purpose: Stub function for export. // // History: 2001-01-11 vtan created // -------------------------------------------------------------------------- EXTERN_C HRESULT WINAPI ShellDimScreen (IUnknown* *ppIUnknown, HWND* phwndDimmed) { return(_ShellDimScreen(ppIUnknown, phwndDimmed)); } // -------------------------------------------------------------------------- // ::ShellInstallAccountFilterData // // Arguments: See %SDXROOT%\shell\ext\gina\exports.cpp // // Returns: See %SDXROOT%\shell\ext\gina\exports.cpp // // Purpose: Stub function for export. // // History: 2001-01-11 vtan created // -------------------------------------------------------------------------- EXTERN_C void WINAPI ShellInstallAccountFilterData (void) { _ShellInstallAccountFilterData(); } // -------------------------------------------------------------------------- // ::ShellSwitchUser // // Arguments: See %SDXROOT%\shell\ext\gina\exports.cpp // // Returns: See %SDXROOT%\shell\ext\gina\exports.cpp // // Purpose: Stub function for export. // // History: 2001-01-11 vtan created // -------------------------------------------------------------------------- EXTERN_C DWORD WINAPI ShellSwitchUser (BOOL fWait) { return(_ShellSwitchUser(fWait)); } // -------------------------------------------------------------------------- // ::ShellIsUserInteractiveLogonAllowed // // Arguments: See %SDXROOT%\shell\ext\gina\exports.cpp // // Returns: See %SDXROOT%\shell\ext\gina\exports.cpp // // Purpose: Stub function for export. // // History: 2001-01-11 vtan created // -------------------------------------------------------------------------- EXTERN_C int WINAPI ShellIsUserInteractiveLogonAllowed (const WCHAR *pwszUsername) { return(_ShellIsUserInteractiveLogonAllowed(pwszUsername)); } // -------------------------------------------------------------------------- // ::ShellNotifyThemeUserChange // // Arguments: See %SDXROOT%\shell\ext\gina\exports.cpp // // Returns: See %SDXROOT%\shell\ext\gina\exports.cpp // // Purpose: Stub function for export. // // History: 2001-01-11 vtan created // -------------------------------------------------------------------------- EXTERN_C void WINAPI ShellNotifyThemeUserChange (USERLOGTYPE eUserLogType, HANDLE hToken) { _ShellNotifyThemeUserChange(eUserLogType, hToken); } // -------------------------------------------------------------------------- // ::ShellReturnToWelcome // // Arguments: See %SDXROOT%\shell\ext\gina\exports.cpp // // Returns: See %SDXROOT%\shell\ext\gina\exports.cpp // // Purpose: Stub function for export. // // History: 2001-01-11 vtan created // -------------------------------------------------------------------------- EXTERN_C DWORD WINAPI ShellReturnToWelcome (BOOL fUnlock) { return(_ShellReturnToWelcome(fUnlock)); } // -------------------------------------------------------------------------- // ::ShellStartCredentialServer // // Arguments: See %SDXROOT%\shell\ext\gina\exports.cpp // // Returns: See %SDXROOT%\shell\ext\gina\exports.cpp // // Purpose: Stub function for export. // // History: 2001-04-03 vtan created // -------------------------------------------------------------------------- EXTERN_C DWORD WINAPI ShellStartCredentialServer (const WCHAR *pwszUsername, const WCHAR *pwszDomain, WCHAR *pwszPassword, DWORD dwTimeout) { return(_ShellStartCredentialServer(pwszUsername, pwszDomain, pwszPassword, dwTimeout)); } // -------------------------------------------------------------------------- // ::ShellAcquireLogonMutex // // Arguments: See %SDXROOT%\shell\ext\gina\exports.cpp // // Returns: See %SDXROOT%\shell\ext\gina\exports.cpp // // Purpose: Stub function for export. // // History: 2001-04-04 vtan created // -------------------------------------------------------------------------- EXTERN_C void WINAPI ShellAcquireLogonMutex (void) { _ShellAcquireLogonMutex(); } // -------------------------------------------------------------------------- // ::ShellReleaseLogonMutex // // Arguments: See %SDXROOT%\shell\ext\gina\exports.cpp // // Returns: See %SDXROOT%\shell\ext\gina\exports.cpp // // Purpose: Stub function for export. // // History: 2001-04-04 vtan created // -------------------------------------------------------------------------- EXTERN_C void WINAPI ShellReleaseLogonMutex (BOOL fSignalEvent) { _ShellReleaseLogonMutex(fSignalEvent); } // -------------------------------------------------------------------------- // ::ShellSignalShutdown // // Arguments: See %SDXROOT%\shell\ext\gina\exports.cpp // // Returns: See %SDXROOT%\shell\ext\gina\exports.cpp // // Purpose: Stub function for export. // // History: 2001-04-06 vtan created // -------------------------------------------------------------------------- EXTERN_C void WINAPI ShellSignalShutdown (void) { _ShellSignalShutdown(); } // -------------------------------------------------------------------------- // ::ShellStatusHostHide // // Arguments: See %SDXROOT%\shell\ext\gina\exports.cpp // // Returns: See %SDXROOT%\shell\ext\gina\exports.cpp // // Purpose: Stub function for export. // // History: 2001-04-12 vtan created // -------------------------------------------------------------------------- EXTERN_C void WINAPI ShellStatusHostHide (void) { _ShellStatusHostHide(); } // -------------------------------------------------------------------------- // ::ShellStatusHostShow // // Arguments: See %SDXROOT%\shell\ext\gina\exports.cpp // // Returns: See %SDXROOT%\shell\ext\gina\exports.cpp // // Purpose: Stub function for export. // // History: 2001-04-12 vtan created // -------------------------------------------------------------------------- EXTERN_C void WINAPI ShellStatusHostShow (void) { _ShellStatusHostShow(); }