1 /****************************************************************************
3 * $Id: rmaupgrd.h 7 2003-05-30 02:18:02Z gabest $
5 * Copyright (C) 1995-1999 RealNetworks, Inc. All rights reserved.
7 * http://www.real.com/devzone
9 * This program contains proprietary
10 * information of Progressive Networks, Inc, and is licensed
11 * subject to restrictions on use and distribution.
13 * Auto Upgrade Interfaces
21 typedef _INTERFACE IRMABuffer IRMABuffer
;
24 /* Enumeration for the upgrade types */
25 typedef enum _RMAUpgradeType
33 /****************************************************************************
37 * IRMAUpgradeCollection
41 * Interface provided by the Context. This interface allows collection
42 * of upgrade components by the client core and it's delegates
43 * (i.e. renderer plugins etc.)
45 * IID_IRMAUpgradeCollection
47 * {00002500-0901-11d1-8B06-00A024406D59}
51 DEFINE_GUID(IID_IRMAUpgradeCollection
,
52 0x00002500, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
55 #define INTERFACE IRMAUpgradeCollection
57 DECLARE_INTERFACE_(IRMAUpgradeCollection
, IUnknown
)
60 * IRMAUpgradeCollection methods
63 /************************************************************************
65 * IRMAUpgradeCollection::Add
67 * Adds the specified upgrade information to the collection
70 STDMETHOD_(UINT32
, Add
) (THIS_
71 RMAUpgradeType upgradeType
,
72 IRMABuffer
* pPluginId
,
74 UINT32 minorVersion
) PURE
;
76 /************************************************************************
78 * IRMAUpgradeCollection::Remove
80 * Remove the specified item from the collection
83 STDMETHOD(Remove
) (THIS_
86 /************************************************************************
88 * IRMAUpgradeCollection::RemoveAll
90 * Remove all items from the collection
93 STDMETHOD(RemoveAll
) (THIS
) PURE
;
95 /************************************************************************
97 * IRMAUpgradeCollection::GetCount
99 * get the count of the collection
102 STDMETHOD_(UINT32
, GetCount
)(THIS
) PURE
;
104 /************************************************************************
106 * IRMAUpgradeCollection::GetAt
108 * get the specified items upgrade information
111 STDMETHOD(GetAt
) (THIS_
113 REF(RMAUpgradeType
) upgradeType
,
114 IRMABuffer
* pPluginId
,
115 REF(UINT32
) majorVersion
,
116 REF(UINT32
) minorVersion
) PURE
;
120 /****************************************************************************
128 * Interface provided by the top-level client application. This
129 * interface allows the client core to request an upgrade.
131 * IID_IRMAUpgradeHandler:
133 * {00002501-0901-11d1-8B06-00A024406D59}
137 DEFINE_GUID(IID_IRMAUpgradeHandler
,
138 0x00002501, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
141 #define INTERFACE IRMAUpgradeHandler
143 DECLARE_INTERFACE_(IRMAUpgradeHandler
, IUnknown
)
146 * IRMAUpgradeHandler methods
149 /************************************************************************
151 * IRMAUpgradeHandler::RequestUpgrade
153 * Ask if user wants to do an upgrade and start an upgrade
156 STDMETHOD(RequestUpgrade
) (THIS_ IRMAUpgradeCollection
* pComponents
,
157 BOOL bBlocking
) PURE
;
159 /************************************************************************
161 * IRMAUpgradeHandler::HasComponents
163 * Check if required components are present on the system.
165 * PNR_OK - components are here, no upgrade required;
166 * all components are removed from pComponents.
167 * PNR_FAIL - some components are missing;
168 * pComponents contains only those components
172 STDMETHOD(HasComponents
) (THIS_ IRMAUpgradeCollection
* pComponents
) PURE
;
177 #endif /* _RMAUPGRD_H */