/**************************************************************************** * * $Id: rmaccf.h,v 1.1 2001/05/14 23:40:53 sehancher Exp $ * * Copyright (C) 1995-2001 RealNetworks, Inc. All rights reserved. * * http://www.real.com/devzone * * This program contains proprietary * information of Progressive Networks, Inc, and is licensed * subject to restrictions on use and distribution. * * * RealMedia Architecture Common Class Factory interface * */ #ifndef _RMACCF_H_ #define _RMACCF_H_ /* * Forward declarations of some interfaces defined here-in. */ typedef _INTERFACE IRMACommonClassFactory IRMACommonClassFactory; /**************************************************************************** * * Interface: * * IRMACommonClassFactory * * Purpose: * * RMA interface that manages the creation of common RMA classes. * * IID_IRMACommonClassFactory: * * {00000000-0901-11d1-8B06-00A024406D59} * */ DEFINE_GUID(IID_IRMACommonClassFactory, 0x00000000, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59); #undef INTERFACE #define INTERFACE IRMACommonClassFactory DECLARE_INTERFACE_(IRMACommonClassFactory, IUnknown) { /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IRMACommonClassFactory methods */ /************************************************************************ * Method: * IRMACommonClassFactory::CreateInstance * Purpose: * Creates instances of common objects supported by the system, * like IRMABuffer, IRMAPacket, IRMAValues, etc. * * This method is similar to Window's CoCreateInstance() in its * purpose, except that it only creates objects of a well known * types. * * NOTE: Aggregation is never used. Therefore and outer unknown is * not passed to this function, and you do not need to code for this * situation. */ STDMETHOD(CreateInstance) (THIS_ REFCLSID /*IN*/ rclsid, void** /*OUT*/ ppUnknown) PURE; /************************************************************************ * Method: * IRMAController::CreateInstanceAggregatable * Purpose: * Creates instances of common objects that can be aggregated * supported by the system, like IRMASiteWindowed * * This method is similar to Window's CoCreateInstance() in its * purpose, except that it only creates objects of a well known * types. * * NOTE 1: Unlike CreateInstance, this method will create internal * objects that support Aggregation. * * NOTE 2: The output interface is always the non-delegating * IUnknown. */ STDMETHOD(CreateInstanceAggregatable) (THIS_ REFCLSID /*IN*/ rclsid, REF(IUnknown*) /*OUT*/ ppUnknown, IUnknown* /*IN*/ pUnkOuter) PURE; }; #endif /*_RMACCF_H_*/