[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
19 #include <wine/debug.h>
20 WINE_DEFAULT_DEBUG_CHANNEL(msgina);
21
22 #include "resource.h"
23
24 /* Values for GINA_CONTEXT.AutoLogonState */
25 #define AUTOLOGON_CHECK_REGISTRY 1
26 #define AUTOLOGON_ONCE 2
27 #define AUTOLOGON_DISABLED 3
28
29 typedef struct
30 {
31 HANDLE hWlx;
32 LPWSTR station;
33 PWLX_DISPATCH_VERSION_1_3 pWlxFuncs;
34 HANDLE hDllInstance;
35 HWND hStatusWindow;
36 DWORD AutoLogonState;
37 BOOL bDisableCAD;
38 BOOL bAutoAdminLogon;
39 BOOL bDontDisplayLastUserName;
40 BOOL bShutdownWithoutLogon;
41
42 /* Information to be filled during logon */
43 WCHAR UserName[256];
44 WCHAR Domain[256];
45 SYSTEMTIME LogonTime;
46 HANDLE UserToken;
47 PLUID pAuthenticationId;
48 PDWORD pdwOptions;
49 PWLX_MPR_NOTIFY_INFO pMprNotifyInfo;
50 PVOID *pProfile;
51
52 /* Current logo to display */
53 HBITMAP hBitmap;
54 } GINA_CONTEXT, *PGINA_CONTEXT;
55
56 extern HINSTANCE hDllInstance;
57
58 typedef BOOL (*PFGINA_INITIALIZE)(PGINA_CONTEXT);
59 typedef BOOL (*PFGINA_DISPLAYSTATUSMESSAGE)(PGINA_CONTEXT, HDESK, DWORD, PWSTR, PWSTR);
60 typedef BOOL (*PFGINA_REMOVESTATUSMESSAGE)(PGINA_CONTEXT);
61 typedef VOID (*PFGINA_DISPLAYSASNOTICE)(PGINA_CONTEXT);
62 typedef INT (*PFGINA_LOGGEDONSAS)(PGINA_CONTEXT, DWORD);
63 typedef INT (*PFGINA_LOGGEDOUTSAS)(PGINA_CONTEXT);
64 typedef INT (*PFGINA_LOCKEDSAS)(PGINA_CONTEXT);
65 typedef VOID (*PFGINA_DISPLAYLOCKEDNOTICE)(PGINA_CONTEXT);
66
67 typedef struct _GINA_UI
68 {
69 PFGINA_INITIALIZE Initialize;
70 PFGINA_DISPLAYSTATUSMESSAGE DisplayStatusMessage;
71 PFGINA_REMOVESTATUSMESSAGE RemoveStatusMessage;
72 PFGINA_DISPLAYSASNOTICE DisplaySASNotice;
73 PFGINA_LOGGEDONSAS LoggedOnSAS;
74 PFGINA_LOGGEDOUTSAS LoggedOutSAS;
75 PFGINA_LOCKEDSAS LockedSAS;
76 PFGINA_DISPLAYLOCKEDNOTICE DisplayLockedNotice;
77 } GINA_UI, *PGINA_UI;
78
79 /* msgina.c */
80
81 BOOL
82 DoLoginTasks(
83 IN OUT PGINA_CONTEXT pgContext,
84 IN PWSTR UserName,
85 IN PWSTR Domain,
86 IN PWSTR Password);
87
88 #endif /* _MSGINA_H */
89
90 /* EOF */