[MSGINA]
[reactos.git] / reactos / dll / win32 / msgina / msgina.h
1 #ifndef _MSGINA_H
2 #define _MSGINA_H
3
4 #define WIN32_NO_STATUS
5
6 #include <stdarg.h>
7 #include <stdlib.h>
8 #include <windef.h>
9 #include <winbase.h>
10 #include <wincon.h>
11 #include <winreg.h>
12 #include <wingdi.h>
13 #include <winnls.h>
14 #include <winsvc.h>
15 #include <winuser.h>
16 #include <userenv.h>
17 #include <winwlx.h>
18 #include <ndk/obfuncs.h>
19 #include <ndk/rtlfuncs.h>
20 #include <ndk/sefuncs.h>
21 #include <ntlsa.h>
22 #include <ntsecapi.h>
23
24 #include <wine/debug.h>
25 WINE_DEFAULT_DEBUG_CHANNEL(msgina);
26
27 #include "resource.h"
28
29 /* Values for GINA_CONTEXT.AutoLogonState */
30 #define AUTOLOGON_CHECK_REGISTRY 1
31 #define AUTOLOGON_ONCE 2
32 #define AUTOLOGON_DISABLED 3
33
34 typedef struct
35 {
36 HANDLE hWlx;
37 LPWSTR station;
38 PWLX_DISPATCH_VERSION_1_3 pWlxFuncs;
39 HANDLE hDllInstance;
40 HWND hStatusWindow;
41 HANDLE LsaHandle;
42 ULONG AuthenticationPackage;
43 DWORD AutoLogonState;
44 BOOL bDisableCAD;
45 BOOL bAutoAdminLogon;
46 BOOL bDontDisplayLastUserName;
47 BOOL bShutdownWithoutLogon;
48
49 /* Information to be filled during logon */
50 WCHAR UserName[256];
51 WCHAR Domain[256];
52 LPWSTR Password;
53 SYSTEMTIME LogonTime;
54 HANDLE UserToken;
55 PLUID pAuthenticationId;
56 PDWORD pdwOptions;
57 PWLX_MPR_NOTIFY_INFO pMprNotifyInfo;
58 PVOID *pProfile;
59
60 /* Current logo to display */
61 HBITMAP hBitmap;
62 } GINA_CONTEXT, *PGINA_CONTEXT;
63
64 extern HINSTANCE hDllInstance;
65
66 typedef BOOL (*PFGINA_INITIALIZE)(PGINA_CONTEXT);
67 typedef BOOL (*PFGINA_DISPLAYSTATUSMESSAGE)(PGINA_CONTEXT, HDESK, DWORD, PWSTR, PWSTR);
68 typedef BOOL (*PFGINA_REMOVESTATUSMESSAGE)(PGINA_CONTEXT);
69 typedef VOID (*PFGINA_DISPLAYSASNOTICE)(PGINA_CONTEXT);
70 typedef INT (*PFGINA_LOGGEDONSAS)(PGINA_CONTEXT, DWORD);
71 typedef INT (*PFGINA_LOGGEDOUTSAS)(PGINA_CONTEXT);
72 typedef INT (*PFGINA_LOCKEDSAS)(PGINA_CONTEXT);
73 typedef VOID (*PFGINA_DISPLAYLOCKEDNOTICE)(PGINA_CONTEXT);
74
75 typedef struct _GINA_UI
76 {
77 PFGINA_INITIALIZE Initialize;
78 PFGINA_DISPLAYSTATUSMESSAGE DisplayStatusMessage;
79 PFGINA_REMOVESTATUSMESSAGE RemoveStatusMessage;
80 PFGINA_DISPLAYSASNOTICE DisplaySASNotice;
81 PFGINA_LOGGEDONSAS LoggedOnSAS;
82 PFGINA_LOGGEDOUTSAS LoggedOutSAS;
83 PFGINA_LOCKEDSAS LockedSAS;
84 PFGINA_DISPLAYLOCKEDNOTICE DisplayLockedNotice;
85 } GINA_UI, *PGINA_UI;
86
87 /* lsa.c */
88
89 BOOL
90 ConnectToLsa(
91 PGINA_CONTEXT pgContext);
92
93 /* msgina.c */
94
95 BOOL
96 DoAdminUnlock(
97 IN PWSTR UserName,
98 IN PWSTR Domain,
99 IN PWSTR Password);
100
101 BOOL
102 DoLoginTasks(
103 IN OUT PGINA_CONTEXT pgContext,
104 IN PWSTR UserName,
105 IN PWSTR Domain,
106 IN PWSTR Password);
107
108 #endif /* _MSGINA_H */
109
110 /* EOF */