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

多媒体编程

开发平台:

Visual C++

  1. /****************************************************************************
  2.  * 
  3.  *  $Id: rmaupgrd.h,v 1.1 2003/05/30 02:18:01 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.  *  Auto Upgrade Interfaces
  14.  *
  15.  */
  16. #ifndef _RMAUPGRD_H
  17. #define _RMAUPGRD_H
  18. typedef _INTERFACE IRMABuffer IRMABuffer;
  19. /* Enumeration for the upgrade types */
  20. typedef enum _RMAUpgradeType
  21. {
  22.     eUT_Required,
  23.     eUT_Recommended,
  24.     eUT_Optional
  25. } RMAUpgradeType;
  26. /****************************************************************************
  27.  * 
  28.  *  Interface:
  29.  *
  30.  *   IRMAUpgradeCollection
  31.  *
  32.  *  Purpose:
  33.  *
  34.  * Interface provided by the Context. This interface allows collection 
  35.  * of upgrade components by the client core and it's delegates 
  36.  * (i.e. renderer plugins etc.)
  37.  *
  38.  *  IID_IRMAUpgradeCollection
  39.  *
  40.  * {00002500-0901-11d1-8B06-00A024406D59}
  41.  *
  42.  */
  43.  
  44. DEFINE_GUID(IID_IRMAUpgradeCollection, 
  45.     0x00002500, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
  46. #undef  INTERFACE
  47. #define INTERFACE   IRMAUpgradeCollection
  48. DECLARE_INTERFACE_(IRMAUpgradeCollection, IUnknown)
  49. {
  50.     /*
  51.      * IRMAUpgradeCollection methods
  52.      */
  53.     /************************************************************************
  54.      * Method:
  55.      * IRMAUpgradeCollection::Add
  56.      * Purpose:
  57.      * Adds the specified upgrade information to the collection
  58.      *
  59.      */
  60.     STDMETHOD_(UINT32, Add) (THIS_ 
  61.      RMAUpgradeType upgradeType,
  62. IRMABuffer* pPluginId,
  63. UINT32 majorVersion,
  64. UINT32 minorVersion) PURE;
  65.     /************************************************************************
  66.      * Method:
  67.      * IRMAUpgradeCollection::Remove
  68.      * Purpose:
  69.      * Remove the specified item from the collection
  70.      *
  71.      */
  72.     STDMETHOD(Remove) (THIS_ 
  73.      UINT32 index) PURE;
  74.     /************************************************************************
  75.      * Method:
  76.      * IRMAUpgradeCollection::RemoveAll
  77.      * Purpose:
  78.      * Remove all items from the collection
  79.      *
  80.      */
  81.     STDMETHOD(RemoveAll)     (THIS) PURE;
  82.     /************************************************************************
  83.      * Method:
  84.      * IRMAUpgradeCollection::GetCount
  85.      * Purpose:
  86.      * get the count of the collection
  87.      *
  88.      */
  89.     STDMETHOD_(UINT32, GetCount)(THIS) PURE;
  90.     /************************************************************************
  91.      * Method:
  92.      * IRMAUpgradeCollection::GetAt
  93.      * Purpose:
  94.      * get the specified items upgrade information
  95.      *
  96.      */
  97.     STDMETHOD(GetAt) (THIS_ 
  98.      UINT32 index,
  99. REF(RMAUpgradeType) upgradeType,
  100. IRMABuffer* pPluginId,
  101. REF(UINT32) majorVersion, 
  102. REF(UINT32) minorVersion) PURE;
  103. };
  104. /****************************************************************************
  105.  * 
  106.  *  Interface:
  107.  *
  108.  *   IRMAUpgradeHandler
  109.  *
  110.  *  Purpose:
  111.  *
  112.  * Interface provided by the top-level client application.  This
  113.  * interface allows the client core to request an upgrade.
  114.  *
  115.  *  IID_IRMAUpgradeHandler:
  116.  *
  117.  * {00002501-0901-11d1-8B06-00A024406D59}
  118.  *
  119.  */
  120.  
  121. DEFINE_GUID(IID_IRMAUpgradeHandler, 
  122.                         0x00002501, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
  123. #undef  INTERFACE
  124. #define INTERFACE   IRMAUpgradeHandler
  125. DECLARE_INTERFACE_(IRMAUpgradeHandler, IUnknown)
  126. {
  127.     /*
  128.      * IRMAUpgradeHandler methods
  129.      */
  130.     /************************************************************************
  131.      * Method:
  132.      * IRMAUpgradeHandler::RequestUpgrade
  133.      * Purpose:
  134.      * Ask if user wants to do an upgrade and start an upgrade
  135.      *
  136.      */
  137.     STDMETHOD(RequestUpgrade) (THIS_ IRMAUpgradeCollection* pComponents,
  138.      BOOL bBlocking) PURE;
  139.     /************************************************************************
  140.      * Method:
  141.      * IRMAUpgradeHandler::HasComponents
  142.      * Purpose:
  143.      * Check if required components are present on the system.
  144.      *  Returns:
  145.      * PNR_OK - components are here, no upgrade required;
  146.      *  all components are removed from pComponents.
  147.      *          PNR_FAIL - some components are missing;
  148.      *                   pComponents contains only those components 
  149.      *  that need upgrade.
  150.      *
  151.      */       
  152.     STDMETHOD(HasComponents)  (THIS_ IRMAUpgradeCollection* pComponents) PURE;
  153. };
  154. #endif /* _RMAUPGRD_H */
  155.