Support unrar64.dll
[xy_vsfilter.git] / include / realmedia / rmaplgns.h
blobec6e794c4dd9a2ad07578e97d542f1401d3edc70
1 /****************************************************************************
2 *
3 * $Id: rmaplgns.h 7 2003-05-30 02:18:02Z gabest $
5 * Copyright (C) 1995-1999 RealNetworks, Inc. All rights reserved.
6 *
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.
18 #ifndef _RMAPLGNS_H_
19 #define _RMAPLGNS_H_
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 /****************************************************************************
32 * Interface:
34 * IRMAObjectConfiguration
36 * Purpose:
38 * Interface for setting context and generic means of plugin
39 * Configuration.
41 * IRMAObjectConfiguration:
43 * {0x00002900-0901-11d1-8B06-00A024406D59}
46 DEFINE_GUID(IID_IRMAObjectConfiguration, 0x00002900, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
48 #undef INTERFACE
49 #define INTERFACE IRMAObjectConfiguration
51 DECLARE_INTERFACE_(IRMAObjectConfiguration, IUnknown)
54 * IUnknown methods
56 STDMETHOD(QueryInterface) (THIS_
57 REFIID riid,
58 void** ppvObj) PURE;
60 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
62 STDMETHOD_(ULONG,Release) (THIS) PURE;
64 /************************************************************************
65 * Method:
66 * IRMAObjectConfiguration::SetContext
67 * Purpose:
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
74 * IRMAPlugin.
77 STDMETHOD(SetContext)
79 THIS_
80 IUnknown* pIUnknownContext
81 ) PURE;
83 /************************************************************************
84 * Method:
85 * IRMAObjectConfiguration::SetConfiguration
86 * Purpose:
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)
96 THIS_
97 IRMAValues* pIRMAValuesConfiguration
98 ) PURE;
102 /****************************************************************************
104 * Interface:
106 * IRMAPluginProperties
108 * Purpose:
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);
119 #undef INTERFACE
120 #define INTERFACE IRMAPluginProperties
122 DECLARE_INTERFACE_(IRMAPluginProperties, IUnknown)
125 * IUnknown methods
127 STDMETHOD(QueryInterface) (THIS_
128 REFIID riid,
129 void** ppvObj) PURE;
131 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
133 STDMETHOD_(ULONG,Release) (THIS) PURE;
135 /************************************************************************
136 * Method:
137 * IRMAPluginProperties::GetProperties
138 * Purpose:
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)
146 THIS_
147 REF(IRMAValues*) pIRMAValuesProperties
148 ) PURE;
152 #endif /* !_RMAPLGNS_H_ */