previous next

Interface List (continued)

IRMAPacket

Purpose: Contains streaming data packets
Implemented by: Packet object (RealSystem architecture)
Used by: File format and rendering plug-ins
Header file: rmapckts.h

RealSystem components use IRMAPacket objects to stream data between the RealServer and the RealSystem clients. A file format plug-in, for example, prepares packets that RealServer streams to the client. As well, the client's rendering plug-in can use the system's back channel to send back packets of information. The preferred implementation is to use IRMACommonClassFactory to create the packet objects.

Additional Information
See "Using IRMAPacket to Create Stream Packets". See also "Chapter 5: File Format Plug-In" and "Chapter 6: Rendering Plug-In".

The IRMAPacket interface contains the following methods:

As with all COM interfaces, the IRMAPacket interface inherits the following IUnknown methods:

IRMAPacket::Get

Retrieves the values from the packet all at one time.


STDMETHOD(Get) (
THIS_
REF(IRMABuffer*) pBuffer,
REF(UINT32) ulTime,
REF(UINT16) unStreamNumber,
REF(UINT8) unASMFlags,
REF(UINT16) unASMRuleNumber
) PURE;
pBuffer
Returns a pointer to the IRMABuffer interface that manages the packet data.

ulTime
Returns the time stamp for the packet.

unStreamNumber
Returns the stream number to which the packet belongs.

unASMFlags
Returns the adaptive stream management (ASM) flags associated with the packet.

unASMRuleNumber
Returns the ASM rule number of the packet.

Additional Information
See "Chapter 11: Adaptive Stream Management".

IRMAPacket::GetASMFlags

Returns the ASM flags. The ASM flags can be either RMA_ASM_SWITCH_ON or RMA_ASM_SWITCH_OFF.


STDMETHOD_(UINT8,GetASMFlags) (
THIS
) PURE;

Additional Information
See "Chapter 11: Adaptive Stream Management".

IRMAPacket::GetASMRuleNumber

Returns the ASM rule number.


STDMETHOD_(UINT16,GetASMRuleNumber) (
THIS
) PURE;

Additional Information
See "Chapter 11: Adaptive Stream Management".

IRMAPacket::GetBuffer

Returns an IRMABuffer interface that manages the packet data.


STDMETHOD_(IRMABuffer*,GetBuffer) (
THIS
) PURE;

IRMAPacket::GetStreamNumber

Returns the stream number.


STDMETHOD_(UINT16,GetStreamNumber) (
THIS
) PURE;

IRMAPacket::GetTime

Returns the time in milliseconds.


STDMETHOD_(ULONG32,GetTime) (
THIS
) PURE;

IRMAPacket::IsLost

Indicates whether the packet has been lost. If the return value is TRUE, the packet has been lost. If the packet is lost, none of the values of the packet have any meaning.


STDMETHOD_(BOOL,IsLost) (
THIS
) PURE;

IRMAPacket::Set

Sets the values of the packet. This method only succeeds if there is just one reference to the packet. This method cannot be used to change the values of the packet once more than one component has a reference to that packet.


STDMETHOD(Set) (
THIS_
IRMABuffer* pBuffer,
UINT32 ulTime,
UINT16 uStreamNumber,
UINT8 unASMFlags,
UINT16 unASMRuleNumber
) PURE;
pBuffer
Pointer to an IRMABuffer interface that manages the packet data.

ulTime
The time stamp for the packet.

unStreamNumber
The stream number to which the packet belongs.

unASMFlags
The ASM flags associated with the packet.

unASMRuleNumber
The ASM rule number of the packet.

Additional Information
See "Chapter 11: Adaptive Stream Management".

IRMAPacket::SetAsLost

Marks a packet as lost. If the packet is lost, this method is called instead of IRMAPacket::Set. This method fails if the IRMABuffer of the packet is not NULL.


STDMETHOD(SetAsLost) (
THIS
) PURE;

IRMAPacketFormat

Purpose: Sets the packet format
Implemented by: File format plug-ins
Used by: RealServer
Header file: rmaformt.h

A file format plug-in implements this interface to support packet formats in addition to Real Data Transport (RDT) and PNA. RealServer uses this interface to determine which packet formats, such as RTP, the plug-in supports. It then tells the plug-in which format to use. If the plug-in does not implement IRMAPacketFormat, RealServer assumes that the plug-in supports only the RDT and PNA packet formats.

Additional Information
See "Supporting Multiple Packet Formats".

The IRMAPacketFormat interface contains the following methods:

As with all COM interfaces, the IRMAPacketFormat interface inherits the following IUnknown methods:

IRMAPacketFormat::GetSupportedPacketFormats

Determines the supported packet formats.


STDMETHOD(GetSupportedPacketFormats) (
THIS_
REF(const char**) pFormats
) PURE;
pFormats
Returns a pointer to a pointer to the formats, such as RTP, the plug-in supports.

IRMAPacketFormat::SetPacketFormat

Sets the packet format for the plug-in to use.


STDMETHOD(SetPacketFormat) (
THIS_
const char* pFormat
) PURE;
pFormats
A pointer to the formats, such as RTP, the plug-in should use.

IRMAPacketHook

Purpose: Provides presentation recording information
Implemented by: top-level client
Used by: Client core
Header file: rmaphook.h

The packet hook interfaces support the client recording feature, which lets the end user record a presentation in a single container datatype file on the client machine. The client core uses the IRMAPacketHook interface to send the top-level client packets to be recorded in the file. The top-level client is then responsible for creating the file in a container format. The top-level client instructs the core to start the recording through IRMAPacketHookManager.

Additional Information
See "Recording a Presentation".

The IRMAPacketHook interface contains the following methods:

As with all COM interfaces, the IRMAPacketHook interface inherits the following IUnknown methods:

IRMAPacketHook::OnEnd

Indicates the end of this packet hook session.


STDMETHOD(OnEnd) (
THIS
) PURE;

IRMAPacketHook::OnFileHeader

Sends the file header information.


STDMETHOD(OnFileHeader) (
THIS_
IRMAValues* pValues
) PURE;
pValues
Pointer to an IRMAValues interface that manages the file header information.

IRMAPacketHook::OnPacket

Sends the packet information.


STDMETHOD(OnPacket) (
THIS_
IRMAPacket* pPacket
) PURE;
pPacket
Pointer to an IRMAPacket interface that manages the packet information.

IRMAPacketHook::OnStart

Indicates the start of this packet hook session.


STDMETHOD(OnStart) (
THIS
) PURE;

IRMAPacketHook::OnStreamHeader

Sends the stream header information.


STDMETHOD(OnStreamHeader) (
THIS_
IRMAValues* pValues
) PURE;
pValues
Pointer to an IRMAValues interface that manages the stream header information.

IRMAPacketHookHelper

Purpose: Directs rendering plug-ins to send presentation data to the client core for recording
Implemented by: Rendering plug-ins
Used by: Client core
Header file: rmaphook.h

To support the client recording feature, rendering plug-ins for each stream of the recorded presentation must implement this interface. The client core uses this interface to instruct the plug-ins to send it packets for recording. The renderers then manipulate the stream data as necessary (typically altering the timeline) and send IRMAPacket objects back to the client core through IRMAPacketHookHelperResponse.

Additional Information
See "Chapter 6: Rendering Plug-In".

The IRMAPacketHookHelper interface contains the following methods:

As with all COM interfaces, the IRMAPacketHookHelper interface inherits the following IUnknown methods:

IRMAPacketHookHelper::StartHook

Tells the renderer to start sending the record packets.


STDMETHOD(StartHook) (
THIS_
ULONG32 ulStreamNumber,
ULONG32 ulTimeOffset,
IRMAPacketHookHelperResponse* pPacketHookHelperResponse
) PURE;
ulStreamNumber
The stream number to which to send the packets.

ulTimeOffset
The offset to apply to the packet returned in the response interface pointed to by pPacketHookHelperResponse. If you are recording a file, the timestamp starts at 0. However, if you are recording a live stream, the timestamp does not start from 0. Therefore, this parameter provides the offset.

pPacketHookHelperResponse
Pointer to an IRMAPacketHookHelperResponse interface that manages the packets received from the rendering plug-in.

IRMAPacketHookHelper::StopHook

Tells the renderer to stop sending the record packets.


STDMETHOD(StopHook) (
THIS
) PURE;

IRMAPacketHookHelperResponse

Purpose: Provides presentation data to client core for recording
Implemented by: Client core
Used by: Rendering plug-ins
Header file: rmacore.h

The client core implements this interface to receive packets for recording from the rendering plug-ins. It uses IRMAPacketHookHelper to instruct the plug-ins to send it the packets.

Additional Information
See "Chapter 6: Rendering Plug-In".

The IRMAPacketHookHelperResponse interface contains the following methods:

As with all COM interfaces, the IRMAPacketHookHelperResponse interface inherits the following IUnknown methods:

IRMAPacketHookHelperResponse::OnEndOfPackets

Indicates the end of this stream.


STDMETHOD(OnEndOfPackets) (
THIS
) PURE;

IRMAPacketHookHelperResponse::OnPacket

Passes the packet to the client core for recording.


STDMETHOD(OnPacket) (
THIS_
IRMAPacket* pPacket
) PURE;
pPacket
Pointer to an IRMAPacket interface that manages the packet to be recorded.

IRMAPacketHookManager

Purpose: Directs the client core to start or stop recording a presentation
Implemented by: Client core
Used by: top-level client
Header file: rmacore.h

When it needs to record a presentation, the top-level client uses this interface to instruct the client core to begin recording. The core then receives IRMAPacket objects from renderers through its IRMAPacketHookHelperResponse interface. It next passes these packets to the top-level client through IRMAPacketHook.

Additional Information
See "Recording a Presentation".

The IRMAPacketHookManager interface contains the following methods:

As with all COM interfaces, the IRMAPacketHookManager interface inherits the following IUnknown methods:

IRMAPacketHookManager::CloseHook

Closes the hook connection.


STDMETHOD(CloseHook) (
THIS
) PURE;

IRMAPacketHookManager::InitHook

Initializes a packet hook interface to send the top-level client packets to be recorded.


STDMETHOD(InitHook) (
THIS_
IRMAPacketHook* pPacketHook
) PURE;
pPacketHook
Pointer to an IRMAPacketHook interface that manages the packets to be recorded.

IRMAPacketHookManager::StartHook

Starts the recording.


STDMETHOD(StartHook) (
THIS
) PURE;

IRMAPacketHookManager::StopHook

Stops the recording.


STDMETHOD(StopHook) (
THIS
) PURE;

IRMAPacketTimeOffsetHandler

Purpose: Changes a packet's timestamp
Implemented by: File format plug-ins, renderers
Used by: Server, SLTA
Header file: rmaformt.h

There are times when an IRMAPacket is received from a file format plug-in and the timestamp needs to be modified. This interface can be queried from any IRMAFileFormatObject interface that represents datatypes whose internal data is dependent on the time stamp. This interface is typically used by applications that need to shift a stream in time, like an SLTA that makes multiple static files look like a single line stream. The response interface is IRMAPacketTimeOffsetHandlerResponse.

The IRMAPacketTimeOffsetHandler interface contains the following methods:

As with all COM interfaces, the IRMAPacketTimeOffsetHandler interface inherits the following IUnknown methods:

IRMAPacketTimeOffsetHandler::HandlePacket

Provides a packet to modify for the time offset.


STDMETHOD(HandlePacket) (
THIS_
IRMAPacket* pPacket
) PURE;
pPacket
Pointer to an IRMAPacket interface that manages the packet to modify for the time offset.

IRMAPacketTimeOffsetHandler::Init

Initializes the packet time offset handler and sets the response. If the plug-in supports multiple data types, implementors should look up the MIME type in the pHeader to determine what data type is being used here.


STDMETHOD(Init) (
THIS_
IRMAPacketTimeOffsetHandlerResponse* pResponse,
IRMAValues* pHeader,
IUnknown* pContext
) PURE;
pResponse
Pointer to an IRMAPacketTimeOffsetHandlerResponse interface that manages the response to this interface.

pHeader
Pointer to an IRMAValues interface that manages the stream header for the streams to be offset.

pContext
Pointer to the IUnknown interface that provides access to other interfaces the plug-in might need.

IRMAPacketTimeOffsetHandler::SetTimeOffset

Sets the time offset.


STDMETHOD(SetTimeOffset) (
THIS_
UINT32 ulTimeOffset,
BOOL bPlus
) PURE;
ulTimeOffset
The time offset, in milliseconds.

bPlus
If TRUE, adds the amount of time specified in ulTimeOffset to the packet timestamp. If FALSE, subtracts the amount of time specified in ulTimeOffset from the packet timestamp.

IRMAPacketTimeOffsetHandlerResponse

Purpose: Returns packets passed in the IRMAPacketTimeOffsetHandler interface
Implemented by: Server, SLTA
Used by: File format plug-ins, renderers
Header file: rmaformt.h

The return interface through which the time offset handler returns packets with offset time stamps.

The IRMAPacketTimeOffsetHandlerResponse interface contains the IRMAPacketTimeOffsetHandlerResponse::PacketReady method.

As with all COM interfaces, the IRMAPacketTimeOffsetHandlerResponse interface inherits the following IUnknown methods:

IRMAPacketTimeOffsetHandlerResponse::PacketReady

Passes back the packet after the packet's timestamp has been offset correctly.


STDMETHOD(TimeOffsetPacketReady) (
THIS_
IRMAPacket* pPacket
) PURE;
pPacket
Pointer to an IRMAPacket interface that manages the packet whose timestamp is being adjusted.

IRMAPassiveSiteWatcher

Purpose: Provides more than one site watcher
Implemented by: Plug-ins
Used by: IRMASite implementations
Header file: rmasite2.h

Usually the top-level client is the site watcher and manages site position and size. If a plug-in needs to know about the when the site's size and position changes, it can watch for the change using this interface. However, the plug-in cannot override the changes, only passively watch them.

The IRMAPassiveSiteWatcher interface contains the following methods:

As with all COM interfaces, the IRMAPassiveSiteWatcher interface inherits the following IUnknown methods:

IRMAPassiveSiteWatcher::PositionChanged

Indicates that a position change has occurred.


STDMETHOD(PositionChanged) (
THIS_
PNxPoint* pPoint
) PURE;
pPoint
Pointer to a PNxPoint structure that describes the new position.

IRMAPassiveSiteWatcher::SizeChanged

Indicates that a size change has occurred.


STDMETHOD(SizeChanged) (
THIS_
PNxSize* pSize
) PURE;
pSize
Pointer to a PNxSize structure that describes the new size.

IRMAPassword

Purpose: Encrypts and verifies passwords
Implemented by: RealSystem architecture
Used by: RealSystem client
Header file: rmaauth.h

Used with authentication, this interface gives the RealSystem client the means to encrypt passwords for transmission to RealServer.

Additional Information
See "Chapter 19: Authentication".

The IRMAPassword interface contains the following methods:

As with all COM interfaces, the IRMAPassword interface inherits the following IUnknown methods:

IRMAPassword::AsString

Returns a string that summerizes the authentication information. The contents of the returned string depend on the value of the AuthType key that is provided in the pAuth parameter.


STDMETHOD(AsString) (
THIS_
IRMAValues* pAuth,
REF(IRMABuffer*) pBuffer
) PURE;
pAuth
Pointer to an IRMAValues interface that manages the authorization type. This parameter contains a set of key/value pairs from which the authorization type is retrieved. The value of the authorization type can be:

pBuffer
Returns a pointer to an IRMABuffer interface that manages the string that contains the authorization summary.

IRMAPassword::AsValues

Takes a string and parses the string into an IRMAValues map, decrypting fields if necessary.


STDMETHOD(AsValues) (
THIS_
const char* str,
IRMAValues* pValues
) PURE;
str
The string to be parsed. In most cases, this is an RTSP header.

pValues
Pointer to an IRMAValues interface to which the indicated string is parsed.

IRMAPassword::CreateBuffer

Returns a buffer that can be passed into IRMAPassword::AsString. This method is provided for the convenince of external users, who would otherwise have to get a context and common class factory just to create IRMABuffer interfaces. This method can be used instead, but is not advisable if other means are available.


STDMETHOD(CreateBuffer) (
THIS_
REF(IRMABuffer*) pBuffer
) PURE;
pBuffer
Returns an IRMABuffer interface that manages the string information.

IRMAPassword::CreateValues

Returns a set of values that can be passed into IRMAPassword::AsValues. This method is provided for the convenince of external users, who would otherwise have to get a context and common class factory just to create IRMAValues interfaces. This method can be used instead, but is not advisable if other means are available.


STDMETHOD(CreateValues) (
THIS_
REF(IRMAValues*) pValues
) PURE;
pValues
Returns an IRMAValues interface that manages the values.

IRMAPassword::Crypt

Information not yet available at publication.


STDMETHOD(Crypt) (
THIS_
IRMAValues* pAuthentication
) PURE;
pAuthentication
Information not yet available at publication.

IRMAPassword::Verify

Information not yet available at publication.


STDMETHOD(Verify) (
THIS_
IRMAValues* pAuth1,
IRMAValues* pAuth2
) PURE;
pAuth1
Information not yet available at publication.

pAuth2
Information not yet available at publication.

IRMAPendingStatus

Purpose: Reports the status of pending operations to the RealSystem client
Implemented by: File format and file system plug-ins
Used by: RealSystem Client
Header file: rmapends.h

File format and file system plug-ins can implement this interface to inform the RealSystem client of their pending operations. Operations include initializing, buffering data, contacting host, and ready. To learn the component's status, the client calls IRMAPendingStatus::GetStatus.

Additional Information
See "Reporting Pending Status".

The IRMAPendingStatus interface contains the IRMAPendingStatus::GetStatus method.

As with all COM interfaces, the IRMAPendingStatus interface inherits the following IUnknown methods:

IRMAPendingStatus::GetStatus

Gets the current pending status from an object.


STDMETHOD(GetStatus) (
THIS_
REF(UINT16) uStatusCode,
REF(IRMABuffer*) pStatusDesc,
REF(UINT16) ulPercentDone
) PURE;
uStatusCode
Indicates the plug-in's current status. One of the following:

pStatusDesc
Returns an optional pointer to an IRMABuffer interface that manages a text description of the current status. This buffer might contain, for example, the address of a host being contacted.

ulPercentDone
Returns an integer value that represents the percentage of the task complete. This is used primarily for buffering. If the plug-in is contacting a host or initializing, the returned value is 0 when the operation is underway, 100 when complete. A percent done value for the RMA_STATUS_READY state is ignored.

IRMAPlayer

Purpose: Controls presentation playback
Implemented by: Player object (Client core)
Used by: top-level client and rendering plug-ins
Header file: rmacore.h

This interface for the player object lets the top-level client or rendering plug-in control the presentation playback by beginning, pausing, stopping, or seeking in a presentation timeline. Through this interface, the client or rendering plug-in can also gain access to the client engine, stream objects, and stream source objects.

Additional Information
See "Using a Player Object". See also IRMAClientEngine, IRMAStream, and IRMAStreamSource.

The IRMAPlayer interface contains the following methods:

As with all COM interfaces, the IRMAPlayer interface inherits the following IUnknown methods:

IRMAPlayer::AddAdviseSink

Adds a client advise sink.


STDMETHOD(AddAdviseSink) (
THIS_
IRMAClientAdviseSink* pAdviseSink
) PURE;
pAdviseSink
Pointer to an IRMAClientAdviseSink interface that is being added.

IRMAPlayer::Begin

Tells the player to begin playback of all its sources.


STDMETHOD(Begin) (
THIS
) PURE;

IRMAPlayer::GetClientContext

Gets the client context for this player.


STDMETHOD(GetClientContext) (
THIS_
REF(IUnknown*) pUnknown
) PURE;
pUnknown
Returns a pointer to a context from which other interfaces can be queried.

IRMAPlayer::GetClientEngine

Gets the client engine interface of which the player is a part.


STDMETHOD(GetClientEngine) (
THIS_
REF(IRMAClientEngine*) pEngine
) PURE;
pEngine
Returns the IRMAClientEngine interface of which the player is a part.

IRMAPlayer::GetCurrentPlayTime

Gets the current time on the player time line, in milliseconds.


STDMETHOD_(ULONG32,GetCurrentPlayTime) (
THIS
) PURE;

IRMAPlayer::GetSource

Returns the indicated stream source instance (IRMAStreamSource) supported by this player.


STDMETHOD(GetSource) (
THIS_
UINT16 nIndex,
REF(IUnknown*) pUnknown
) PURE;
nIndex
The index number of the source instance.

pUnknown
Returns a pointer to a context from which other interfaces can be queried.

IRMAPlayer::GetSourceCount

Returns the current number of stream source instances supported by this player instance.


STDMETHOD_(UINT16, GetSourceCount) (
THIS
) PURE;

IRMAPlayer::IsDone

Indicates whether the player is done with the current presentation. If this method returns TRUE, the player is done.


STDMETHOD_(BOOL,IsDone) (
THIS
) PURE;

IRMAPlayer::IsLive

Indicates whether the player contains the live source. If this method returns TRUE, the player contains the live source.


STDMETHOD_(BOOL,IsLive) (
THIS
) PURE;

IRMAPlayer::OpenURL

Opens a specified URL.


STDMETHOD(OpenURL) (
THIS_
const char* pURL
) PURE;
pURL
Pointer to the URL to open.

IRMAPlayer::Pause

Tells the player to pause playback of all its sources.


STDMETHOD(Pause) (
THIS
) PURE;

IRMAPlayer::RemoveAdviseSink

Removes a client advise sink.


STDMETHOD(RemoveAdviseSink) (
THIS_
IRMAClientAdviseSink* pAdviseSink
) PURE;
pAdviseSink
Pointer to the IRMAClientAdviseSink interface to be removed.

IRMAPlayer::Seek

Tells the player to seek in the playback time line of all its sources.


STDMETHOD(Seek) (
THIS_
ULONG32 ulTime
) PURE;
ulTime
The time in the time line to which to seek.

IRMAPlayer::SetClientContext

Installs the client as the provider of client services to the core. This method is traditionally called by the top-level client application.


STDMETHOD(SetClientContext) (
THIS_
IUnknown* pUnknown
) PURE;
pUnknown
Pointer to the new context, provided by the top-level client, that overrides the player's own context.

IRMAPlayer::Stop

Tells the player to stop playback of all its sources.


STDMETHOD(Stop) (
THIS
) PURE;

IRMAPlayer2

Purpose: Controls presentation playback
Implemented by: Player object (Client core)
Used by: top-level client and rendering plug-ins
Header file: rmacore.h

This interface for the player object lets the top-level client or rendering plug-in control the presentation playback by managing specified request interfaces and the minimum preroll. The methods in this interface are provided as an addition to the IRMAPlayer interface.

Additional Information
See "Chapter 6: Rendering Plug-In" and "Chapter 20: Top-Level Client". See also IRMAPlayer.

The IRMAPlayer2 interface contains the following methods:

As with all COM interfaces, the IRMAPlayer2 interface inherits the following IUnknown methods:

IRMAPlayer2::GetMinimumPreroll

Gets the minimum preroll of this clip.


STDMETHOD(GetMinimumPreroll) (
THIS_
REF(UINT32) ulMinPreroll
) PURE;
ulMinPreroll
Returns the minimum preroll.

IRMAPlayer2::GetRequest

Gets the specified IRMARequest interface so the user can get such information as MIME type, a requested URL, and so on.


STDMETHOD(GetRequest) (
THIS_
REF(IRMARequest*) pRequest
) PURE;
pRequest
Returns a pointer to the IRMARequest interface.

IRMAPlayer2::OpenRequest

Opens the specified IRMARequest interface.


STDMETHOD(OpenRequest) (
THIS_
IRMARequest* pRequest
) PURE;
pRequest
Pointer to the IRMARequest interface to be opened.

IRMAPlayer2::SetMinimumPreroll

Sets the minimum preroll of this clip.


STDMETHOD(SetMinimumPreroll) (
THIS_
UINT32 ulMinPreroll
) PURE;
ulMinPreroll
The minimum preroll.

IRMAPlayerConnectionAdviseSink

Purpose: Responds to events in the life of a player.
Implemented by: Allowance plug-ins
Used by: Server core
Header file: rmaallow.h

This interface's methods are called in response to events in the life of a player. For example, the IRMAPlayerConnectionAdviseSink::OnConnection method is called when a new player connects to the server.

Additional Information
See "Chapter 10: Allowance Plug-in".

The IRMAPlayerConnectionAdviseSink interface contains the following methods:

As with all COM interfaces, the IRMAPlayerConnectionAdviseSink interface inherits the following IUnknown methods:

IRMAPlayerConnectionAdviseSink::OnBegin

Indicates the client has started or resumed. This method is called while the client is connected to the server.


STDMETHOD(OnBegin) (
THIS
) PURE;

IRMAPlayerConnectionAdviseSink::OnConnection

Indicates a new player has connected to the server. If the result is PNR_OK, then the plug-in is notified when certain events occur in the player's life cycle. This method is called when a client first connects to the server.


STDMETHOD(OnConnection) (
THIS_
IRMAPlayerConnectionResponse* pResponse
) PURE;
pResponse
Pointer to an IRMAPlayerConnectionResponse interface that manages the response to various methods in this interface.

IRMAPlayerConnectionAdviseSink::OnDone

Indicates that the client has disconnected from the server.


STDMETHOD(OnDone) (
THIS
) PURE;

IRMAPlayerConnectionAdviseSink::OnPause

Indicates the playback has paused. This method is called while the client is connected to the server.


STDMETHOD(OnPause) (
THIS
) PURE;

IRMAPlayerConnectionAdviseSink::OnStop

Indicates the playback has stopped. This method is called while the client is connected to the server.


STDMETHOD(OnStop) (
THIS
) PURE;

IRMAPlayerConnectionAdviseSink::OnURL

Indicates the client is requesting a URL. This method is called when a client first connects to the server.


STDMETHOD(OnURL) (THIS_
IRMARequest* pRequest
) PURE;
pRequest
Pointer to an IRMARequest interface that manages the URL name and headers.

IRMAPlayerConnectionAdviseSink::SetPlayerController

Provides an interface that can stop, alert, redirect, or otherwise control the client. This method is called when the client first connects to the server.


STDMETHOD(SetPlayerController) (
THIS_
IRMAPlayerController* pPlayerController
) PURE;
pPlayerController
Pointer to an IRMAPlayerController interface that controls the client.

IRMAPlayerConnectionAdviseSink::SetRegistryID

Provides the plug-in with the identification of this client in the server registry. The plug-in can then use this identification to find out information about the connected client. This method is called when a client first connects to the server.


STDMETHOD(SetRegistryID) (
THIS_
UINT32 ulPlayerRegistryID
) PURE;
ulPlayerRegistryID
The registry ID of this client.

IRMAPlayerConnectionAdviseSinkManager

Purpose: Manages the creation of IRMAPlayerConnectionAdviseSink objects.
Implemented by: Server core
Used by: Allowance plug-ins
Header file: rmaallow.h

This interface manages the creation of IRMAPlayerConnectionAdviseSink objects.

Additional Information
See "Chapter 10: Allowance Plug-in".

The IRMAPlayerConnectionAdviseSinkManager interface contains the IRMAPlayerConnectionAdviseSinkManager::CreatePlayerConnectionAdviseSink method.

As with all COM interfaces, the IRMAPlayerConnectionAdviseSinkManager interface inherits the following IUnknown methods:

IRMAPlayerConnectionAdviseSinkManager::CreatePlayerConnectionAdviseSink

Creates a player connection advise sink interface.


STDMETHOD(CreatePlayerConnectionAdviseSink) (
THIS_
REF(IRMAPlayerConnectionAdviseSink*) pPCAdviseSink
) PURE;
pPCAdviseSink
Returns a pointer to the IRMAPlayerConnectionAdviseSink interface that was created.

IRMAPlayerConnectionResponse

Purpose: Permits an allowance plug-in to communicate with the server when the plug-in is finished with a notification.
Implemented by: Server core
Used by: Allowance plug-ins
Header file: rmaallow.h

This interface permits an allowance plug-in to tell the server when the plug-in is finished with a particular IRMAPlayerConnectionAdviseSink notification.

Additional Information
See "Chapter 10: Allowance Plug-in".

The IRMAPlayerConnectionResponse interface contains the following methods:

As with all COM interfaces, the IRMAPlayerConnectionResponse interface inherits the following IUnknown methods:

IRMAPlayerConnectionResponse::OnBeginDone

Contains the response to the IRMAPlayerConnectionAdviseSink::OnBegin method and indicates that the original call has completed.


STDMETHOD(OnBeginDone) (
THIS_
PN_RESULT status
) PURE;
status
Contains the response status. If this parameter is PNR_OK, the call to IRMAPlayerConnectionAdviseSink::OnBegin completed successfully.

IRMAPlayerConnectionResponse::OnConnectionDone

Contains the response to the IRMAPlayerConnectionAdviseSink::OnConnection method and indicates that the original call has completed.


STDMETHOD(OnConnectionDone) (
THIS_
PN_RESULT status
) PURE;
status
Contains the response status. If this parameter is PNR_OK, the call to IRMAPlayerConnectionAdviseSink::OnConnection completed successfully.

IRMAPlayerConnectionResponse::OnPauseDone

Contains the response to the IRMAPlayerConnectionAdviseSink::OnPause method and indicates that the original call has completed.


STDMETHOD(OnPauseDone) (
THIS_
PN_RESULT status
) PURE;
status
Contains the response status. If this parameter is PNR_OK, the call to IRMAPlayerConnectionAdviseSink::OnPause completed successfully.

IRMAPlayerConnectionResponse::OnStopDone

Contains the response to the IRMAPlayerConnectionAdviseSink::OnStop method and indicates that the original call has completed.


STDMETHOD(OnStopDone) (
THIS_
PN_RESULT status
) PURE;
status
Contains the response status. If this parameter is PNR_OK, the call to IRMAPlayerConnectionAdviseSink::OnStop completed successfully.

IRMAPlayerConnectionResponse::OnURLDone

Contains the response to the IRMAPlayerConnectionAdviseSink::OnURL method and indicates that the original call has completed.


STDMETHOD(OnURLDone) (
THIS_
PN_RESULT status
) PURE;
status
Contains the response status. If this parameter is PNR_OK, the call to IRMAPlayerConnectionAdviseSink::OnURL completed successfully.

IRMAPlayerController

Purpose: Controls a player
Implemented by: Server core
Used by: Allowance plug-ins
Header file: rmaallow.h

This interface permits an allowance plug-in to control a player by directing the server to alert, redirect, or disconnect the player.

Additional Information
See "Chapter 10: Allowance Plug-in".

The IRMAPlayerController interface contains the following methods:

As with all COM interfaces, the IRMAPlayerController interface inherits the following IUnknown methods:

IRMAPlayerController::AlertAndDisconnect

Displays a message on the player and disconnects the player.


STDMETHOD(AlertAndDisconnect) (
THIS_
IRMABuffer* pAlert
) PURE;
pAlert
Pointer to an IRMABuffer interface that manages the message to display on the player.

IRMAPlayerController::Disconnect

Disconnects the player.


STDMETHOD(Disconnect) (
THIS
) PURE;

IRMAPlayerController::HostRedirect

Redirects this player to another host and/or port, for the same URL. This method works with both RTSP and PNA protocols.


STDMETHOD(HostRedirect) (
THIS_
IRMABuffer* pHost,
UINT16 nPort
) PURE;
pHost
Pointer to an IRMABuffer interface that manages the host name to which this player is redirected.

nPort
The port number to which this player is redirected.

IRMAPlayerController::NetworkRedirect

Redirects this player to another URL. This method is only redirects an RTSP player connection to another RTSP URL.


STDMETHOD(NetworkRedirect) (
THIS_
IRMABuffer* pURL,
UINT32 ulSecsFromNow
) PURE;
pURL
Pointer to an IRMABuffer interface that manages the URL to which this player is redirected.

ulSecsFromNow
The number of seconds before the redirection occurs.

IRMAPlayerController::Pause

Alerts the player to pause.


STDMETHOD(Pause) (
THIS
) PURE;

IRMAPlayerController::Redirect

Redirects this player to another URL on the same server. For example, if pPartialURL were set to "welcome.rm", the player would be redirected to "current_protocol://current_host:current_port/welcome.rm". This method works with both RTSP and PNA protocols.


STDMETHOD(Redirect) (
THIS_
IRMABuffer* pPartialURL
) PURE;
pPartialURL
Pointer to an IRMABuffer interface that manages the partial URL.

IRMAPlayerController::Resume

Alerts the player to resume.


STDMETHOD(Resume) (
THIS
) PURE;

IRMAPlayerCreationSink

Purpose: Provides notification of player creation and destruction
Implemented by: Plug-in components
Used by: Plug-in components
Header file: rmapsink.h

A plug-in implements this interface to get notifications of player creation and destruction. It should use IRMAPlayerSinkControl, implemented by the RealSystem client, to add itself as a sink.

The IRMAPlayerCreationSink interface contains the following methods:

As with all COM interfaces, the IRMAPlayerCreationSink interface inherits the following IUnknown methods:

IRMAPlayerCreationSink::PlayerClosed

Indicates that an existing player was closed.


STDMETHOD(PlayerClosed) (
THIS_
IRMAPlayer* pPlayer
) PURE;
pPlayer
Pointer to an IRMAPlayer interface that managed the player that was closed.

IRMAPlayerCreationSink::PlayerCreated

Indicates that a new player was created.


STDMETHOD(PlayerCreated) (
THIS_
IRMAPlayer* pPlayer
) PURE;
pPlayer
Pointer to an IRMAPlayer interface that manages the new player.

IRMAPlayerSinkControl

Purpose: Adds sinks to get notifications of player creation and destruction
Implemented by: RealSystem client
Used by: Plug-in components
Header file: rmapsink.h

A plug-in that needs to be notified of player creation and destruction should query for this interface from the context passed in IRMAPlugin::InitPlugin and add themselves as an IRMAPlayerCreationSink.

The IRMAPlayerSinkControl interface contains the following methods:

As with all COM interfaces, the IRMAPlayerSinkControl interface inherits the following IUnknown methods:

IRMAPlayerSinkControl::AddSink

Adds a new player creation sink that is to be notified of player creation and destruction.


STDMETHOD(AddSink) (
THIS_
IRMAPlayerCreationSink* pSink
) PURE;
pSink
Pointer to an IRMAPlayerCreationSink interface that manages the new sink.

IRMAPlayerSinkControl::RemoveSink

Removes an exisitng player creation sink.


STDMETHOD(RemoveSink) (
THIS_
IRMAPlayerCreationSink* pSink
) PURE;
pSink
Pointer to an IRMAPlayerCreationSink interface that manages the sink to remove.

IRMAPlugin

Purpose: Provides plug-in characteristics
Implemented by: All plug-ins
Used by: RealServer and RealSystem Client
Header file: rmaplugn.h

Every plug-in must implement IRMAPlugin. On startup, RealServer or the client uses the IRMAPlugin::GetPluginInfo method to determine each of its plug-in's characteristics. A "C-style" entry point in a plug-in, RMACreateInstance, exposes this interface.

Additional Information
Refer to "Creating a Plug-In Instance" for more on this entry point.

The IRMAPlugin interface contains the following methods:

As with all COM interfaces, the IRMAPlugin interface inherits the following IUnknown methods:

IRMAPlugin::GetPluginInfo

Returns the basic information about this plug-in. Most of this information is used in the About box of the user interface. This method is called when the RMA core application is launched.


STDMETHOD(GetPluginInfo) (
THIS_
REF(BOOL) bMultipleLoad,
REF(const char*) pDescription,
REF(const char*) pCopyright,
REF(const char*) pMoreInfoURL,
REF(ULONG32) ulVersionNumber
) PURE;
bMultipleLoad
Indicates whether or not this plug-in can be instantiated multiple times. All file formats must set this parameter to TRUE. The only other type of plug-in that can specify this parameter as TRUE is a filesystem plug-in. Any plug-in that sets this parameter to TRUE must not use global variables of any type.

Setting this parameter to TRUE implies that you accept that your plug-in may be instantiated multiple times (possibly in different address spaces). Plug-ins are instantiated multiple times only in the server (for performance reasons).

An example of a plug-in that must set this parameter to FALSE is a filesystem plug-in that uses a single TCP connection to communicate with a database.

pDescription
Returns a pointer to a text description of the plug-in. This parameter can be NULL.

pCopyright
Returns a pointer to a text copyright notice. This parameter can be NULL.

pMoreInfoURL
Returns a pointer to a text URL location where more information can be obtained. This parameter can be NULL.

ulVersionNumber
Returns the version of this plug-in.

IRMAPlugin::InitPlugin

Initializes the plug-in for use. This method must always be called before any other method is called. This method is primarily needed so the plug-in can have access to the context for creation of IRMABuffer interfaces and IMalloc.


STDMETHOD(InitPlugin) (
THIS_
IUnknown* pContext
) PURE;
pContext
Pointer to an IUnknown interface that provides the plug-in with access to other useful interfaces.

IRMAPlugin2Handler

Purpose: Provides for the discovery of plug-ins
Implemented by: Client core
Used by: Client core, file format plug-ins, renderers
Header file: rmaplugn.h

This interface lets you find plug-ins based on a description of functionality. Upon calling IRMAPlugin2Hander::Init, the plug-in handler should scan a given directory (this particular implementation scans the directory specified in DT_Plugins) for all DLLs that export an RMACreateInstance. The DLLs that export this interface are termed "plugins." Those plug-ins will then be queried for a number of parameters, and those parameters will be stored. Later, components of the system can then ask the plug-in handler for "plugins" that fit a particular description (for example, find a file system that supports the "file:" protocol).

The IRMAPlugin2Handler interface contains the following methods:

As with all COM interfaces, the IRMAPlugin2Handler interface inherits the following IUnknown methods:

IRMAPlugin2Handler::Close

Unloads all DLLs that are not being used. Returns PNR_FAIL if there are still plug-ins active in the system. This method is currently not implemented.


STDMETHOD(Close) (
THIS
) PURE;

IRMAPlugin2Handler::FindImplementationFromClassID

Scans all plug-ins that support the IRMACommonClassFactory interface and determines which, if any, support the creation of the GUID specified in GUIDClassID, and return an instance of this class.


STDMETHOD(FindImplementationFromClassID) (
THIS_
REFGUID GUIDClassID,
REF(IUnknown*) pIUnknownInstance
) PURE;
GUIDClassID
The class ID the plug-in must support.

pIUnknownInstance
Returns a pointer to a plug-in instance that supports the given class ID.

IRMAPlugin2Handler::FindIndexUsingStrings

Finds a plug-in that matches the given list of criteria. An index is returned that can be used to either get more information about the plug-in (using IRMAPlugin2Handler::GetPluginInfo) or create an instance using IRMAPlugin2Handler::GetInstance. For example:


UINT32 index
pPluginhandler->FindIndexUsingStrings("PluginType", "PLUGIN_FILE_SYSTEM", "FileProtocol",
"file", NULL, NULL, index);

causes the system to find a plug-in that is a file system that supports the file: protocol, and the index of that plug-in (probably smplfsys) is returned in the index.

Note
A maximum of three values can be given.


STDMETHOD(FindIndexUsingStrings) (
THIS_
char* PropName1,
char* PropVal1,
char* PropName2,
char* PropVal2,
char* PropName3,
char* PropVal3,
REF(UINT32) unIndex
) PURE;
PropName1
Pointer to the first property name.

PropVal1
Pointer to the value of the first property.

PropName2
Pointer to the second property name.

PropVal2
Pointer to the value of the second property.

PropName3
Pointer to the third property name.

PropVal3
Pointer to the value of the third property.

unIndex
Returns the index number of the plug-in that matches the given values.

IRMAPlugin2Handler::FindIndexUsingValues

Finds a plug-in that matches a given list of values. An index is returned that can be used to either get the values (using IRMAPlugin2Handler::GetPluginInfo) or create an instance using IRMAPlugin2Handler::GetInstance. The IRMAPlugin2Handler::FindIndexUsingStrings method only provides slots for three property strings. Using this method, you can include as many strings as you need using an IRMAValues interface to allow for more exacting searches.


STDMETHOD(FindIndexUsingValues) (
THIS_
IRMAValues* pValue,
REF(UINT32) unIndex
) PURE;
pValue
Pointer to an IRMAValues interface that manages the values of the plug-in you want to find.

unIndex
Returns the index number of the plug-in that matches the given values.

IRMAPlugin2Handler::FindPluginUsingStrings

Finds a plug-in that matches the given set of values.

Note
A maximum of three values can be given.


STDMETHOD(FindPluginUsingStrings) (
THIS_
char* PropName1,
char* PropVal1,
char* PropName2,
char* PropVal2,
char* PropName3,
char* PropVal3,
REF(IUnknown*) pUnk
) PURE;
PropName1
Pointer to the first property name.

PropVal1
Pointer to the value of the first property.

PropName2
Pointer to the second property name.

PropVal2
Pointer to the value of the second property.

PropName3
Pointer to the third property name.

PropVal3
Pointer to the value of the third property.

pUnk
Returns a pointer to the plug-in instance that matches the given values.

IRMAPlugin2Handler::FindPluginUsingValues

Finds a plug-in that matches the given set of values.


STDMETHOD(FindPluginUsingValues) (
THIS_
IRMAValues* pValue,
REF(IUnknown*) pUnk
) PURE;
pValue
Pointer to an IRMAValues interface that manages the values to match.

pUnk
Returns a pointer to the plug-in instance that matches the given values.

IRMAPlugin2Handler::FlushCache

Flushes the Least Recently Used (LRU) cache, which unloads all DLLs from memory that currently have a reference count of zero.


STDMETHOD(FlushCache) (
THIS
) PURE;

IRMAPlugin2Handler::GetInstance

Returns a plug-in instance given a plug-in index.


STDMETHOD(GetInstance) (
THIS_
UINT32 index,
REF(IUnknown*) pUnknown
) PURE;
index
The index number of the plug-in.

pUnknown
Returns a pointer to the new instance of the plug-in specified by the index.

IRMAPlugin2Handler::GetNumPlugins2

Returns the number of plug-ins.


STDMETHOD_(ULONG32,GetNumOfPlugins2) (
THIS
) PURE;

IRMAPlugin2Handler::GetPluginInfo

Gets the information about the specified plug-in.


STDMETHOD(GetPluginInfo) (
THIS_
UINT32 unIndex,
REF(IRMAValues*) Values
) PURE;
unIndex
The index number of the specified plug-in.

Values
Returns a pointer to an IRMAValues interface that manages the plug-in information. The information is stored as name and value pairs. For plug-ins that implement the IRMAGenericPlugin interface, this information is determined completely by the implementor.

IRMAPlugin2Handler::Init

Initializes the plug-in handler.


STDMETHOD(Init) (
THIS_
IUnknown* pContext
) PURE;
pContext
Pointer to the context passed into plug-ins when they are initialized by the plug-in handler.

IRMAPlugin2Handler::SetCacheSize

Sets the size of the cache. The cache is initally set to 1,000 KB. To disable the cache, set the size to 0. If the cache is disabled, a DLL will be unloaded whenever its reference count becomes zero (which might cause performance problems).


STDMETHOD(SetCacheSize) (
THIS_
ULONG32 nSizeKB
) PURE;
nSizeKB
The size, in KB, to set the cache.

IRMAPlugin2Handler::SetRequiredPlugins

Sets the required plug-in list. This information is used by the server; those plug-ins specified as "required plug-ins" must be present in their original form for the server to function.


STDMETHOD(SetRequiredPlugins) (
THIS_
const char** ppszRequiredPlugins
) PURE;
ppszRequiredPlugins
Returns a pointer to the list of required plug-ins.

IRMAPluginEnumerator

Purpose: Enumerates and returns plug-in instances
Implemented by: Client core
Used by: top-level client
Header file: rmaplugn.h

A top-level client can use this interface to find all plug-ins supported by the client core. It uses IRMAPluginGroupEnumerator to find plug-ins that expose a specific interface.

Additional Information
See "Enumerating Plug-Ins".

The IRMAPluginEnumerator interface contains the following methods:

As with all COM interfaces, the IRMAPluginEnumerator interface inherits the following IUnknown methods:

IRMAPluginEnumerator::GetNumOfPlugins

Returns the total number of available plug-ins supported by the client core.


STDMETHOD_(ULONG32,GetNumOfPlugins) (
THIS
) PURE;

IRMAPluginEnumerator::GetPlugin

Returns an instance of the plug-in.


STDMETHOD(GetPlugin) (
THIS_
ULONG32 ulIndex,
REF(IUnknown*) pPlugin
) PURE;
ulIndex
Index number of the plug-in.

pPlugin
Returns a pointer to the IUnknown interface that identifies the instance of the plug-in object, so calls can be made to that plug-in's interfaces.

IRMAPluginFactory

Purpose: Provides for more than one "RMA plug-in" in a single DLL
Implemented by: Plug-ins
Used by: Client core and server
Header file: rmaplugn.h

This interface provides for more than one "RMA plugin" in a single DLL. For example, a plug-in author could use this interface to have three different file format plug-ins in a single DLL.

The IRMAPluginFactory interface contains the following methods:

As with all COM interfaces, the IRMAPluginFactory interface inherits the following IUnknown methods:

IRMAPluginFactory::GetNumPlugins

Returns the number of plug-ins in the DLL.


STDMETHOD_(UINT16, GetNumPlugins) (
THIS
) PURE;

IRMAPluginFactory::GetPlugin

Creates a new instance of the requested plug-in.


STDMETHOD(GetPlugin) (
THIS_
UINT16 uIndex,
IUnknown** pPlugin
) PURE;
uIndex
The index number of the plug-in.

pPlugin
Returns a pointer to the IUnknown interface that identifies the instance of the plug-in object indicated by uIndex.

IRMAPluginGroupEnumerator

Purpose: Enumerates and returns plug-ins supporting a certain interface
Implemented by: Client core
Used by: top-level client
Header file: rmaplugn.h

A top-level client can use this interface to find all plug-ins to the client core that expose a specific interface. It uses IRMAPluginEnumerator to find all plug-ins to the core.

Additional Information
See "Enumerating Plug-Ins".

The IRMAPluginGroupEnumerator interface contains the following methods:

As with all COM interfaces, the IRMAPluginGroupEnumerator interface inherits the following IUnknown methods:

IRMAPluginGroupEnumerator::GetNumOfPlugins

Returns the number of available plug-ins that support a particular interface.


STDMETHOD_(ULONG32,GetNumOfPlugins) (
THIS
) PURE;

IRMAPluginGroupEnumerator::GetPlugin

Creates a new instance of the requested plug-in.


STDMETHOD(GetPlugin) (
THIS_
UINT32 ulIndex,
REF(IUnknown*) pPlugin
) PURE;
ulIndex
Index number of the plug-in.

pPlugin
Returns a pointer to the IUnknown interface that identifies the instance of the plug-in object indicated by ulIndex.

IRMAPluginGroupEnumerator::Init

Builds a list of plug-ins that support the specified interface. This method must be called before the other IRMAPluginGroupEnumerator methods can be called.


STDMETHOD(Init) (
THIS_
REFIID iid
) PURE;
iid
The interface into which the plug-ins are grouped.

IRMAPluginProperties

Purpose: Returns the plug-in properties
Implemented by: Plug-ins
Used by: Player core, server core
Header file: rmaplgns.h

This interface provides a means for plug-ins to return a list of properties that uniquely describes the plug-in to the plug-in handler.

The IRMAPluginProperties interface contains the IRMAPluginProperties::GetProperties method.

As with all COM interfaces, the IRMAPluginProperties interface inherits the following IUnknown methods:

IRMAPluginProperties::GetProperties

Returns a list of properties that uniquely describes the plug-in.


STDMETHOD(GetProperties) (
THIS_
REF(IRMAValues*) pIRMAValuesProperties
) PURE
pIRMAValuesProperties
Returns a pointer to an IRMAValues interface that manages the property information.

IRMAPluginReloader

Purpose: Tells the client core to reload all plug-ins
Implemented by: Plug-in handler
Used by: Top-level client (upgrade) or client core
Header file: rmaplugn.h

This interface lets top-level clients inform the client core to look for new plug-ins. Currently this interface is used by RealPlayer to implement auto-upgrade.

The IRMAPluginReloader interface contains the IRMAPluginReloader::ReloadPlugins method.

As with all COM interfaces, the IRMAPluginReloader interface inherits the following IUnknown methods:

IRMAPluginReloader::ReloadPlugins

Causes the client core to reload all plug-ins.


STDMETHOD(ReloadPlugins) (
THIS
) PURE;

IRMAPreferenceEnumerator

Purpose: Allows preference enumeration
Implemented by: Information not yet available at publication.
Used by: Information not yet available at publication.
Header file: rmaprefs.h

The IRMAPreferenceEnumerator interface contains the following methods:

As with all COM interfaces, the IRMAPreferenceEnumerator interface inherits the following IUnknown methods:

IRMAPreferenceEnumerator::BeginSubPref

Information not yet available at publication.


 STDMETHOD(BeginSubPref) (
THIS_
const char* szSubPref
) PURE;
szSubPref
Information not yet available at publication.

IRMAPreferenceEnumerator::EndSubPref

Information not yet available at publication.


STDMETHOD(EndSubPref) (
THIS
) PURE;

IRMAPreferenceEnumerator::GetPrefKey

Information not yet available at publication.


 STDMETHOD(GetPrefKey) (
THIS_
UINT32 nIndex,
REF(IRMABuffer*) pBuffer
) PURE;
nIndex
Information not yet available at publication.

pBuffer
Information not yet available at publication.

IRMAPreferenceEnumerator::ReadPref

Information not yet available at publication.


 STDMETHOD(ReadPref) (
THIS_
const char* pPrefKey,
IRMABuffer*& pBuffer
) PURE;
pPrefKey
Information not yet available at publication.

pBuffer
Information not yet available at publication.

IRMAPreferences

Purpose: Stores preferences in RealServer or the client registry
Implemented by: RealSystem architecture
Used by: top-level clients
Header file: rmaprefs.h

The IRMAPreferences interface contains the following methods:

As with all COM interfaces, the IRMAPreferences interface inherits the following IUnknown methods:

IRMAPreferences::ReadPref

Reads a preference from the registry or configuration file.


STDMETHOD(ReadPref) (
THIS_
const char* pPrekKey,
REF(IRMABuffer*) pBuffer
) PURE;
pPrekKey
Pointer to the name of the preference.

pBuffer
Returns a pointer to an IRMABuffer interface that manages the value of the preference.

IRMAPreferences::WritePref

Writes a preference to the registry or configuration file.


STDMETHOD(WritePref) (
THIS_
const char* pPrekKey,
IRMABuffer* pBuffer
) PURE;
pPrekKey
Pointer to the name of the preference.

pBuffer
Returns a pointer to an IRMABuffer interface that manages the value of the preference.

IRMAPreferences2

Purpose: Gives sub-preference options abilities
Implemented by: RealSystem architecture
Used by: top-level clients
Header file: rmaprefs.h

The IRMAPreferences2 interface contains the following methods:

As with all COM interfaces, the IRMAPreferences2 interface inherits the following IUnknown methods:

IRMAPreferences2::GetPreferenceEnumerator

Reads a preference from the registry or configuration.


STDMETHOD(GetPreferenceEnumerator) (
THIS_
REF(IRMAPreferenceEnumerator*) pEnum
) PURE;
pEnum
Information not yet available at publication.

IRMAPreferences2::ResetRoot

Resets the root of the preferences.


STDMETHOD(ResetRoot) (
THIS_
const char* pCompanyName,
const char* pProductName,
int nProdMajorVer,
int nProdMinorVer
) PURE;
pCompanyName
Information not yet available at publication.

pProductName
Information not yet available at publication.

nProdMajorVer
Information not yet available at publication.

nProdMinorVer
Information not yet available at publication.

IRMAPropWatch

Purpose: Sets watches on RealServer registry properties
Implemented by: RealServer registry object (RealSystem architecture)
Used by: Monitor plug-ins
Header file: rmamon.h

After creating a registry object with IRMAPNRegistry, a monitor plug-in can set watches on RealServer registry properties with this interface. RealServer then uses IRMAPropWatchResponse to inform the plug-in of changes to the registry properties.

Additional Information
See "Watching Properties". See also IRMAScheduler.

The IRMAPropWatch interface contains the following methods:

As with all COM interfaces, the IRMAPropWatch interface inherits the following IUnknown methods:

IRMAPropWatch::ClearWatchById

Clears a watch-point based on the property's ID.


STDMETHOD(ClearWatchById) (
THIS_
const UINT32 id
) PURE;
id
The ID of the property from which to clear the watch-point.

IRMAPropWatch::ClearWatchByName

Clears a watch-point based on the Property's name.


STDMETHOD(ClearWatchByName) (
THIS_
const char* pName
) PURE;
pName
Pointer to the name of the property from which to clear the watch-point.

IRMAPropWatch::ClearWatchOnRoot

Clears the watch on the root of the registry.


STDMETHOD(ClearWatchOnRoot) (
THIS
) PURE;

IRMAPropWatch::Init

Initializes the response interface so the watch notifications can be sent back to the respective plug-ins.


STDMETHOD(Init) (
THIS_
IRMAPropWatchResponse* pResponse
) PURE;
pResponse
Pointer to an IRMAPropWatchResponse interface that manages responses to various IRMAPropWatch methods.

IRMAPropWatch::SetWatchById

Sets a watch-point on the property whose ID is specified. A notification is returned to the plug-in that set the watch-point if that particular property gets modified or deleted.


STDMETHOD_(UINT32, SetWatchById) (
THIS_
const UINT32 id
) PURE;
id
The ID of the property for which a watch-point is set.

IRMAPropWatch::SetWatchByName

Sets a watch-point on the property whose name is specified. A notification is returned to the plug-in that set the watch-point if that particular property gets modified or deleted.


STDMETHOD_(UINT32, SetWatchByName) (
THIS_
const char* pName
) PURE;
pName
Pointer to the name of the property for which a watch-point is set.

IRMAPropWatch::SetWatchOnRoot

Puts a watch at the highest level of the registry hierarchy. This method returns a notification to the plug-in only if properties at this level get added, modified, or deleted.


STDMETHOD_(UINT32, SetWatchOnRoot) (
THIS
) PURE;

IRMAPropWatchResponse

Purpose: Informs the monitor plug-in of RealServer registry changes
Implemented by: Monitor plug-in, top-level client
Used by: RealServer registry object (RealSystem architecture)
Header file: rmamon.h

A monitor plug-in or a top-level client implements this response interface to IRMAPropWatch to receive information about changes to monitored properties in the RealServer registry.

Additional Information
See "Appendix F: RealServer Property Registry".

The IRMAPropWatchResponse interface contains the following methods:

As with all COM interfaces, the IRMAPropWatchResponse interface inherits the following IUnknown methods:

IRMAPropWatchResponse::AddedProp

Responds when a new property gets added under the property on which the watch was set.


STDMETHOD(AddedProp) (
THIS_
const UINT32 id,
const RMAPropType propType,
const UINT32 ulParentID
) PURE;
id
The ID of the property that was just added to the registry.

propType
The datatype of the property that was just added to the registry.

ulParentID
The ID of the added property's immediate parent COMPOSITE property.

IRMAPropWatchResponse::DeletedProp

Responds when a watched property gets deleted. This method returns the ID of the property just deleted and its immediate parent COMPOSITE property.


STDMETHOD(DeletedProp) (
THIS_
const UINT32 id,
const UINT32 ulParentID
) PURE;
id
The ID of the property that was just deleted from the registry.

ulParentID
The ID of the deleted property's immediate parent COMPOSITE property.

IRMAPropWatchResponse::ModifiedProp

Responds when a watched property gets modified.


STDMETHOD(ModifiedProp) (
THIS_
const UINT32 id,
const RMAPropType propType,
const UINT32 ulParentID
) PURE;
id
The ID of the property that was just modified in the registry.

propType
The datatype of the property that was just modified in the registry.

ulParentID
The ID of the modified property's immediate parent COMPOSITE property.


Copyright © 2000 RealNetworks
For technical support, please contact supportsdk@real.com.
This file last updated on 05/17/00 at 12:50:36.
previous next