Important:
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.
A version of this page is also available for
4/8/2010

The UPnP AV Framework is implemented in a number of C++ classes. Developers using the UPnP AV Framework only work directly with a subset of these classes, but it is helpful to understand both the general naming convention for all classes and the high-level purpose of the classes that developers do not use directly.

Note:
Not all of the programming elements listed here are relevant to users of the UPnP AV Framework in Windows Mobile. For more information about the differences between the UPnP implementation available for Windows Mobile devices and that available for Windows Embedded CE devices, see UPnP in Windows Mobile Devices.
Note:
Only classes that are regularly used by developers are documented in detail. The other classes are listed here only for overview purposes.

The following table shows classes in the UPnP AV Framework.

Class Description

IAVTransport

IConnectionManager

IContentDirectory

IRenderingControl

Pure virtual classes at the root of the class hierarchy used for customization. These classes define methods for actions in the corresponding service.

Control points call these methods to access functionality. Devices implement these methods to provide functionality.

IAVTransportImpl

IConnectionManagerImpl

IContentDirectoryImpl

IRenderingControlImpl

Abstract base classes that inherit from the pure virtual classes at the top of the hierarchy, such as IAVTransport. These classes provide default implementations of these services.

Developers derive from these classes and provide method overrides that implement their device's functionality.

With the exception of IConnectionManagerImpl, the only content in each class are do-nothing method overrides for methods that correspond to optional actions.

IConnectionManagerImplcontains connection and protocol management code. Although it provides the majority of the necessary functionality, it still requires implementations of IConnectionManagerImpl::CreateConnectionand IConnectionManagerImpl::EndConnectionto enable custom connection preparation and termination code, and calls to IConnectionManagerImpl::AddSinkProtocoland IConnectionManagerImpl::AddSourceProtocolto define the protocols supported by the instance.

MediaRendererDevice

MediaServerDevice

Classes that can be instantiated by control points. These classes in turn provide the UPnP AV Framework control point proxy classes that control points use to communicate with UPnP AV devices.

IEventSink

IEventSource

IVirtualService

Pure virtual classes that provide state variable methods and virtual service support. IEventSinkand IEventSourceprovide state variable support. IVirtualServiceprovides virtual service support for use by theAVTransport and RenderingControl services.

The pure virtual classes at the top of the hierarchy, like IAVTransport, inherit from IEventSourceand, for IAVTransportand IRenderingControl, from IVirtualService.

Control points implement IEventSinkto receive event notifications.

parser (UPnP AV)

object (UPnP AV)(structure)

Utility classes that provide object-oriented access to information returned by a ContentDirectory instance.

Control points use these classes to interact with ContentDirectory data.

These classes are defined in a subset of the av_upnp namespace: av_upnp::DIDL_Lite.

wstring class (UPnP AV)

Provides an object-oriented representation of a string.

AVTransportService

AVTransportServiceImpl

ConnectionManagerService

ConnectionManagerServiceImpl

ContentDirectoryService

ContentDirectoryServiceImpl

RenderingControlService

RenderingControlServiceImpl

Internal utility classes that implement the COM objects required for integration with the general purpose UPnP Device Host API.

Devices that use the UPnP AV Framework create instances of these classes but do not modify or change the classes.

For general information about how custom device implementations use classes such as AVTransportServiceand ConnectionManagerService, see Registering Device Implementations.

UPnPErrorReporting

IEventSinkSupport

ModeratedEventSupport

VirtualServiceSupport

Utility classes used for internal processing.

Custom device implementations and control points do not usually use or modify these classes.

All of the classes in the above table are defined in the av_upnp C++ namespace. This namespace is usually aliased so it can be referred to in code as the av namespace. For more information about namespaces in the UPnP AV Framework, see C++ Namespaces in the UPnP AV Framework. (The parserclass and objectstructure are defined in a subset of the av_upnp namespace: av_upnp::DIDL_Lite.)

See Also

Other Resources

Using the UPnP AV Framework