[MSGINA]
[reactos.git] / reactos / dll / win32 / msgina / msgina.h
index e221b3b..a6ba264 100644 (file)
@@ -1,8 +1,21 @@
-#include <windows.h>
-#include <userenv.h>
+#ifndef _MSGINA_H
+#define _MSGINA_H
+
+#include <stdarg.h>
+
+#define WIN32_NO_STATUS
+#define _INC_WINDOWS
+#define COM_NO_WINDOWS_H
+
+#include <windef.h>
+#include <winbase.h>
+#include <winuser.h>
 #include <winwlx.h>
+#include <ndk/rtlfuncs.h>
+#include <ntsecapi.h>
 
 #include <wine/debug.h>
+WINE_DEFAULT_DEBUG_CHANNEL(msgina);
 
 #include "resource.h"
 
 
 typedef struct
 {
-       HANDLE hWlx;
-       LPWSTR station;
-       PWLX_DISPATCH_VERSION_1_3 pWlxFuncs;
-       HANDLE hDllInstance;
-       HWND hStatusWindow;
-       DWORD AutoLogonState;
-
-       /* Informations to be filled during logon */
-       HANDLE UserToken;
-       PLUID pAuthenticationId;
-       PDWORD pdwOptions;
-       PWLX_MPR_NOTIFY_INFO pMprNotifyInfo;
-       PVOID *pProfile;
-
-       /* Current logo to display */
-       HBITMAP hBitmap;
+    HANDLE hWlx;
+    LPWSTR station;
+    PWLX_DISPATCH_VERSION_1_3 pWlxFuncs;
+    HANDLE hDllInstance;
+    HWND hStatusWindow;
+    HANDLE LsaHandle;
+    ULONG AuthenticationPackage;
+    DWORD AutoLogonState;
+    BOOL bDisableCAD;
+    BOOL bAutoAdminLogon;
+    BOOL bDontDisplayLastUserName;
+    BOOL bShutdownWithoutLogon;
+
+    INT nShutdownAction;
+
+    /* Information to be filled during logon */
+    WCHAR UserName[256];
+    WCHAR Domain[256];
+    WCHAR Password[256];
+    SYSTEMTIME LogonTime;
+    HANDLE UserToken;
+    PLUID pAuthenticationId;
+    PDWORD pdwOptions;
+    PWLX_MPR_NOTIFY_INFO pMprNotifyInfo;
+    PVOID *pProfile;
+
+    /* Current logo to display */
+    HBITMAP hBitmap;
 } GINA_CONTEXT, *PGINA_CONTEXT;
 
 extern HINSTANCE hDllInstance;
@@ -40,24 +65,50 @@ typedef VOID (*PFGINA_DISPLAYSASNOTICE)(PGINA_CONTEXT);
 typedef INT (*PFGINA_LOGGEDONSAS)(PGINA_CONTEXT, DWORD);
 typedef INT (*PFGINA_LOGGEDOUTSAS)(PGINA_CONTEXT);
 typedef INT (*PFGINA_LOCKEDSAS)(PGINA_CONTEXT);
+typedef VOID (*PFGINA_DISPLAYLOCKEDNOTICE)(PGINA_CONTEXT);
+
 typedef struct _GINA_UI
 {
-       PFGINA_INITIALIZE Initialize;
-       PFGINA_DISPLAYSTATUSMESSAGE DisplayStatusMessage;
-       PFGINA_REMOVESTATUSMESSAGE RemoveStatusMessage;
-       PFGINA_DISPLAYSASNOTICE DisplaySASNotice;
-       PFGINA_LOGGEDONSAS LoggedOnSAS;
-       PFGINA_LOGGEDOUTSAS LoggedOutSAS;
-       PFGINA_LOCKEDSAS LockedSAS;
+    PFGINA_INITIALIZE Initialize;
+    PFGINA_DISPLAYSTATUSMESSAGE DisplayStatusMessage;
+    PFGINA_REMOVESTATUSMESSAGE RemoveStatusMessage;
+    PFGINA_DISPLAYSASNOTICE DisplaySASNotice;
+    PFGINA_LOGGEDONSAS LoggedOnSAS;
+    PFGINA_LOGGEDOUTSAS LoggedOutSAS;
+    PFGINA_LOCKEDSAS LockedSAS;
+    PFGINA_DISPLAYLOCKEDNOTICE DisplayLockedNotice;
 } GINA_UI, *PGINA_UI;
 
+/* lsa.c */
+
+NTSTATUS
+ConnectToLsa(
+    PGINA_CONTEXT pgContext);
+
+NTSTATUS
+MyLogonUser(
+    HANDLE LsaHandle,
+    ULONG AuthenticationPackage,
+    LPWSTR lpszUsername,
+    LPWSTR lpszDomain,
+    LPWSTR lpszPassword,
+    PHANDLE phToken,
+    PNTSTATUS SubStatus);
+
 /* msgina.c */
 
+BOOL
+DoAdminUnlock(
+    IN PGINA_CONTEXT pgContext,
+    IN PWSTR UserName,
+    IN PWSTR Domain,
+    IN PWSTR Password);
+
 BOOL
 DoLoginTasks(
-       IN OUT PGINA_CONTEXT pgContext,
-       IN PWSTR UserName,
-       IN PWSTR Domain,
-       IN PWSTR Password);
+    IN OUT PGINA_CONTEXT pgContext,
+    IN PWSTR UserName,
+    IN PWSTR Domain,
+    IN PWSTR Password);
 
-/* EOF */
+#endif /* _MSGINA_H */