1 /****************************************************************************
3 * $Id: rmaplgns.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.
14 * RealMedia Architecture Plug-in Interfaces.
22 * Forward declarations of some interfaces defined or used here-in.
24 typedef _INTERFACE IUnknown IUnknown
;
25 typedef _INTERFACE IRMAObjectConfiguration IRMAObjectConfiguration
;
26 typedef _INTERFACE IRMAPluginProperties IRMAPluginProperties
;
27 typedef _INTERFACE IRMABuffer IRMABuffer
;
28 typedef _INTERFACE IRMAValues IRMAValues
;
30 /****************************************************************************
34 * IRMAObjectConfiguration
38 * Interface for setting context and generic means of plugin
41 * IRMAObjectConfiguration:
43 * {0x00002900-0901-11d1-8B06-00A024406D59}
46 DEFINE_GUID(IID_IRMAObjectConfiguration
, 0x00002900, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
49 #define INTERFACE IRMAObjectConfiguration
51 DECLARE_INTERFACE_(IRMAObjectConfiguration
, IUnknown
)
56 STDMETHOD(QueryInterface
) (THIS_
60 STDMETHOD_(ULONG
,AddRef
) (THIS
) PURE
;
62 STDMETHOD_(ULONG
,Release
) (THIS
) PURE
;
64 /************************************************************************
66 * IRMAObjectConfiguration::SetContext
68 * This function is called to set the context for the plugin.
69 * Either IRMAPlugin::InitPlugin or this function must be called
70 * before calling any other function on the plugin.
71 * this is intended to be used as a shortcut for the plugin user.
72 * If one needs to use SetConfiguration they only need to query
73 * IRMAObjectConfiguration saving them from also querying for
80 IUnknown
* pIUnknownContext
83 /************************************************************************
85 * IRMAObjectConfiguration::SetConfiguration
87 * This allows the user of a plugin to supply configuration
88 * information. This is often a set of CString properties
89 * extracted from a list in the config file. This allows
90 * each plugin within a class (auth plugin, database plugin, etc..)
91 * to require a different set of parameters.
94 STDMETHOD(SetConfiguration
)
97 IRMAValues
* pIRMAValuesConfiguration
102 /****************************************************************************
106 * IRMAPluginProperties
110 * This allows plugins to return whatever properties they want.
112 * IRMAPluginProperties:
114 * {0x00002901-0901-11d1-8B06-00A024406D59}
117 DEFINE_GUID(IID_IRMAPluginProperties
, 0x00002901, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
120 #define INTERFACE IRMAPluginProperties
122 DECLARE_INTERFACE_(IRMAPluginProperties
, IUnknown
)
127 STDMETHOD(QueryInterface
) (THIS_
131 STDMETHOD_(ULONG
,AddRef
) (THIS
) PURE
;
133 STDMETHOD_(ULONG
,Release
) (THIS
) PURE
;
135 /************************************************************************
137 * IRMAPluginProperties::GetProperties
139 * A plugin will implement this in order to return plugin properties
140 * that will allow it to be identified uniquely. (PluginID,
141 * AuthenticationProtocol, etc..)
144 STDMETHOD(GetProperties
)
147 REF(IRMAValues
*) pIRMAValuesProperties
152 #endif /* !_RMAPLGNS_H_ */