[Common-cvs] include ihxmedpltfm.h, NONE, 1.1 hxcore.h, 1.10, 1.11 hxiids.h, 1.85, 1.86 hxplugn.h, 1.8, 1.9
ping at helixcommunity.org ping at helixcommunity.orgUpdate of /cvsroot/common/include
In directory cvs:/tmp/cvs-serv6421
Modified Files:
hxcore.h hxiids.h hxplugn.h
Added Files:
ihxmedpltfm.h
Log Message:
defined Helix Media Platform interfaces
Index: hxplugn.h
===================================================================
RCS file: /cvsroot/common/include/hxplugn.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- hxplugn.h 6 Dec 2005 17:20:05 -0000 1.8
+++ hxplugn.h 13 Dec 2005 18:34:30 -0000 1.9
@@ -1457,6 +1457,40 @@
};
// $EndPrivate.
+/*!
+ @singletype IHXContextUser
+ @abstract Support for automatic initialization of components
+ @discussion
+ This interface should be implemented by components that wish to make
+ use of the object broker system.
+
+ When the object broker creates a new instance of an object, it queries
+ it for this interface. If the object supports IHXContextUser,
+ RegisterContext() is called passing the appropriate context as a
+ parameter.
+
+ If multiple levels of object managers are being used to provide scope, the
+ object broker always initializes a new component with the context
+ representing the scope in which the new component has been created.
+ */
+
+// {FCB59961-B347-11d3-87EB-009027902B2D}
+DEFINE_GUID(IID_IHXContextUser, 0xfcb59961, 0xb347, 0x11d3, 0x87, 0xeb, 0x0, 0x90, 0x27, 0x90, 0x2b, 0x2d);
+
+#undef INTERFACE
+#define INTERFACE IHXContextUser
+
+DECLARE_INTERFACE_(IHXContextUser, IUnknown)
+{
+ /*!
+ @function RegisterContext
+ @abstract Support for automatic initialization.
+ @param pIContext [in] This component should use this context to retrieve required services and interfaces
+ @result The component should return HXR_OK if initialization is successful
+ */
+ STDMETHOD (RegisterContext) (THIS_ IUnknown* pIContext) PURE;
+};
+
#include "hxcomptr.h"
DEFINE_SMART_PTR(IHXPlugin)
DEFINE_SMART_PTR(IHXPluginEnumerator)
@@ -1473,5 +1507,6 @@
DEFINE_SMART_PTR(IHXProxiedPlugin)
DEFINE_SMART_PTR(IHXComponentPlugin)
DEFINE_SMART_PTR(IHXPluginNamespace)
+DEFINE_SMART_PTR(IHXContextUser)
#endif /* _HXPLUGN_H_ */
Index: hxiids.h
===================================================================
RCS file: /cvsroot/common/include/hxiids.h,v
retrieving revision 1.85
retrieving revision 1.86
diff -u -d -r1.85 -r1.86
--- hxiids.h 2 Dec 2005 21:43:19 -0000 1.85
+++ hxiids.h 13 Dec 2005 18:34:30 -0000 1.86
@@ -119,6 +119,11 @@
// $EndPrivate.
#endif
+#ifndef _IHXMEDPLTFM_H_
+DEFINE_GUID_ENUM(IID_IHXMediaPlatform, 0x00000080, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59)
+DEFINE_GUID_ENUM(IID_IHXMediaPlatformKicker, 0x00000081, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59)
+#endif /* _IHXMEDPLTFM_H_ */
+
/*
* File:
* hxengin.h
@@ -605,6 +610,7 @@
DEFINE_GUID_ENUM(IID_IHXPluginHandler3, 0x32b19771, 0x2299, 0x11d4, 0x95, 0x3, 0x0, 0x90, 0x27, 0x90, 0x29, 0x9c)
DEFINE_GUID_ENUM(IID_IHXComponentPlugin, 0xf8a31571, 0x22ac, 0x11d4, 0x95, 0x3, 0x0, 0x90, 0x27, 0x90, 0x29, 0x9c)
DEFINE_GUID_ENUM(IID_IHXPluginNamespace, 0xf09e8891, 0x8e2d, 0x11d4, 0x82, 0xdb, 0x0, 0xd0, 0xb7, 0x4c, 0x2d, 0x25)
+DEFINE_GUID_ENUM(IID_IHXContextUser, 0xfcb59961, 0xb347, 0x11d3, 0x87, 0xeb, 0x0, 0x90, 0x27, 0x90, 0x2b, 0x2d);
DEFINE_GUID_ENUM( IID_IHXPluginDatabase, 0xc2c65401, 0xa478, 0x11d4, 0x95, 0x18, 0x0, 0x90, 0x27, 0x90, 0x29, 0x9c)
// $EndPrivate.
#endif
Index: hxcore.h
===================================================================
RCS file: /cvsroot/common/include/hxcore.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- hxcore.h 8 Dec 2005 00:23:15 -0000 1.10
+++ hxcore.h 13 Dec 2005 18:34:30 -0000 1.11
@@ -655,6 +655,8 @@
#undef INTERFACE
#define INTERFACE IHXClientEngine
+#define CLSID_IHXClientEngine IID_IHXClientEngine
+
DECLARE_INTERFACE_(IHXClientEngine, IUnknown)
{
/*
--- NEW FILE: ihxmedpltfm.h ---
/* ***** BEGIN LICENSE BLOCK *****
* Source last modified: $Id: ihxmedpltfm.h,v 1.1 2005/12/13 18:34:30 ping Exp $
*
* Portions Copyright (c) 1995-2004 RealNetworks, Inc. All Rights Reserved.
*
* The contents of this file, and the files included with this file,
* are subject to the current version of the RealNetworks Public
* Source License (the "RPSL") available at
* http://www.helixcommunity.org/content/rpsl unless you have licensed
* the file under the current version of the RealNetworks Community
* Source License (the "RCSL") available at
* http://www.helixcommunity.org/content/rcsl, in which case the RCSL
* will apply. You may also obtain the license terms directly from
* RealNetworks. You may not use this file except in compliance with
* the RPSL or, if you have a valid RCSL with RealNetworks applicable
* to this file, the RCSL. Please see the applicable RPSL or RCSL for
* the rights, obligations and limitations governing use of the
* contents of the file.
*
* Alternatively, the contents of this file may be used under the
* terms of the GNU General Public License Version 2 or later (the
* "GPL") in which case the provisions of the GPL are applicable
* instead of those above. If you wish to allow use of your version of
* this file only under the terms of the GPL, and not to allow others
* to use your version of this file under the terms of either the RPSL
* or RCSL, indicate your decision by deleting the provisions above
* and replace them with the notice and other provisions required by
* the GPL. If you do not delete the provisions above, a recipient may
* use your version of this file under the terms of any one of the
* RPSL, the RCSL or the GPL.
*
* This file is part of the Helix DNA Technology. RealNetworks is the
* developer of the Original Code and owns the copyrights in the
* portions it created.
*
* This file, and the files included with this file, is distributed
* and made available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY
* KIND, EITHER EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS
* ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET
* ENJOYMENT OR NON-INFRINGEMENT.
*
* Technology Compatibility Kit Test Suite(s) Location:
* http://www.helixcommunity.org/content/tck
*
* Contributor(s):
*
* ***** END LICENSE BLOCK ***** */
#ifndef _IHXMEDPLTFM_H_
#define _IHXMEDPLTFM_H_
typedef _INTERFACE IUnknown IUnknown;
/****************************************************************************
*
* Interface:
*
* IHXMediaPlatform
*
* Purpose:
*
* This interface provides methods to access Media Platform
*
* IID_IHXMediaPlatform:
*
* {0000080-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXMediaPlatform, 0x00000080, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXMediaPlatform
DECLARE_INTERFACE_(IHXMediaPlatform, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXMediaPlatform methods
*/
/************************************************************************
* Method:
* IHXMediaPlatform::GetVersion
* Purpose:
* Retrieve the version of Media Platform:
* bits: 24 31 major version
* 16 23 minor version
* 8 15 release number
* 0 7 build number
*/
STDMETHOD(GetVersion) (THIS_
UINT32* pVersion) PURE;
/************************************************************************
* Method:
* IHXMediaPlatform::GetVersion
* Purpose:
* Add plugin path to be loaded by the media platform. It can be
* called multiple times if there are more than one plugin path
* needs to be loaded. In order to take effect, AddPluginPath needs
* to be called before Init().
*/
STDMETHOD(AddPluginPath) (THIS_
const char* pszPath) PURE;
/************************************************************************
* Method:
* IHXMediaPlatform::Init
* Purpose:
* Initialize the media platform. If pContext is not NULL, then
* pContext will be used as the extension to the media platform own
* context.
*/
STDMETHOD(Init) (THIS_
IUnknown* pContext) PURE;
/************************************************************************
* Method:
* IHXMediaPlatform::Close
* Purpose:
* Close the media platform to its un-initialized state
*/
STDMETHOD(Close) (THIS) PURE;
/************************************************************************
* Method:
* IHXMediaPlatform::Reset
* Purpose:
* Reset the media platform, it not only closes the media platform
* but also clears persistent information maintained by the platform.
*
* If pContext is not NULL, the platform will QI for the persistent
* storage interface (IHXPreferences) from pContext and clear it up.
*
* Note, the caller needs to pass the same pContext to Reset() as it
* passes to Init() if Init() is called earlier. On the other hand,
* the caller is allowed to call Reset() without Init() if the caller
* only wants to clear up the persistent information, one example is
* the uninstaller of the application.
*/
STDMETHOD(Reset) (THIS_
IUnknown* pContext) PURE;
/************************************************************************
* Method:
* IHXMediaPlatform::Purge
* Purpose:
* Force unloading of any unused plugins by the platform
*/
STDMETHOD(Purge) (THIS) PURE;
/************************************************************************
* Method:
* IHXMediaPlatform::CreateChildContext
* Purpose:
* Create a new media platform context from the current context
*/
STDMETHOD(CreateChildContext) (THIS_
IHXMediaPlatform** ppChildContext) PURE;
};
/****************************************************************************
*
* Interface:
*
* IHXMediaPlatformKicker
*
* Purpose:
*
* This interface is intended for systems that do not support asynchronous
* timer. For systems that support asynchronous timer, the interface will
* be no-op when its called.
*
* IID_IHXMediaPlatformKicker:
*
* {0000081-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXMediaPlatformKicker, 0x00000081, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXMediaPlatformKicker
DECLARE_INTERFACE_(IHXMediaPlatformKicker, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXMediaPlatformKicker methods
*/
/************************************************************************
* Method:
* IHXMediaPlatformKicker::Kick
* Purpose:
* Kick the scheduler on a specified thread
*/
STDMETHOD(Kick) (THIS_
UINT32 ulThreadID) PURE;
/************************************************************************
* Method:
* IHXMediaPlatformKicker::Kick
* Purpose:
* Kick the scheduler on the same thread which Kick() is called
*/
STDMETHOD(Kick) (THIS) PURE;
};
#include "hxcomptr.h"
DEFINE_SMART_PTR(IHXMediaPlatform)
DEFINE_SMART_PTR(IHXMediaPlatformKicker)
#endif /* _IHXMEDPLTFM_H_ */