VBoxCredProvProvider.h revision fd5ba2cc6df7af715b45b9b93c1badef52765c8c
/* $Id$ */
/** @file
* VBoxCredProvProvider - The actual credential provider class.
*/
/*
* Copyright (C) 2012 Oracle Corporation
*
* This file is part of VirtualBox Open Source Edition (OSE), as
* available from http://www.virtualbox.org. This file is free software;
* General Public License (GPL) as published by the Free Software
* Foundation, in version 2 as it comes in the "COPYING" file of the
* VirtualBox OSE distribution. VirtualBox OSE is distributed in the
* hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
*/
#ifndef __VBOX_CREDPROV_PROVIDER_H__
#define __VBOX_CREDPROV_PROVIDER_H__
#include <credentialprovider.h>
#include <windows.h>
#include <strsafe.h>
#include <VBox/VboxGuestLib.h>
#include "VBoxCredProvCredential.h"
#include "VBoxCredProvPoller.h"
{
/** IUnknown methods. */
/** ICredentialProvider interface. */
IFACEMETHODIMP SetSerialization(const CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION *pcpCredentialSerialization);
IFACEMETHODIMP GetFieldDescriptorAt(DWORD dwIndex, __deref_out CREDENTIAL_PROVIDER_FIELD_DESCRIPTOR **ppcpFieldDescriptor);
VBoxCredProvProvider(void);
virtual ~VBoxCredProvProvider(void);
DWORD LoadConfiguration(void);
bool HandleCurrentSession(void);
/** Events. */
void OnCredentialsProvided(void);
/** Interface reference count. */
/** Our one and only credential. */
/** Poller thread for credential lookup. */
/** Used to tell our owner to re-enumerate credentials. */
/** Used to tell our owner who we are when asking to re-enumerate credentials. */
/** Saved usage scenario. */
/** Flag indicating we got some credentials to work with. */
bool m_fGotCredentials;
/** Flag whether we need to handle remote session over Windows Remote
* Desktop Service. */
bool m_fHandleRemoteSessions;
};
#endif /* !__VBOX_CREDPROV_PROVIDER_H__ */