📄 hxdb.h
字号:
/* ***** BEGIN LICENSE BLOCK *****
* Version: RCSL 1.0/RPSL 1.0
*
* Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved.
*
* The contents of this file, and the files included with this file, are
* subject to the current version of the RealNetworks Public Source License
* Version 1.0 (the "RPSL") available at
* http://www.helixcommunity.org/content/rpsl unless you have licensed
* the file under the RealNetworks Community Source License Version 1.0
* (the "RCSL") available at http://www.helixcommunity.org/content/rcsl,
* in which case the RCSL will apply. You may also obtain the license terms
* directly from RealNetworks. You may not use this file except in
* compliance with the RPSL or, if you have a valid RCSL with RealNetworks
* applicable to this file, the RCSL. Please see the applicable RPSL or
* RCSL for the rights, obligations and limitations governing use of the
* contents of the file.
*
* This file is part of the Helix DNA Technology. RealNetworks is the
* developer of the Original Code and owns the copyrights in the portions
* it created.
*
* This file, and the files included with this file, is distributed and made
* available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
* EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES,
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
*
* Technology Compatibility Kit Test Suite(s) Location:
* http://www.helixcommunity.org/content/tck
*
* Contributor(s):
*
* ***** END LICENSE BLOCK ***** */
#ifndef _HXDB_H_
#define _HXDB_H_
/*
* Forward declarations of some interfaces defined or used here-in.
*/
typedef _INTERFACE IHXBuffer IHXBuffer;
typedef _INTERFACE IHXValues IHXValues;
typedef _INTERFACE IHXDatabaseManager IHXDatabaseManager;
typedef _INTERFACE IHXAuthenticationDBManager IHXAuthenticationDBManager;
typedef _INTERFACE IHXAuthenticationDBManagerResponse IHXAuthenticationDBManagerResponse;
typedef _INTERFACE IHXAsyncEnumAuthenticationDB IHXAsyncEnumAuthenticationDB;
typedef _INTERFACE IHXAsyncEnumAuthenticationDBResponse IHXAsyncEnumAuthenticationDBResponse;
typedef _INTERFACE IHXAuthenticationDBAccess IHXAuthenticationDBAccess;
typedef _INTERFACE IHXAuthenticationDBAccessResponse IHXAuthenticationDBAccessResponse;
typedef _INTERFACE IHXGUIDDBManager IHXGUIDDBManager;
typedef _INTERFACE IHXGUIDDBManagerResponse IHXGUIDDBManagerResponse;
typedef _INTERFACE IHXPPVDBManager IHXPPVDBManager;
typedef _INTERFACE IHXPPVDBManagerResponse IHXPPVDBManagerResponse;
typedef _INTERFACE IHXRedirectDBManager IHXRedirectDBManager;
typedef _INTERFACE IHXRedirectDBManagerResponse IHXRedirectDBManagerResponse;
typedef _INTERFACE IHXRegistrationLogger IHXRegistrationLogger;
/****************************************************************************
*
* Interface:
*
* IHXDatabaseManager
*
* Purpose:
*
* This is implemented by the database manager in order to provide
* access to the databases it manages.
*
* IHXDatabaseManager:
*
* {00002A00-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXDatabaseManager, 0x00002A00, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
#define CLSID_CHXDatabaseManager IID_IHXDatabaseManager
#undef INTERFACE
#define INTERFACE IHXDatabaseManager
DECLARE_INTERFACE_(IHXDatabaseManager, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface)
(
THIS_
REFIID IIDOfInterfaceDesired,
void** ppVoidRequestedInterface
) PURE;
STDMETHOD_(ULONG32,AddRef)
(
THIS
) PURE;
STDMETHOD_(ULONG32,Release)
(
THIS
) PURE;
/************************************************************************
* Method:
* IHXDatabaseManager::GetInstanceFromID
* Purpose:
*
* Returns a database object configured as defined for the specifed
* DatabaseID in the server config file.
*
*/
STDMETHOD(GetInstanceFromID)
(
THIS_
IHXBuffer* pBufferID,
REF(IUnknown*) pUnknownDatabase
) PURE;
};
/****************************************************************************
*
* Interface:
*
* IHXAuthenticationDBManager
*
* Purpose:
*
* A database plugin will implement this when it desires to provide
* storage for authentication data.
*
* IHXAuthenticationDBManager:
*
* {00002A02-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXAuthenticationDBManager, 0x00002A02, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXAuthenticationDBManager
DECLARE_INTERFACE_(IHXAuthenticationDBManager, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface)
(
THIS_
REFIID IIDOfInterfaceDesired,
void** ppVoidRequestedInterface
) PURE;
STDMETHOD_(ULONG32,AddRef)
(
THIS
) PURE;
STDMETHOD_(ULONG32,Release)
(
THIS
) PURE;
/************************************************************************
* Method:
* IHXAuthenticationDBManager::AddPrincipal
* Purpose:
*
* Adds the specified user to the database, if it is not already
* there.
*
*/
STDMETHOD(AddPrincipal)
(
THIS_
IHXAuthenticationDBManagerResponse* pAuthenticationDBManagerResponseNew,
IHXBuffer* pBufferPrincipalID
) PURE;
/************************************************************************
* Method:
* IHXAuthenticationDBManager::RemovePrincipal
* Purpose:
*
* Removes the specified user from the database, if it is there.
*
*
*/
STDMETHOD(RemovePrincipal)
(
THIS_
IHXAuthenticationDBManagerResponse* pAuthenticationDBManagerResponseNew,
IHXBuffer* pBufferPrincipalID
) PURE;
/************************************************************************
* Method:
* IHXAuthenticationDBManager::SetCredentials
* Purpose:
*
* Replaces the credentials for the specified user.
* Usually the credentials are a password.
* It is not the databases job to protect this data
* Authentication plugins will protect this data
* before storing it when neccesary.
*
*/
STDMETHOD(SetCredentials)
(
THIS_
IHXAuthenticationDBManagerResponse* pAuthenticationDBManagerResponseNew,
IHXBuffer* pBufferPrincipalID,
IHXBuffer* pBufferCredentials
) PURE;
};
/****************************************************************************
*
* Interface:
*
* IHXAuthenticationDBManagerResponse
*
* Purpose:
*
* A database user will implement this when it desires to manage
* storage for authentication data.
* This interface receives the results of IHXAuthenticationDBManager
* methods
*
* IHXAuthenticationDBManagerResponse:
*
* {00002A01-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXAuthenticationDBManagerResponse, 0x00002A01, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXAuthenticationDBManagerResponse
DECLARE_INTERFACE_(IHXAuthenticationDBManagerResponse, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface)
(
THIS_
REFIID IIDOfInterfaceDesired,
void** ppVoidRequestedInterface
) PURE;
STDMETHOD_(ULONG32,AddRef)
(
THIS
) PURE;
STDMETHOD_(ULONG32,Release)
(
THIS
) PURE;
/************************************************************************
* Method:
* IHXAuthenticationDBManagerResponse::AddPrincipalDone
* Purpose:
*
* Reports the success or failure of
* IHXAuthenticationDBManager::AddPrincipal
*
*/
STDMETHOD(AddPrincipalDone)
(
THIS_
HX_RESULT ResultStatus,
IHXBuffer* pBufferPrincipalID
) PURE;
/************************************************************************
* Method:
* IHXAuthenticationDBManagerResponse::RemovePrincipalDone
* Purpose:
*
* Reports the success or failure of
* IHXAuthenticationDBManager::RemovePrincipal
*
*/
STDMETHOD(RemovePrincipalDone)
(
THIS_
HX_RESULT ResultStatus,
IHXBuffer* pBufferPrincipalID
) PURE;
/************************************************************************
* Method:
* IHXAuthenticationDBManagerResponse::SetCredentialsDone
* Purpose:
*
* Reports the success or failure of
* IHXAuthenticationDBManager::SetCredentials
*
*/
STDMETHOD(SetCredentialsDone)
(
THIS_
HX_RESULT ResultStatus,
IHXBuffer* pBufferPrincipalID
) PURE;
};
/****************************************************************************
*
* Interface:
*
* IHXAsyncEnumAuthenticationDB
*
* Purpose:
*
* A database plugin will implement this when it desires to provide
* enumeration of authentication data.
*
* IHXAsyncEnumAuthenticationDB:
*
* {00002A04-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXAsyncEnumAuthenticationDB, 0x00002A04, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXAsyncEnumAuthenticationDB
DECLARE_INTERFACE_(IHXAsyncEnumAuthenticationDB, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface)
(
THIS_
REFIID IIDOfInterfaceDesired,
void** ppVoidRequestedInterface
) PURE;
STDMETHOD_(ULONG32,AddRef)
(
THIS
) PURE;
STDMETHOD_(ULONG32,Release)
(
THIS
) PURE;
/************************************************************************
* Method:
* IHXAsyncEnumAuthenticationDB::Reset
* Purpose:
*
* Call this to reset this enumerator to the beginning of the
* collection.
*
*/
STDMETHOD(Reset)
(
THIS_
IHXAsyncEnumAuthenticationDBResponse* pAsyncEnumAuthenticationDBResponseNew
) PURE;
/************************************************************************
* Method:
* IHXAsyncEnumAuthenticationDB::Next
* Purpose:
*
* Call this to retrieve the next item in the collection.
*
*/
STDMETHOD(Next)
(
THIS_
IHXAsyncEnumAuthenticationDBResponse* pAsyncEnumAuthenticationDBResponseNew
) PURE;
/************************************************************************
* Method:
* IHXAsyncEnumAuthenticationDB::Skip
* Purpose:
*
* Call this to skip the next n items in the collection and
* retrieve the n+1 item.
*
*/
STDMETHOD(Skip)
(
THIS_
IHXAsyncEnumAuthenticationDBResponse* pAsyncEnumAuthenticationDBResponseNew,
UINT32 ulNumToSkip
) PURE;
/************************************************************************
* Method:
* IHXAsyncEnumAuthenticationDB::Clone
* Purpose:
*
* Call this to make a new enumerator of this collection.
*
*/
STDMETHOD(Clone)
(
THIS_
REF(IHXAsyncEnumAuthenticationDB*) pAsyncEnumAuthenticationDBNew
) PURE;
};
/****************************************************************************
*
* Interface:
*
* IHXAsyncEnumAuthenticationDBResponse
*
* Purpose:
*
* A database user will implement this when it desires to
* enumerate authentication data.
* This interface receives the results of IHXAsyncEnumAuthenticationDB
* methods
*
* IHXAsyncEnumAuthenticationDBResponse:
*
* {00002A03-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXAsyncEnumAuthenticationDBResponse, 0x00002A03, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXAsyncEnumAuthenticationDBResponse
DECLARE_INTERFACE_(IHXAsyncEnumAuthenticationDBResponse, IUnknown)
{
/*
* IUnknown methods
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -