rmadb.h
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:32k
源码类别:

多媒体编程

开发平台:

Visual C++

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