hxdb.h
上传用户:dangjiwu
上传日期:2013-07-19
资源大小:42019k
文件大小:33k
源码类别:

Symbian

开发平台:

Visual C++

  1. /* ***** BEGIN LICENSE BLOCK *****
  2.  * Source last modified: $Id: hxdb.h,v 1.1.1.1.50.3 2004/07/09 01:45:08 hubbe Exp $
  3.  * 
  4.  * Portions Copyright (c) 1995-2004 RealNetworks, Inc. All Rights Reserved.
  5.  * 
  6.  * The contents of this file, and the files included with this file,
  7.  * are subject to the current version of the RealNetworks Public
  8.  * Source License (the "RPSL") available at
  9.  * http://www.helixcommunity.org/content/rpsl unless you have licensed
  10.  * the file under the current version of the RealNetworks Community
  11.  * Source License (the "RCSL") available at
  12.  * http://www.helixcommunity.org/content/rcsl, in which case the RCSL
  13.  * will apply. You may also obtain the license terms directly from
  14.  * RealNetworks.  You may not use this file except in compliance with
  15.  * the RPSL or, if you have a valid RCSL with RealNetworks applicable
  16.  * to this file, the RCSL.  Please see the applicable RPSL or RCSL for
  17.  * the rights, obligations and limitations governing use of the
  18.  * contents of the file.
  19.  * 
  20.  * Alternatively, the contents of this file may be used under the
  21.  * terms of the GNU General Public License Version 2 or later (the
  22.  * "GPL") in which case the provisions of the GPL are applicable
  23.  * instead of those above. If you wish to allow use of your version of
  24.  * this file only under the terms of the GPL, and not to allow others
  25.  * to use your version of this file under the terms of either the RPSL
  26.  * or RCSL, indicate your decision by deleting the provisions above
  27.  * and replace them with the notice and other provisions required by
  28.  * the GPL. If you do not delete the provisions above, a recipient may
  29.  * use your version of this file under the terms of any one of the
  30.  * RPSL, the RCSL or the GPL.
  31.  * 
  32.  * This file is part of the Helix DNA Technology. RealNetworks is the
  33.  * developer of the Original Code and owns the copyrights in the
  34.  * portions it created.
  35.  * 
  36.  * This file, and the files included with this file, is distributed
  37.  * and made available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY
  38.  * KIND, EITHER EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS
  39.  * ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES
  40.  * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET
  41.  * ENJOYMENT OR NON-INFRINGEMENT.
  42.  * 
  43.  * Technology Compatibility Kit Test Suite(s) Location:
  44.  *    http://www.helixcommunity.org/content/tck
  45.  * 
  46.  * Contributor(s):
  47.  * 
  48.  * ***** END LICENSE BLOCK ***** */
  49. #ifndef _HXDB_H_
  50. #define _HXDB_H_
  51. /*
  52.  * Forward declarations of some interfaces defined or used here-in.
  53.  */
  54. typedef _INTERFACE IHXBuffer IHXBuffer;
  55. typedef _INTERFACE IHXValues IHXValues;
  56. typedef _INTERFACE IHXDatabaseManager IHXDatabaseManager;
  57. typedef _INTERFACE IHXAuthenticationDBManager IHXAuthenticationDBManager;
  58. typedef _INTERFACE IHXAuthenticationDBManagerResponse IHXAuthenticationDBManagerResponse;
  59. typedef _INTERFACE IHXAsyncEnumAuthenticationDB IHXAsyncEnumAuthenticationDB;
  60. typedef _INTERFACE IHXAsyncEnumAuthenticationDBResponse IHXAsyncEnumAuthenticationDBResponse;
  61. typedef _INTERFACE IHXAuthenticationDBAccess IHXAuthenticationDBAccess;
  62. typedef _INTERFACE IHXAuthenticationDBAccessResponse IHXAuthenticationDBAccessResponse;
  63. typedef _INTERFACE IHXGUIDDBManager IHXGUIDDBManager;
  64. typedef _INTERFACE IHXGUIDDBManagerResponse IHXGUIDDBManagerResponse;
  65. typedef _INTERFACE IHXPPVDBManager IHXPPVDBManager;
  66. typedef _INTERFACE IHXPPVDBManagerResponse IHXPPVDBManagerResponse;
  67. typedef _INTERFACE IHXRedirectDBManager IHXRedirectDBManager;
  68. typedef _INTERFACE IHXRedirectDBManagerResponse IHXRedirectDBManagerResponse;
  69. typedef _INTERFACE IHXRegistrationLogger IHXRegistrationLogger;
  70. /****************************************************************************
  71.  * 
  72.  *  Interface:
  73.  *
  74.  * IHXDatabaseManager
  75.  *
  76.  *  Purpose:
  77.  *
  78.  * This is implemented by the database manager in order to provide
  79.  * access to the databases it manages.
  80.  *
  81.  *  IHXDatabaseManager:
  82.  *
  83.  * {00002A00-0901-11d1-8B06-00A024406D59}
  84.  *
  85.  */
  86. DEFINE_GUID(IID_IHXDatabaseManager,   0x00002A00, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
  87. #define CLSID_CHXDatabaseManager IID_IHXDatabaseManager
  88. #undef  INTERFACE
  89. #define INTERFACE   IHXDatabaseManager
  90. DECLARE_INTERFACE_(IHXDatabaseManager, IUnknown)
  91. {
  92.     /*
  93.      * IUnknown methods
  94.      */
  95.     STDMETHOD(QueryInterface)
  96.     (
  97. THIS_
  98. REFIID IIDOfInterfaceDesired,
  99. void** ppVoidRequestedInterface
  100.     ) PURE;
  101.     STDMETHOD_(ULONG32,AddRef)
  102.     (
  103. THIS
  104.     ) PURE;
  105.     STDMETHOD_(ULONG32,Release)
  106.     (
  107. THIS
  108.     ) PURE;
  109.     /************************************************************************
  110.      * Method:
  111.      *     IHXDatabaseManager::GetInstanceFromID
  112.      * Purpose:
  113.      *     
  114.      *     Returns a database object configured as defined for the specifed 
  115.      *     DatabaseID in the server config file.
  116.      *
  117.      */
  118.     STDMETHOD(GetInstanceFromID)
  119.     (
  120. THIS_
  121. IHXBuffer* pBufferID, 
  122. REF(IUnknown*) pUnknownDatabase
  123.     ) PURE;
  124. };
  125. /****************************************************************************
  126.  * 
  127.  *  Interface:
  128.  *
  129.  * IHXAuthenticationDBManager
  130.  *
  131.  *  Purpose:
  132.  *
  133.  * A database plugin will implement this when it desires to provide 
  134.  * storage for authentication data.
  135.  *
  136.  *  IHXAuthenticationDBManager:
  137.  *
  138.  * {00002A02-0901-11d1-8B06-00A024406D59}
  139.  *
  140.  */
  141. DEFINE_GUID(IID_IHXAuthenticationDBManager,   0x00002A02, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
  142. #undef  INTERFACE
  143. #define INTERFACE   IHXAuthenticationDBManager
  144. DECLARE_INTERFACE_(IHXAuthenticationDBManager, IUnknown)
  145. {
  146.     /*
  147.      * IUnknown methods
  148.      */
  149.     STDMETHOD(QueryInterface)
  150.     (
  151. THIS_
  152. REFIID IIDOfInterfaceDesired,
  153. void** ppVoidRequestedInterface
  154.     ) PURE;
  155.     STDMETHOD_(ULONG32,AddRef)
  156.     (
  157. THIS
  158.     ) PURE;
  159.     STDMETHOD_(ULONG32,Release)
  160.     (
  161. THIS
  162.     ) PURE;
  163.     /************************************************************************
  164.      * Method:
  165.      *     IHXAuthenticationDBManager::AddPrincipal
  166.      * Purpose:
  167.      *     
  168.      *     Adds the specified user to the database, if it is not already 
  169.      *     there.
  170.      *
  171.      */
  172.     STDMETHOD(AddPrincipal)
  173.     (
  174. THIS_ 
  175. IHXAuthenticationDBManagerResponse* pAuthenticationDBManagerResponseNew,
  176. IHXBuffer* pBufferPrincipalID
  177.     ) PURE;
  178.     /************************************************************************
  179.      * Method:
  180.      *     IHXAuthenticationDBManager::RemovePrincipal
  181.      * Purpose:
  182.      *     
  183.      *     Removes the specified user from the database, if it is there.
  184.      *     
  185.      *
  186.      */
  187.     STDMETHOD(RemovePrincipal)
  188.     (
  189. THIS_ 
  190. IHXAuthenticationDBManagerResponse* pAuthenticationDBManagerResponseNew,
  191. IHXBuffer* pBufferPrincipalID
  192.     ) PURE;
  193.     /************************************************************************
  194.      * Method:
  195.      *     IHXAuthenticationDBManager::SetCredentials
  196.      * Purpose:
  197.      *     
  198.      *     Replaces the credentials for the specified user.
  199.      *     Usually the credentials are a password.
  200.      *     It is not the databases job to protect this data
  201.      *     Authentication plugins will protect this data 
  202.      *     before storing it when neccesary.
  203.      *
  204.      */
  205.     STDMETHOD(SetCredentials)
  206.     (
  207. THIS_
  208. IHXAuthenticationDBManagerResponse* pAuthenticationDBManagerResponseNew,
  209. IHXBuffer* pBufferPrincipalID, 
  210. IHXBuffer* pBufferCredentials
  211.     ) PURE;
  212. };
  213. /****************************************************************************
  214.  * 
  215.  *  Interface:
  216.  *
  217.  * IHXAuthenticationDBManagerResponse
  218.  *
  219.  *  Purpose:
  220.  *
  221.  * A database user will implement this when it desires to manage 
  222.  * storage for authentication data.
  223.  * This interface receives the results of IHXAuthenticationDBManager
  224.  * methods
  225.  *
  226.  *  IHXAuthenticationDBManagerResponse:
  227.  *
  228.  * {00002A01-0901-11d1-8B06-00A024406D59}
  229.  *
  230.  */
  231. DEFINE_GUID(IID_IHXAuthenticationDBManagerResponse,   0x00002A01, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
  232. #undef  INTERFACE
  233. #define INTERFACE   IHXAuthenticationDBManagerResponse
  234. DECLARE_INTERFACE_(IHXAuthenticationDBManagerResponse, IUnknown)
  235. {
  236.     /*
  237.      * IUnknown methods
  238.      */
  239.     STDMETHOD(QueryInterface)
  240.     (
  241. THIS_
  242. REFIID IIDOfInterfaceDesired,
  243. void** ppVoidRequestedInterface
  244.     ) PURE;
  245.     STDMETHOD_(ULONG32,AddRef)
  246.     (
  247. THIS
  248.     ) PURE;
  249.     STDMETHOD_(ULONG32,Release)
  250.     (
  251. THIS
  252.     ) PURE;
  253.     /************************************************************************
  254.      * Method:
  255.      *     IHXAuthenticationDBManagerResponse::AddPrincipalDone
  256.      * Purpose:
  257.      *     
  258.      *     Reports the success or failure of 
  259.      *     IHXAuthenticationDBManager::AddPrincipal
  260.      *
  261.      */
  262.     STDMETHOD(AddPrincipalDone)
  263.     (
  264. THIS_ 
  265. HX_RESULT ResultStatus,
  266. IHXBuffer* pBufferPrincipalID
  267.     ) PURE;
  268.     /************************************************************************
  269.      * Method:
  270.      *     IHXAuthenticationDBManagerResponse::RemovePrincipalDone
  271.      * Purpose:
  272.      *     
  273.      *     Reports the success or failure of 
  274.      *     IHXAuthenticationDBManager::RemovePrincipal
  275.      *
  276.      */
  277.     STDMETHOD(RemovePrincipalDone)
  278.     (
  279. THIS_ 
  280. HX_RESULT ResultStatus,
  281. IHXBuffer* pBufferPrincipalID
  282.     ) PURE;
  283.     /************************************************************************
  284.      * Method:
  285.      *     IHXAuthenticationDBManagerResponse::SetCredentialsDone
  286.      * Purpose:
  287.      *     
  288.      *     Reports the success or failure of 
  289.      *     IHXAuthenticationDBManager::SetCredentials
  290.      *
  291.      */
  292.     STDMETHOD(SetCredentialsDone)
  293.     (
  294. THIS_
  295. HX_RESULT ResultStatus,
  296. IHXBuffer* pBufferPrincipalID
  297.     ) PURE;
  298. };
  299. /****************************************************************************
  300.  * 
  301.  *  Interface:
  302.  *
  303.  * IHXAsyncEnumAuthenticationDB
  304.  *
  305.  *  Purpose:
  306.  *
  307.  * A database plugin will implement this when it desires to provide 
  308.  * enumeration of authentication data.
  309.  *
  310.  *  IHXAsyncEnumAuthenticationDB:
  311.  *
  312.  * {00002A04-0901-11d1-8B06-00A024406D59}
  313.  *
  314.  */
  315. DEFINE_GUID(IID_IHXAsyncEnumAuthenticationDB,   0x00002A04, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
  316. #undef  INTERFACE
  317. #define INTERFACE   IHXAsyncEnumAuthenticationDB
  318. DECLARE_INTERFACE_(IHXAsyncEnumAuthenticationDB, IUnknown)
  319. {
  320.     /*
  321.      * IUnknown methods
  322.      */
  323.     STDMETHOD(QueryInterface)
  324.     (
  325. THIS_
  326. REFIID IIDOfInterfaceDesired,
  327. void** ppVoidRequestedInterface
  328.     ) PURE;
  329.     STDMETHOD_(ULONG32,AddRef)
  330.     (
  331. THIS
  332.     ) PURE;
  333.     STDMETHOD_(ULONG32,Release)
  334.     (
  335. THIS
  336.     ) PURE;
  337.     /************************************************************************
  338.      * Method:
  339.      *     IHXAsyncEnumAuthenticationDB::Reset
  340.      * Purpose:
  341.      *     
  342.      *     Call this to reset this enumerator to the beginning of the 
  343.      *     collection.
  344.      *
  345.      */
  346.     STDMETHOD(Reset)
  347.     (
  348. THIS_
  349. IHXAsyncEnumAuthenticationDBResponse* pAsyncEnumAuthenticationDBResponseNew
  350.     ) PURE;
  351.     /************************************************************************
  352.      * Method:
  353.      *     IHXAsyncEnumAuthenticationDB::Next
  354.      * Purpose:
  355.      *     
  356.      *     Call this to retrieve the next item in the collection.
  357.      *
  358.      */
  359.     STDMETHOD(Next)
  360.     (
  361. THIS_
  362. IHXAsyncEnumAuthenticationDBResponse* pAsyncEnumAuthenticationDBResponseNew
  363.     ) PURE;
  364.     /************************************************************************
  365.      * Method:
  366.      *     IHXAsyncEnumAuthenticationDB::Skip
  367.      * Purpose:
  368.      *     
  369.      *     Call this to skip the next n items in the collection and 
  370.      *     retrieve the n+1 item.
  371.      *
  372.      */
  373.     STDMETHOD(Skip)
  374.     (
  375. THIS_
  376. IHXAsyncEnumAuthenticationDBResponse* pAsyncEnumAuthenticationDBResponseNew,
  377. UINT32 ulNumToSkip
  378.     ) PURE;
  379.     /************************************************************************
  380.      * Method:
  381.      *     IHXAsyncEnumAuthenticationDB::Clone
  382.      * Purpose:
  383.      *     
  384.      *     Call this to make a new enumerator of this collection.
  385.      *
  386.      */
  387.     STDMETHOD(Clone)
  388.     (
  389. THIS_
  390. REF(IHXAsyncEnumAuthenticationDB*) pAsyncEnumAuthenticationDBNew
  391.     ) PURE;
  392. };
  393. /****************************************************************************
  394.  * 
  395.  *  Interface:
  396.  *
  397.  * IHXAsyncEnumAuthenticationDBResponse
  398.  *
  399.  *  Purpose:
  400.  *
  401.  * A database user will implement this when it desires to 
  402.  * enumerate authentication data.
  403.  * This interface receives the results of IHXAsyncEnumAuthenticationDB
  404.  * methods
  405.  *
  406.  *  IHXAsyncEnumAuthenticationDBResponse:
  407.  *
  408.  * {00002A03-0901-11d1-8B06-00A024406D59}
  409.  *
  410.  */
  411. DEFINE_GUID(IID_IHXAsyncEnumAuthenticationDBResponse,   0x00002A03, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
  412. #undef  INTERFACE
  413. #define INTERFACE   IHXAsyncEnumAuthenticationDBResponse
  414. DECLARE_INTERFACE_(IHXAsyncEnumAuthenticationDBResponse, IUnknown)
  415. {
  416.     /*
  417.      * IUnknown methods
  418.      */
  419.     STDMETHOD(QueryInterface)
  420.     (
  421. THIS_
  422. REFIID IIDOfInterfaceDesired,
  423. void** ppVoidRequestedInterface
  424.     ) PURE;
  425.     STDMETHOD_(ULONG32,AddRef)
  426.     (
  427. THIS
  428.     ) PURE;
  429.     STDMETHOD_(ULONG32,Release)
  430.     (
  431. THIS
  432.     ) PURE;
  433.     /************************************************************************
  434.      * Method:
  435.      *     IHXAsyncEnumAuthenticationDBResponse::ResetDone
  436.      * Purpose:
  437.      *     
  438.      *     Reports the success or failure of 
  439.      *     IHXAsyncEnumAuthenticationDB::Reset
  440.      *
  441.      */
  442.     STDMETHOD(ResetDone)
  443.     (
  444. THIS_
  445. HX_RESULT ResultStatus
  446.     ) PURE;
  447.     /************************************************************************
  448.      * Method:
  449.      *     IHXAsyncEnumAuthenticationDBResponse::NextDone
  450.      * Purpose:
  451.      *     
  452.      *     Reports the success or failure of 
  453.      *     IHXAsyncEnumAuthenticationDB::Next
  454.      *     If successful the PrincipalID is valid.
  455.      *
  456.      */
  457.     STDMETHOD(NextDone)
  458.     (
  459. THIS_
  460. HX_RESULT ResultStatus,
  461. IHXBuffer* pBufferNextPrincipalID
  462.     ) PURE;
  463.     /************************************************************************
  464.      * Method:
  465.      *     IHXAsyncEnumAuthenticationDBResponse::SkipDone
  466.      * Purpose:
  467.      *     
  468.      *     Reports the success or failure of 
  469.      *     IHXAsyncEnumAuthenticationDB::Skip
  470.      *     If successful the PrincipalID is valid.
  471.      *
  472.      */
  473.     STDMETHOD(SkipDone)
  474.     (
  475. THIS_
  476. HX_RESULT ResultStatus,
  477. IHXBuffer* pBufferNextPrincipalID
  478.     ) PURE;
  479. };
  480. /****************************************************************************
  481.  * 
  482.  *  Interface:
  483.  *
  484.  * IHXAuthenticationDBAccess
  485.  *
  486.  *  Purpose:
  487.  *
  488.  * A database plugin will implement this when it desires to provide 
  489.  * access to authentication data.
  490.  *
  491.  *  IHXAuthenticationDBAccess:
  492.  *
  493.  * {00002A06-0901-11d1-8B06-00A024406D59}
  494.  *
  495.  */
  496. DEFINE_GUID(IID_IHXAuthenticationDBAccess,   0x00002A06, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
  497. #undef  INTERFACE
  498. #define INTERFACE   IHXAuthenticationDBAccess
  499. DECLARE_INTERFACE_(IHXAuthenticationDBAccess, IUnknown)
  500. {
  501.     /*
  502.      * IUnknown methods
  503.      */
  504.     STDMETHOD(QueryInterface)
  505.     (
  506. THIS_
  507. REFIID IIDOfInterfaceDesired,
  508. void** ppVoidRequestedInterface
  509.     ) PURE;
  510.     STDMETHOD_(ULONG32,AddRef)
  511.     (
  512. THIS
  513.     ) PURE;
  514.     STDMETHOD_(ULONG32,Release)
  515.     (
  516. THIS
  517.     ) PURE;
  518.     /************************************************************************
  519.      * Method:
  520.      *     IHXAuthenticationDBAccess::_NewEnum
  521.      * Purpose:
  522.      *     
  523.      *     Call this to make a new enumerator of this collection.
  524.      *
  525.      */
  526.     STDMETHOD(_NewEnum)
  527.     (
  528. THIS_
  529. REF(IHXAsyncEnumAuthenticationDB*) pAsyncEnumAuthenticationDBNew
  530.     ) PURE;
  531.     /************************************************************************
  532.      * Method:
  533.      *     IHXAuthenticationDBAccess::CheckExistence
  534.      * Purpose:
  535.      *     
  536.      *     Call this to verify the existance of a principal.
  537.      *
  538.      */
  539.     STDMETHOD(CheckExistence)
  540.     (
  541. THIS_
  542. IHXAuthenticationDBAccessResponse* pAuthenticationDBAccessResponseNew,
  543. IHXBuffer* pBufferPrincipalID
  544.     ) PURE;
  545.     /************************************************************************
  546.      * Method:
  547.      *     IHXAuthenticationDBAccess::GetCredentials
  548.      * Purpose:
  549.      *     
  550.      *     Call this to access the credentials for the specified principal.
  551.      *
  552.      */
  553.     STDMETHOD(GetCredentials)
  554.     (
  555. THIS_
  556. IHXAuthenticationDBAccessResponse* pAuthenticationDBAccessResponseNew,
  557. IHXBuffer* pBufferPrincipalID
  558.     ) PURE;
  559. };
  560. /****************************************************************************
  561.  * 
  562.  *  Interface:
  563.  *
  564.  * IHXAuthenticationDBAccessResponse
  565.  *
  566.  *  Purpose:
  567.  *
  568.  * A database user will implement this when it desires to 
  569.  * access authentication data.
  570.  * This interface receives the results of IHXAuthenticationDBAccess
  571.  * methods
  572.  *
  573.  *  IHXAuthenticationDBAccessResponse:
  574.  *
  575.  * {00002A05-0901-11d1-8B06-00A024406D59}
  576.  *
  577.  */
  578. DEFINE_GUID(IID_IHXAuthenticationDBAccessResponse,   0x00002A05, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
  579. #undef  INTERFACE
  580. #define INTERFACE   IHXAuthenticationDBAccessResponse
  581. DECLARE_INTERFACE_(IHXAuthenticationDBAccessResponse, IUnknown)
  582. {
  583.     /*
  584.      * IUnknown methods
  585.      */
  586.     STDMETHOD(QueryInterface)
  587.     (
  588. THIS_
  589. REFIID IIDOfInterfaceDesired,
  590. void** ppVoidRequestedInterface
  591.     ) PURE;
  592.     STDMETHOD_(ULONG32,AddRef)
  593.     (
  594. THIS
  595.     ) PURE;
  596.     STDMETHOD_(ULONG32,Release)
  597.     (
  598. THIS
  599.     ) PURE;
  600.     /************************************************************************
  601.      * Method:
  602.      *     IHXAuthenticationDBAccessResponse::ExistenceCheckDone
  603.      * Purpose:
  604.      *     
  605.      *     Reports the success or failure of 
  606.      *     IHXAuthenticationDBAccess::ExistenceCheck
  607.      *
  608.      */
  609.     STDMETHOD(ExistenceCheckDone)
  610.     (
  611. THIS_
  612. HX_RESULT ResultStatus,
  613. IHXBuffer* pBufferPrincipalID
  614.     ) PURE;
  615.     /************************************************************************
  616.      * Method:
  617.      *     IHXAuthenticationDBAccessResponse::GetCredentialsDone
  618.      * Purpose:
  619.      *     
  620.      *     Reports the success or failure of 
  621.      *     IHXAuthenticationDBAccess::GetCredentials
  622.      *     If successful the Credentials var is valid.
  623.      *
  624.      */
  625.     STDMETHOD(GetCredentialsDone)
  626.     (
  627. THIS_
  628. HX_RESULT ResultStatus,
  629. IHXBuffer* pBufferPrincipalID,
  630. IHXBuffer* pBufferCredentials
  631.     ) PURE;
  632. };
  633. /****************************************************************************
  634.  * 
  635.  *  Interface:
  636.  *
  637.  * IHXGUIDDBManager
  638.  *
  639.  *  Purpose:
  640.  *
  641.  * A database plugin will implement this when it desires to provide 
  642.  * storage of player GUID data (for Player Authentication).
  643.  *
  644.  *  IHXGUIDDBManager:
  645.  *
  646.  * {00002A08-0901-11d1-8B06-00A024406D59}
  647.  *
  648.  */
  649. DEFINE_GUID(IID_IHXGUIDDBManager,   0x00002A08, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
  650. #undef  INTERFACE
  651. #define INTERFACE   IHXGUIDDBManager
  652. DECLARE_INTERFACE_(IHXGUIDDBManager, IUnknown)
  653. {
  654.     /*
  655.      * IUnknown methods
  656.      */
  657.     STDMETHOD(QueryInterface)
  658.     (
  659. THIS_
  660. REFIID IIDOfInterfaceDesired,
  661. void** ppVoidRequestedInterface
  662.     ) PURE;
  663.     STDMETHOD_(ULONG32,AddRef)
  664.     (
  665. THIS
  666.     ) PURE;
  667.     STDMETHOD_(ULONG32,Release)
  668.     (
  669. THIS
  670.     ) PURE;
  671.     /************************************************************************
  672.      * Method:
  673.      *     IHXGUIDDBManager::SetGUIDForPrincipalID
  674.      * Purpose:
  675.      *     
  676.      *     Call this to associate a player GUID with a user.
  677.      *
  678.      */
  679.     STDMETHOD(SetGUIDForPrincipalID)
  680.     (
  681. THIS_
  682. IHXGUIDDBManagerResponse* pGUIDDBManagerResponseNew,
  683. IHXBuffer* pBufferPrincipalID,
  684. IHXBuffer* pBufferGUID
  685.     ) PURE;
  686.     /************************************************************************
  687.      * Method:
  688.      *     IHXGUIDDBManager::GetPrincipalIDFromGUID
  689.      * Purpose:
  690.      *     
  691.      *     Call this to get the associated player GUID from a user.
  692.      *
  693.      */
  694.     STDMETHOD(GetPrincipalIDFromGUID)
  695.     (
  696. THIS_
  697. IHXGUIDDBManagerResponse* pGUIDDBManagerResponseNew,
  698. IHXBuffer* pBufferGUID
  699.     ) PURE;
  700. };
  701. /****************************************************************************
  702.  * 
  703.  *  Interface:
  704.  *
  705.  * IHXGUIDDBManagerResponse
  706.  *
  707.  *  Purpose:
  708.  *
  709.  * A database user will implement this when it desires to 
  710.  * manage player GUID data.
  711.  * This interface receives the results of IHXGUIDDBManager
  712.  * methods
  713.  *
  714.  *  IHXGUIDDBManagerResponse:
  715.  *
  716.  * {00002A07-0901-11d1-8B06-00A024406D59}
  717.  *
  718.  */
  719. DEFINE_GUID(IID_IHXGUIDDBManagerResponse,   0x00002A07, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
  720. #undef  INTERFACE
  721. #define INTERFACE   IHXGUIDDBManagerResponse
  722. DECLARE_INTERFACE_(IHXGUIDDBManagerResponse, IUnknown)
  723. {
  724.     /*
  725.      * IUnknown methods
  726.      */
  727.     STDMETHOD(QueryInterface)
  728.     (
  729. THIS_
  730. REFIID IIDOfInterfaceDesired,
  731. void** ppVoidRequestedInterface
  732.     ) PURE;
  733.     STDMETHOD_(ULONG32,AddRef)
  734.     (
  735. THIS
  736.     ) PURE;
  737.     STDMETHOD_(ULONG32,Release)
  738.     (
  739. THIS
  740.     ) PURE;
  741.     /************************************************************************
  742.      * Method:
  743.      *     IHXGUIDDBManagerResponse::SetGUIDForPrincipalIDDone
  744.      * Purpose:
  745.      *     
  746.      *     Reports the success or failure of 
  747.      *     IHXGUIDDBManager::SetGUIDForPrincipalID
  748.      *
  749.      */
  750.     STDMETHOD(SetGUIDForPrincipalIDDone)
  751.     (
  752. THIS_
  753. HX_RESULT ResultStatus,
  754. IHXBuffer* pBufferPrincipalID
  755.     ) PURE;
  756.     /************************************************************************
  757.      * Method:
  758.      *     IHXGUIDDBManagerResponse::GetPrincipalIDFromGUIDDone
  759.      * Purpose:
  760.      *     
  761.      *     Reports the success or failure of 
  762.      *     IHXGUIDDBManager::GetGUIDForPrincipalID
  763.      *
  764.      */
  765.     STDMETHOD(GetPrincipalIDFromGUIDDone)
  766.     (
  767. THIS_
  768. HX_RESULT ResultStatus,
  769. IHXBuffer* pBufferGUID,
  770. IHXBuffer* pBufferPrincipalID
  771.     ) PURE;
  772. };
  773. /****************************************************************************
  774.  * 
  775.  *  Interface:
  776.  *
  777.  * IHXPPVDBManager
  778.  *
  779.  *  Purpose:
  780.  *
  781.  * A database plugin will implement this when it desires to provide 
  782.  * storage of Pay-Per-View permission data.
  783.  *
  784.  *  IHXPPVDBManager:
  785.  *
  786.  * {00002A0A-0901-11d1-8B06-00A024406D59}
  787.  *
  788.  */
  789. DEFINE_GUID(IID_IHXPPVDBManager,   0x00002A0A, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
  790. #undef  INTERFACE
  791. #define INTERFACE   IHXPPVDBManager
  792. DECLARE_INTERFACE_(IHXPPVDBManager, IUnknown)
  793. {
  794.     /*
  795.      * IUnknown methods
  796.      */
  797.     STDMETHOD(QueryInterface)
  798.     (
  799. THIS_
  800. REFIID IIDOfInterfaceDesired,
  801. void** ppVoidRequestedInterface
  802.     ) PURE;
  803.     STDMETHOD_(ULONG32,AddRef)
  804.     (
  805. THIS
  806.     ) PURE;
  807.     STDMETHOD_(ULONG32,Release)
  808.     (
  809. THIS
  810.     ) PURE;
  811.     /************************************************************************
  812.      * Method:
  813.      *     IHXPPVDBManager::GetPermissions
  814.      * Purpose:
  815.      *     
  816.      *     Call this to find the PPV permissions for the specified URL 
  817.      *     and user.
  818.      *
  819.      */
  820.     STDMETHOD(GetPermissions)
  821.     (
  822. THIS_
  823. IHXPPVDBManagerResponse* pPPVDBManagerResponseNew,
  824. IHXBuffer* pBufferPrincipalID,
  825. IHXBuffer* pBufferURL
  826.     ) PURE;
  827.     /************************************************************************
  828.      * Method:
  829.      *     IHXPPVDBManager::SetPermissions
  830.      * Purpose:
  831.      *     
  832.      *     Call this to set the PPV permissions for the specified URL 
  833.      *     and user.
  834.      *
  835.      */
  836.     STDMETHOD(SetPermissions)
  837.     (
  838. THIS_
  839. IHXPPVDBManagerResponse* pPPVDBManagerResponseNew,
  840. IHXBuffer* pBufferPrincipalID,
  841. IHXBuffer* pBufferURL,
  842. IHXValues* pValuesPermissions
  843.     ) PURE;
  844.     /************************************************************************
  845.      * Method:
  846.      *     IHXPPVDBManager::RevokePermissions
  847.      * Purpose:
  848.      *     
  849.      *     Call this to remove the PPV permissions for the specified URL 
  850.      *     and user.
  851.      *
  852.      */
  853.     STDMETHOD(RevokePermissions)
  854.     (
  855. THIS_
  856. IHXPPVDBManagerResponse* pPPVDBManagerResponseNew,
  857. IHXBuffer* pBufferPrincipalID,
  858. IHXBuffer* pBufferURL
  859.     ) PURE;
  860.     /************************************************************************
  861.      * Method:
  862.      *     IHXPPVDBManager::RevokeAllPermissions
  863.      * Purpose:
  864.      *     
  865.      *     Call this to remove the PPV permissions for all URL's 
  866.      *     that this user has access too.
  867.      *
  868.      */
  869.     STDMETHOD(RevokeAllPermissions)
  870.     (
  871. THIS_
  872. IHXPPVDBManagerResponse* pPPVDBManagerResponseNew,
  873. IHXBuffer* pBufferPrincipalID
  874.     ) PURE;
  875.     /************************************************************************
  876.      * Method:
  877.      *     IHXPPVDBManager::LogAccessAttempt
  878.      * Purpose:
  879.      *     
  880.      *     Call this to record the results of an attempt to access 
  881.      *     protected content.
  882.      *
  883.      */
  884.     STDMETHOD(LogAccessAttempt)
  885.     (
  886. THIS_
  887. IHXValues* pValuesAccess
  888.     ) PURE;
  889. };
  890. /****************************************************************************
  891.  * 
  892.  *  Interface:
  893.  *
  894.  * IHXPPVDBManagerResponse
  895.  *
  896.  *  Purpose:
  897.  *
  898.  * A database user will implement this when it desires to 
  899.  * manage Pay-Per-View permission data.
  900.  * This interface receives the results of IHXPPVDBManager
  901.  * methods
  902.  *
  903.  *  IHXPPVDBManagerResponse:
  904.  *
  905.  * {00002A09-0901-11d1-8B06-00A024406D59}
  906.  *
  907.  */
  908. DEFINE_GUID(IID_IHXPPVDBManagerResponse,   0x00002A09, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
  909. #undef  INTERFACE
  910. #define INTERFACE   IHXPPVDBManagerResponse
  911. DECLARE_INTERFACE_(IHXPPVDBManagerResponse, IUnknown)
  912. {
  913.     /*
  914.      * IUnknown methods
  915.      */
  916.     STDMETHOD(QueryInterface)
  917.     (
  918. THIS_
  919. REFIID IIDOfInterfaceDesired,
  920. void** ppVoidRequestedInterface
  921.     ) PURE;
  922.     STDMETHOD_(ULONG32,AddRef)
  923.     (
  924. THIS
  925.     ) PURE;
  926.     STDMETHOD_(ULONG32,Release)
  927.     (
  928. THIS
  929.     ) PURE;
  930.     /************************************************************************
  931.      * Method:
  932.      *     IHXPPVDBManagerResponse::GetPermissionsDone
  933.      * Purpose:
  934.      *     
  935.      *     Reports the success or failure of 
  936.      *     IHXPPVDBManager::GetPermissions
  937.      *     If successful then the Permissions are valid
  938.      *
  939.      */
  940.     STDMETHOD(GetPermissionsDone)
  941.     (
  942. THIS_
  943. HX_RESULT ResultStatus,
  944. IHXBuffer* pBufferPrincipalID,
  945. IHXValues* pValuesPermissions
  946.     ) PURE;
  947.     /************************************************************************
  948.      * Method:
  949.      *     IHXPPVDBManagerResponse::SetPermissionsDone
  950.      * Purpose:
  951.      *     
  952.      *     Reports the success or failure of 
  953.      *     IHXPPVDBManager::SetPermissions
  954.      *
  955.      */
  956.     STDMETHOD(SetPermissionsDone)
  957.     (
  958. THIS_
  959. HX_RESULT ResultStatus,
  960. IHXBuffer* pBufferPrincipalID
  961.     ) PURE;
  962.     /************************************************************************
  963.      * Method:
  964.      *     IHXPPVDBManagerResponse::RevokePermissionsDone
  965.      * Purpose:
  966.      *     
  967.      *     Reports the success or failure of 
  968.      *     IHXPPVDBManager::RevokePermissions
  969.      *
  970.      */
  971.     STDMETHOD(RevokePermissionsDone)
  972.     (
  973. THIS_
  974. HX_RESULT ResultStatus,
  975. IHXBuffer* pBufferPrincipalID
  976.     ) PURE;
  977.     /************************************************************************
  978.      * Method:
  979.      *     IHXPPVDBManagerResponse::RevokeAllPermissionsDone
  980.      * Purpose:
  981.      *     
  982.      *     Reports the success or failure of 
  983.      *     IHXPPVDBManager::RevokeAllPermissions
  984.      *
  985.      */
  986.     STDMETHOD(RevokeAllPermissionsDone)
  987.     (
  988. THIS_
  989. HX_RESULT ResultStatus,
  990. IHXBuffer* pBufferPrincipalID
  991.     ) PURE;
  992. };
  993. /****************************************************************************
  994.  * 
  995.  *  Interface:
  996.  *
  997.  * IHXRedirectDBManager
  998.  *
  999.  *  Purpose:
  1000.  *
  1001.  * A database plugin will implement this when it desires to provide 
  1002.  * storage of URL's to redirect.
  1003.  *
  1004.  *  IHXRedirectDBManager:
  1005.  *
  1006.  * {00002A0C-0901-11d1-8B06-00A024406D59}
  1007.  *
  1008.  */
  1009. DEFINE_GUID(IID_IHXRedirectDBManager,   0x00002A0C, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
  1010. #undef  INTERFACE
  1011. #define INTERFACE   IHXRedirectDBManager
  1012. DECLARE_INTERFACE_(IHXRedirectDBManager, IUnknown)
  1013. {
  1014.     /*
  1015.      * IUnknown methods
  1016.      */
  1017.     STDMETHOD(QueryInterface)
  1018.     (
  1019. THIS_
  1020. REFIID IIDOfInterfaceDesired,
  1021. void** ppVoidRequestedInterface
  1022.     ) PURE;
  1023.     STDMETHOD_(ULONG32,AddRef)
  1024.     (
  1025. THIS
  1026.     ) PURE;
  1027.     STDMETHOD_(ULONG32,Release)
  1028.     (
  1029. THIS
  1030.     ) PURE;
  1031.     /************************************************************************
  1032.      * Method:
  1033.      *     IHXRedirectDBManager::GetRedirect
  1034.      * Purpose:
  1035.      *     
  1036.      *     Call this to retrieve the URL that the specified URL should
  1037.      *     be redirected to.
  1038.      *
  1039.      */
  1040.     STDMETHOD(GetRedirect)
  1041.     (
  1042. THIS_
  1043. IHXRedirectDBManagerResponse* pRedirectDBManagerResponseNew,
  1044. IHXBuffer* pBufferURL
  1045.     ) PURE;
  1046.     /************************************************************************
  1047.      * Method:
  1048.      *     IHXRedirectDBManager::AddRedirect
  1049.      * Purpose:
  1050.      *     
  1051.      *     Call this to set the new URL that the specified URL should
  1052.      *     be redirected to.
  1053.      *
  1054.      */
  1055.     STDMETHOD(AddRedirect)
  1056.     (
  1057. THIS_
  1058. IHXRedirectDBManagerResponse* pRedirectDBManagerResponseNew,
  1059. IHXBuffer* pBufferURL,
  1060. IHXBuffer* pBufferNewURL
  1061.     ) PURE;
  1062.     /************************************************************************
  1063.      * Method:
  1064.      *     IHXRedirectDBManager::RemoveRedirect
  1065.      * Purpose:
  1066.      *     
  1067.      *     Call this to stop redirecting the specified URL.
  1068.      *
  1069.      */
  1070.     STDMETHOD(RemoveRedirect)
  1071.     (
  1072. THIS_
  1073. IHXRedirectDBManagerResponse* pRedirectDBManagerResponseNew,
  1074. IHXBuffer* pBufferURL
  1075.     ) PURE;
  1076. };
  1077. /****************************************************************************
  1078.  * 
  1079.  *  Interface:
  1080.  *
  1081.  * IHXRedirectDBManagerResponse
  1082.  *
  1083.  *  Purpose:
  1084.  *
  1085.  * A database user will implement this when it desires to 
  1086.  * manage the URL's to redirect.
  1087.  * This interface receives the results of IHXRedirectDBManager
  1088.  * methods
  1089.  *
  1090.  *  IHXRedirectDBManagerResponse:
  1091.  *
  1092.  * {00002A0B-0901-11d1-8B06-00A024406D59}
  1093.  *
  1094.  */
  1095. DEFINE_GUID(IID_IHXRedirectDBManagerResponse,   0x00002A0B, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
  1096. #undef  INTERFACE
  1097. #define INTERFACE   IHXRedirectDBManagerResponse
  1098. DECLARE_INTERFACE_(IHXRedirectDBManagerResponse, IUnknown)
  1099. {
  1100.     /*
  1101.      * IUnknown methods
  1102.      */
  1103.     STDMETHOD(QueryInterface)
  1104.     (
  1105. THIS_
  1106. REFIID IIDOfInterfaceDesired,
  1107. void** ppVoidRequestedInterface
  1108.     ) PURE;
  1109.     STDMETHOD_(ULONG32,AddRef)
  1110.     (
  1111. THIS
  1112.     ) PURE;
  1113.     STDMETHOD_(ULONG32,Release)
  1114.     (
  1115. THIS
  1116.     ) PURE;
  1117.     /************************************************************************
  1118.      * Method:
  1119.      *     IHXRedirectDBManagerResponse::GetRedirectDone
  1120.      * Purpose:
  1121.      *     
  1122.      *     Reports the success or failure of 
  1123.      *     IHXRedirectDBManager::GetRedirect
  1124.      *     If successful then the new URL is valid
  1125.      *
  1126.      */
  1127.     STDMETHOD(GetRedirectDone)
  1128.     (
  1129. THIS_
  1130. HX_RESULT ResultStatus,
  1131. IHXBuffer* pBufferURL,
  1132. IHXBuffer* pBufferNewURL
  1133.     ) PURE;
  1134.     /************************************************************************
  1135.      * Method:
  1136.      *     IHXRedirectDBManagerResponse::AddRedirectDone
  1137.      * Purpose:
  1138.      *     
  1139.      *     Reports the success or failure of 
  1140.      *     IHXRedirectDBManager::AddRedirect
  1141.      *
  1142.      */
  1143.     STDMETHOD(AddRedirectDone)
  1144.     (
  1145. THIS_
  1146. HX_RESULT ResultStatus,
  1147. IHXBuffer* pBufferURL
  1148.     ) PURE;
  1149.     /************************************************************************
  1150.      * Method:
  1151.      *     IHXRedirectDBManagerResponse::RemoveRedirectDone
  1152.      * Purpose:
  1153.      *     
  1154.      *     Reports the success or failure of 
  1155.      *     IHXRedirectDBManager::RemoveRedirect
  1156.      *
  1157.      */
  1158.     STDMETHOD(RemoveRedirectDone)
  1159.     (
  1160. THIS_
  1161. HX_RESULT ResultStatus,
  1162. IHXBuffer* pBufferURL
  1163.     ) PURE;
  1164. };
  1165. /****************************************************************************
  1166.  * 
  1167.  *  Interface:
  1168.  *
  1169.  * IHXRegistrationLogger
  1170.  *
  1171.  *  Purpose:
  1172.  *
  1173.  * A database plugin will implement this when it desires to provide 
  1174.  * storage of player registration attempts.
  1175.  *
  1176.  *  IHXRegistrationLogger:
  1177.  *
  1178.  * {00002A0E-0901-11d1-8B06-00A024406D59}
  1179.  *
  1180.  */
  1181. DEFINE_GUID(IID_IHXRegistrationLogger,   0x00002A0E, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
  1182. #undef  INTERFACE
  1183. #define INTERFACE   IHXRegistrationLogger
  1184. DECLARE_INTERFACE_(IHXRegistrationLogger, IUnknown)
  1185. {
  1186.     /*
  1187.      * IUnknown methods
  1188.      */
  1189.     STDMETHOD(QueryInterface)
  1190.     (
  1191. THIS_
  1192. REFIID IIDOfInterfaceDesired,
  1193. void** ppVoidRequestedInterface
  1194.     ) PURE;
  1195.     STDMETHOD_(ULONG32,AddRef)
  1196.     (
  1197. THIS
  1198.     ) PURE;
  1199.     STDMETHOD_(ULONG32,Release)
  1200.     (
  1201. THIS
  1202.     ) PURE;
  1203.     /************************************************************************
  1204.      * Method:
  1205.      *     IHXRegistrationLogger::LogRegistrationAttempt
  1206.      * Purpose:
  1207.      *     
  1208.      *     Call this to record the results of an attempt to register
  1209.      *     a player's GUID.
  1210.      *
  1211.      */
  1212.     STDMETHOD(LogRegistrationAttempt)
  1213.     (
  1214. THIS_
  1215. IHXValues* pValuesRegistration
  1216.     ) PURE;
  1217. };
  1218. #endif /* !_HXDB_H_ */