[KERNEL32]
[reactos.git] / reactos / dll / win32 / msgina / msgina.h
1 #pragma once
2
3 #include <windows.h>
4 #include <userenv.h>
5 #include <winwlx.h>
6 #include "resource.h"
7
8 /* Values for GINA_CONTEXT.AutoLogonState */
9 #define AUTOLOGON_CHECK_REGISTRY 1
10 #define AUTOLOGON_ONCE 2
11 #define AUTOLOGON_DISABLED 3
12
13 typedef struct
14 {
15 HANDLE hWlx;
16 LPWSTR station;
17 PWLX_DISPATCH_VERSION_1_3 pWlxFuncs;
18 HANDLE hDllInstance;
19 HWND hStatusWindow;
20 DWORD AutoLogonState;
21
22 /* Informations to be filled during logon */
23 HANDLE UserToken;
24 PLUID pAuthenticationId;
25 PDWORD pdwOptions;
26 PWLX_MPR_NOTIFY_INFO pMprNotifyInfo;
27 PVOID *pProfile;
28
29 /* Current logo to display */
30 HBITMAP hBitmap;
31 } GINA_CONTEXT, *PGINA_CONTEXT;
32
33 extern HINSTANCE hDllInstance;
34
35 typedef BOOL (*PFGINA_INITIALIZE)(PGINA_CONTEXT);
36 typedef BOOL (*PFGINA_DISPLAYSTATUSMESSAGE)(PGINA_CONTEXT, HDESK, DWORD, PWSTR, PWSTR);
37 typedef BOOL (*PFGINA_REMOVESTATUSMESSAGE)(PGINA_CONTEXT);
38 typedef VOID (*PFGINA_DISPLAYSASNOTICE)(PGINA_CONTEXT);
39 typedef INT (*PFGINA_LOGGEDONSAS)(PGINA_CONTEXT, DWORD);
40 typedef INT (*PFGINA_LOGGEDOUTSAS)(PGINA_CONTEXT);
41 typedef INT (*PFGINA_LOCKEDSAS)(PGINA_CONTEXT);
42 typedef struct _GINA_UI
43 {
44 PFGINA_INITIALIZE Initialize;
45 PFGINA_DISPLAYSTATUSMESSAGE DisplayStatusMessage;
46 PFGINA_REMOVESTATUSMESSAGE RemoveStatusMessage;
47 PFGINA_DISPLAYSASNOTICE DisplaySASNotice;
48 PFGINA_LOGGEDONSAS LoggedOnSAS;
49 PFGINA_LOGGEDOUTSAS LoggedOutSAS;
50 PFGINA_LOCKEDSAS LockedSAS;
51 } GINA_UI, *PGINA_UI;
52
53 /* msgina.c */
54
55 BOOL
56 DoLoginTasks(
57 IN OUT PGINA_CONTEXT pgContext,
58 IN PWSTR UserName,
59 IN PWSTR Domain,
60 IN PWSTR Password);
61
62 /* EOF */