hxdb.h
上传用户:zhongxx05
上传日期:2007-06-06
资源大小:33641k
文件大小:33k
源码类别:

Symbian

开发平台:

C/C++

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