[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

[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.org
Tue Dec 13 10:34:33 PST 2005


Update 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 it’s 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_ */



More information about the Common-cvs mailing list
 

Site Map   |   Terms of Use   |   Privacy Policy   |   Contact Us

Copyright © 1995-2007 RealNetworks, Inc. All rights reserved. RealNetworks and Helix are trademarks of RealNetworks.
All other trademarks or registered trademarks are the property of their respective holders.