aboutsummaryrefslogtreecommitdiff
path: root/Src/auth/Loginbox/loginCommand.h
blob: 7813641dfee13dfe743961793de580f52bf6f29d (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
#ifndef NULLSOFT_AUTH_LOGINCOMMAND_HEADER
#define NULLSOFT_AUTH_LOGINCOMMAND_HEADER

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

#include <wtypes.h>
#include "./loginResult.h"

class LoginData;
class LoginCredentials;

class __declspec(novtable) LoginCommand
{
protected:
	LoginCommand() {}
	~LoginCommand() {}

public:
	virtual ULONG AddRef() = 0;
	virtual ULONG Release() = 0;

	virtual HRESULT GetType(GUID *commandUid) = 0;

	virtual HRESULT SetParameter(LPCWSTR pszKey, LPCWSTR pszValue) = 0;
	virtual HRESULT IsValid() = 0;
	virtual HRESULT IsIdentical(LoginCommand *test) = 0;

	virtual HRESULT BeginLogin(LoginData *data, LoginResult::Callback callback, void *user, LoginResult **result) = 0;
	virtual HRESULT EndLogin(LoginResult *result, INT *authCode, LoginCredentials **credentials) = 0;
	virtual HRESULT RequestAbort(LoginResult *result, BOOL drop) = 0;

};

#endif //NULLSOFT_AUTH_LOGINCOMMAND_HEADER