aboutsummaryrefslogtreecommitdiff
path: root/Src/auth/Loginbox/loginData.h
blob: 9d1dd30cdbccd4f4454cfcb5807e7c131ed1be20 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#ifndef NULLSOFT_AUTH_LOGINDATA_HEADER
#define NULLSOFT_AUTH_LOGINDATA_HEADER

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif

#include <wtypes.h>

// {69346B92-168E-452e-AA88-986AB3883920}
static const GUID IID_LoginData = 
{ 0x69346b92, 0x168e, 0x452e, { 0xaa, 0x88, 0x98, 0x6a, 0xb3, 0x88, 0x39, 0x20 } };


class LoginProvider;
class LoginStatus;

class LoginData
{

protected:
	LoginData(const GUID *pRealm, HWND hPage, HWND hLoginbox);
	virtual ~LoginData();

public: 
	static HRESULT CreateInstance(const GUID *pRealm, HWND hPage, HWND hLoginbox, LoginData **instance);

public:
	virtual ULONG AddRef();
	virtual ULONG Release();
	virtual HRESULT QueryInterface(REFIID riid, void** ppObject);
	
	virtual HWND GetLoginbox();
	virtual HWND GetPage();
	virtual HRESULT GetRealm(GUID *pRealm);
	virtual HRESULT GetProvider(LoginProvider **ppProvider);
	virtual HRESULT GetStatus(LoginStatus **ppStatus);
	virtual HRESULT SetStatus(LPCWSTR pszStatus);

protected:
	UINT ref;
	GUID realm;
	HWND hPage;
	HWND hLoginbox;
	LoginProvider *provider;
	LoginStatus *status;
	UINT statusCookie;
};

#endif //NULLSOFT_AUTH_LOGINDATA_HEADER