previous next

Interface List (continued)

IRMAAutoConfig

Purpose: Auto-configuration of the protocol used by the client core
Implemented by: Information not yet available at publication.
Used by: Information not yet available at publication.
Header file: rmaaconf.h

The reponse interface is IRMAAutoConfigResponse.

The IRMAAutoConfig interface contains the following methods:

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

IRMAAutoConfig::Abort

Aborts the configuration process.


STDMETHOD(Abort) (
THIS
) PURE;

IRMAAutoConfig::Close

Shuts down the configuration process.


STDMETHOD(Close) (
THIS
) PURE;

IRMAAutoConfig::DoAutoConfig

Starts the auto-configuration process.


STDMETHOD(DoAutoConfig) (
THIS
) PURE;

IRMAAutoConfig::Init

Initializes the configuration process.


STDMETHOD(Init) (
THIS_
IRMAAutoConfigResponse* pResponse,
const char* pPNAURL,
const char* pRTSPURL
) PURE;
pResponse
Pointer to an IRMAAutoConfigResponse interface that manages the response to this interface.

pPNAURL
Pointer to the URL to which the auto-configuration process connects to download the PNA protocol.

pRTSPURL
Pointer to the URL to which the auto-configuration process connects to download the RTSP protocol.

IRMAAutoConfigResponse

Purpose: Information not yet available at publication.
Implemented by: Information not yet available at publication.
Used by: Information not yet available at publication.
Header file: rmaaconf.h

The IRMAAutoConfigResponse interface contains the following methods:

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

IRMAAutoConfigResponse::OnBegin

Indicates the start of the auto-configuration process.


STDMETHOD(OnBegin) (
THIS
) PURE;

IRMAAutoConfigResponse::OnComplete

Indicates the completion of the auto-configuration process and its status.


STDMETHOD(OnComplete) (
THIS_
PN_RESULT PNAResult,
UINT32 ulPNAProtocolID,
PN_RESULT RTSPResult,
UINT32 ulRTSPProtocolID
) PURE;
PNAResult
The status of the auto-configuration operation for the PNA protocol. A value of PNR_OK indicates the operation was completed successfully.

ulPNAProtocolID
Identifies the PNA transport protocol. One of the following:

RTSPResult
The status of the auto-configuration operation for the RTSP protocol. A value of PNR_OK indicates the operation was completed successfully.

ulRTSPProtocolID
Identifies the RTSP transport protocol. One of the following:

IRMAAutoConfigResponse::OnProgress

Indicates the progress of the auto-configuration process.


STDMETHOD(OnProgress) (
THIS_
UINT32 ulProgress,
UINT32 ulProtocolID,
const char* pProtocolDescription
) PURE;
ulProgress
The progress of the auto-configuration operation, in percent.

ulProtocolID
Identifies the transport protocol. One of the following:

pProtocolDescription
Not currently used, passes NULL.

IRMABackChannel

Purpose: Provides a communications "back channel" from a client to RealServer
Implemented by: File format plug-in
Used by: Rendering plug-in
Header file: rmaasm.h

If a file format plug-in implements this interface, its corresponding rendering plug-in can send it data in an IRMAPacket object.

The IRMABackChannel interface contains the IRMABackChannel::PacketReady method.

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

IRMABackChannel::PacketReady

Contains a back channel packet sent from the rendering plug-in to the file format plug-in.


STDMETHOD(PacketReady) (
THIS_
IRMAPacket* pPacket
) PURE;
pPacket
Pointer to an IRMAPacket interface that manages data from the rendering plug-in.

IRMABroadcastFormatObject

Purpose: Provides methods of communicating to broadcast plug-ins
Implemented by: Broadcast plug-ins
Used by: RealServer
Header file: rmaformt.h

This is the main interface RealServer uses to communicate with a broadcast plug-in. At system startup, RealServer uses this interface to get functional information about each broadcast plug-in. With this information and the requested URL's mount point, it determines which broadcast plug-in to use to stream a requested live feed. Additional methods instruct the plug-in to send stream header information or stream packets. The response interface is IRMAFormatResponse.

Additional Information
See "Chapter 9: Monitor Plug-in". See also "FSMount Parameter".

The IRMABroadcastFormatObject interface contains the following methods:

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

IRMABroadcastFormatObject::GetBroadcastFormatInfo

Retrieves a string that uniquely identifies this broadcast format.


STDMETHOD(GetBroadcastFormatInfo) (
THIS_
REF(const char*) pToken
) PURE;
pToken
Returns a pointer to the string that identifies this broadcast format.

IRMABroadcastFormatObject::GetFileHeader

Gets the file format for the header.


STDMETHOD(GetFileHeader) (
THIS
) PURE;

IRMABroadcastFormatObject::GetStreamHeader

Gets the header for a particular stream in the file. When the header is ready, this method should call IRMAFormatResponse::StreamHeaderReady to pass the stream header back to the server.


STDMETHOD(GetStreamHeader) (
THIS_
UINT16 unStreamNumber
) PURE;
unStreamNumber
The stream number from which to fill in the stream header information.

IRMABroadcastFormatObject::InitBroadcastFormat

Initializes the broadcast format response for the supplied URL.


STDMETHOD(InitBroadcastFormat) (
THIS_
const char* pURL,
IRMAFormatResponse* pFormatResponse
) PURE;
pURL
Pointer to the URL to which to stream the data.

pFormatResponse
Pointer to an IRMAFormatResponse interface that manages the response to the IRMABroadcastFormatObject methods.

IRMABroadcastFormatObject::StartPackets

Starts sending packets for a particular stream in the file. When the packet is available, the file format should call IRMAFormatResponse::PacketReady to pass the packet back to the server.


STDMETHOD(StartPackets) (
THIS_
UINT16 unStreamNumber
) PURE;
unStreamNumber
The stream number from which to send the packet.

IRMABroadcastFormatObject::StopPackets

Stops sending packets for a particular stream in the file.


STDMETHOD(StopPackets) (
THIS_
UINT16 unStreamNumber
) PURE;
unStreamNumber
The stream number from which to stop the packets.

IRMABroadcastMapper

Purpose: Determines the format of a live broadcast
Implemented by: Broadcast plug-ins
Used by: RealServer
Header file: rmafiles.h

A broadcast plug-in implements this interface rather than IRMAFileMimeMapper. When a client connects to a live broadcast, the broadcast plug-in creates a file object that RealServer uses to verify the connection. After verifying that the requested URL is for an existing broadcast, RealServer calls the file object's IRMABroadcastMapper::FindBroadcastType method to receive the short name of the broadcast plug-in to use. The response interface is IRMABroadcastMapperResponse.

The IRMABroadcastMapper interface contains the IRMABroadcastMapper::FindBroadcastType method.

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

IRMABroadcastMapper::FindBroadcastType

Returns the short name of the broadcast plug-in's name to the broadcast mapper response interface.


STDMETHOD(FindBroadcastType) (
THIS_
const char* pURL,
IRMABroadcastMapperResponse* pBroadcastMapperResponse
) PURE
pURL
Pointer to the URL name.

pBroadcastMapperResponse
Pointer to an IRMABroadcastMapperResponse interface that manages the response to this method.

IRMABroadcastMapperResponse

Purpose: Notifies RealServer of format of live broadcast
Implemented by: RealServer
Used by: Broadcast file objects
Header file: rmafiles.h

A broadcast file object uses this response interface to IRMABroadcastMapper to notify RealServer of the short name of the broadcast plug-in to use for the requested live broadcast. The plug-in uses this interface rather than IRMAFileMimeMapperResponse, which is used by standard file system plug-ins.

The IRMABroadcastMapperResponse interface contains the IRMABroadcastMapperResponse::BroadcastTypeFound method.

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

IRMABroadcastMapperResponse::BroadcastTypeFound

Indicates the short name of the broadcast plug-in. This method is called by the file object when the initialization of the file is complete, and the broadcast type is available for the request file.


STDMETHOD(BroadcastTypeFound) (
THIS_
PN_RESULT status,
const char* pBroadcastType
) PURE;
status
Contains the response status. If this parameter is PNR_OK, the call to IRMABroadcastMapper::FindBroadcastType completed successfully. If the file is not valid for the file system, this parameter returns PNR_FAILED and pBroadcastType is set to NULL.

pBroadcastType
Pointer to the short name of the broadcast plug-in.

IRMABuffer

Purpose: Provides general-purpose buffers for passing data
Implemented by: Buffer object (RealSystem architecture)
Used by: Any component
Header file: rmapckts.h

This interface lets RealSystem objects use variable-length data buffers managed through COM reference counting. Typically, RealSystem objects use these buffer objects to pass data. The preferred implementation is to use IRMACommonClassFactory to create the buffer objects.

Additional Information
See IRMAValues. See also "Using IRMABuffer to Create Data Buffers".

The IRMABuffer interface contains the following methods:

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

IRMABuffer::Get

Retrieves the buffer data.


STDMETHOD(Get) (
THIS_
REF(UCHAR*) pData,
REF(ULONG32) ulLength
) PURE;
pData
Returns a pointer to the buffer data.

ulLength
Returns the length of the buffer data.

IRMABuffer::GetBuffer

Obtains a pointer to the buffer object.


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

IRMABuffer::GetSize

Retrieves the buffer size.


STDMETHOD_(ULONG32,GetSize) (
THIS
) PURE;

IRMABuffer::Set

Writes data to the buffer object.


STDMETHOD(Set) (
THIS_
const UCHAR* pData,
ULONG32 ulLength
) PURE;
pData
A pointer to the data written to the buffer.

ulLength
The length of the buffer.

IRMABuffer::SetSize

Sets the buffer size.


STDMETHOD(SetSize) (
THIS_
ULONG32 ulLength
) PURE;
ulLength
The size of the buffer.

IRMACallback

Purpose: Provides callbacks for components so that they can perform specific tasks when certain times are reached.
Implemented by: Any component
Used by: Scheduler
Header file: rmaengin.h

Monitor plug-ins can use callbacks, for example, to get information about the RealServer registry properties at regular intervals. Any component can receive a callback from the system scheduler through IRMACallback.

Additional Information
See IRMAScheduler. See also "Chapter 9: Monitor Plug-in".

The IRMACallback interface contains the IRMACallback::Func method.

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

IRMACallback::Func

Indicates the designated callback time has been reached.


STDMETHOD(Func) (
THIS
) PURE;

IRMAChallenge

Purpose: Retrieves additional information from the client without further authorization
Implemented by: Server core
Used by: Information not yet available at publication.
Header file: rmaauthn.h

This method provides a means of exchanging addional information with a client without creating a new request. The information is managed by an IRMARequest interface and can be retrieved by calling IRMARequestContext::GetRequester. If the information is absent, the protocol that this request was made on does not support multi-message authentication (such as PNA). The response interface is IRMAChallengeResponse.

The IRMAChallenge interface contains the IRMAChallenge::SendChallenge method.

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

IRMAChallenge::SendChallenge

Requests additional information from the client.


STDMETHOD(SendChallenge) (
THIS_
IRMAChallengeResponse* pChallengeResponseSender,
IRMARequest* pRequestChallenge
) PURE;
pChallengeResponseSender
Pointer to an IRMAChallengeResponse interface that manages the response to this method.

pRequestChallenge
Pointer to an IRMARequest interface that manages the additional information. The IRMARequest interface pointed to by this parameter should be the same as that which was passed to the IRMAServerAuthConversation::MakeChallenge method. It should contain CString values for each MIME header that is sent to the client.

IRMAChallengeResponse

Purpose: Receives additional information from the client
Implemented by: Server authenticator
Used by: Information not yet available at publication.
Header file: rmaauthn.h

The IRMAChallengeResponse interface contains the IRMAChallengeResponse::ResponseReady method.

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

IRMAChallengeResponse::ResponseReady

Returns the additional information requested from the challenge interface.


STDMETHOD(ResponseReady) (
THIS_
IRMARequest* pRequestResponse
) PURE;
pRequestResponse
Pointer to an IRMARequest interface that manages the additional information. This request interface should be the same as that passed to the IRMAChallenge::SendChallenge and IRMAServerAuthConversation::MakeChallenge methods.

IRMAClientAdviseSink

Purpose: Notifies the top-level client of the status of a presentation
Implemented by: Top-level client
Used by: Player object (RealSystem Client core)
Header file: rmaclsnk.h

The top-level client implements this interface to receive notifications from the client core about changes in a presentation's playback status. The top-level client can thereby learn when the client core is buffering a presentation, contacting a host, pausing playback, and so on. The top-level client registers as a advise sink for a specific player object through that object's IRMAPlayer::AddAdviseSink method.

Additional Information
See "Chapter 20: Top-Level Client".

The IRMAClientAdviseSink interface contains the following methods:

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

IRMAClientAdviseSink::OnBegin

Informs the client that a begin or resume has just occurred. The top-level client is informed of the first time in the stream's time line after the resume.


STDMETHOD(OnBegin) (
THIS_
ULONG32 ulTime
) PURE;
ulTime
The time in the stream's time line from which to begin or resume.

IRMAClientAdviseSink::OnBuffering

Informs the client that buffering of data is occurring. The top-level client is informed of the reason for the buffering (start-up of stream, seek has occurred, network congestion, and so on), as well as the percentage of the buffering process that has been completed.


STDMETHOD(OnBuffering) (
THIS_
ULONG32 ulFlags,
UINT16 unPercentComplete
) PURE;
ulFlags
The reason for the buffering. One of the following:

unPercentComplete
The percentage of the buffering process that has been completed.

IRMAClientAdviseSink::OnContacting

Informs the client that a host (or hosts) is being contacted.


STDMETHOD(OnContacting) (
THIS_
const char* pHostName
) PURE;
pHostName
Pointer to the name of the host being contacted.

IRMAClientAdviseSink::OnPause

Informs the client that a pause has just occurred. The top-level client is informed of the last time in the stream's time line before the pause.


STDMETHOD(OnPause) (
THIS_
ULONG32 ulTime
) PURE;
ulTime
The time in the stream's time line before the pause occurred.

IRMAClientAdviseSink::OnPosLength

Advises the client that the position or length of the current playback context has changed.


STDMETHOD(OnPosLength) (
THIS_
UINT32 ulPosition,
UINT32 ulLength
) PURE;
ulPosition
The new position of the playback.

ulLength
The new length of the playback.

IRMAClientAdviseSink::OnPostSeek

Informs the client that a seek has just occurred. The top-level client is informed of the last time in the stream's time line before the seek, as well as the first new time for the stream's time line after the seek.


STDMETHOD(OnPostSeek) (
THIS_
ULONG32 ulOldTime,
ULONG32 ulNewTime
) PURE;
ulOldTime
The end of the stream's time line before the current seek.

ulNewTime
The beginning of the stream's time line after the current seek.

IRMAClientAdviseSink::OnPreSeek

Informs the client that a seek is about to occur. The top-level client is informed of the last time in the stream's time line before the seek, as well as the first new time in the stream's time line after the seek is completed.


STDMETHOD(OnPreSeek) (
THIS_
ULONG32 ulOldTime,
ULONG32 ulNewTime
) PURE;
ulOldTime
The end of the stream's time line before the current seek.

ulNewTime
The beginning of the stream's time line after the current seek.

IRMAClientAdviseSink::OnPresentationClosed

Advises the client that a presentation has been closed.


STDMETHOD(OnPresentationClosed) (
THIS
) PURE;

IRMAClientAdviseSink::OnPresentationOpened

Advises the client that a presentation has been opened.


STDMETHOD(OnPresentationOpened) (
THIS
) PURE;

IRMAClientAdviseSink::OnStatisticsChanged

Advises the client that the presentation statistics have changed.


STDMETHOD(OnStatisticsChanged) (
THIS
) PURE;

IRMAClientAdviseSink::OnStop

Informs the client that a stop has just occurred.


STDMETHOD(OnStop) (
THIS
) PURE;

IRMAClientAuthConversation

Purpose: Performs the client side of an authentication protocol
Implemented by: Authentication plug-in
Used by: RealServer
Header file: rmaauthn.h

The response interface is IRMAClientAuthResponse.

The IRMAClientAuthConversation interface contains the following methods:

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

IRMAClientAuthConversation::Authenticated

Reports whether the server accepted or rejected the credentials.


STDMETHOD(Authenticated) (
THIS_
BOOL bAuthenticated
) PURE;
bAuthenticated
If TRUE, the credentials were successfully authenticated.

IRMAClientAuthConversation::IsDone

Determines whether the conversation is complete. This method is useful since some protocols have more then one message exchange. Returns TRUE when the conversation is complete.


STDMETHOD_(BOOL,IsDone) (
THIS
) PURE;

IRMAClientAuthConversation::MakeResponse

Creates a response to the specified request for authentication from the server. For conversations that require multiple round trips, this method is called for each trip.


STDMETHOD(MakeResponse) (
THIS_
IRMAClientAuthResponse* pClientAuthResponseRequester,
IRMARequest* pRequestChallengeHeaders
) PURE;
pClientAuthResponseRequester
Pointer to an IRMAClientAuthResponse interface that receives the responses generated by this method.

pRequestChallengeHeaders
Pointer to an IRMARequest interface that manages the server challenge headers.

IRMAClientAuthResponse

Purpose: Information not yet available at publication.
Implemented by: Client core
Used by: Authentication plug-in
Header file: rmaauthn.h

The IRMAClientAuthResponse interface contains the IRMAClientAuthResponse::ResponseReady method.

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

IRMAClientAuthResponse::ResponseReady

Reports the success or failure of IRMAClientAuthConversation::MakeResponse.


STDMETHOD(ResponseReady) (
THIS_
PN_RESULT ResultStatus,
IRMARequest* pRequestResponseHeaders
) PURE;
ResultStatus
The status of the IRMAClientAuthConversation::MakeResponse operation. A value of PNR_OK indicates the operation has completed successfully.

pRequestResponseHeaders
Pointer to an IRMARequest interface that manages the request response headers. This IRMARequest interface should be the same as that passed in IRMAClientAuthConversation::MakeResponse, and should contain CString values for each MIME header that needs to be sent to the server.

IRMAClientEngine

Purpose: Provides access to the Client core
Implemented by: Client core
Used by: top-level client and rendering plug-ins
Header file: rmacore.h

This interface to the client core object lets the top-level client or a rendering plug-in create new IRMAPlayer objects. A rendering plug-in can do this, for example, to start a new presentation timeline.

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

The IRMAClientEngine interface contains the following methods:

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

IRMAClientEngine::ClosePlayer

Destroys an instance of an IRMAPlayer interface when the engine has finished using the player.


STDMETHOD(ClosePlayer) (
THIS_
IRMAPlayer* pPlayer
) PURE;
pPlayer
Points to the IRMAPlayer interface being closed.

IRMAClientEngine::CreatePlayer

Creates a new instance of an IRMAPlayer interface. The top-level client creates a new player object for each presentation. A rendering plug-in can create a new player object to, for example, start a new time and insert an instantaneous sound into the presentation.


STDMETHOD(CreatePlayer) (
THIS_
REF(IRMAPlayer*) pPlayer
) PURE;
pPlayer
Returns a pointer to the IRMAPlayer interface being created.

IRMAClientEngine::GetPlayer

Retrieves the requested IRMAPlayer instance supported by this client engine instance. The top-level client or plug-in uses this method after getting the player object count.


STDMETHOD(GetPlayer) (
THIS_
UINT16 nPlayerNumber,
REF(IUnknown*) pUnknown
) PURE;
nPlayerNumber
The number of the player instance.

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

IRMAClientEngine::GetPlayerCount

Returns the current number of IRMAPlayer instances supported by this client engine instance.


STDMETHOD_(UINT16, GetPlayerCount) (
THIS
) PURE;

IRMAClientEngine::EventOccurred

Passes operating system events to all players.


STDMETHOD(EventOccurred) (
THIS_
PNxEvent* pEvent
) PURE;
pEvent
Pointer to a PNxEvent structure that defines the cross-platform event.

IRMAClientEngineSelector

Purpose: Replaces the UNIX selectD
Implemented by: Client core
Used by: top-level client
Header file: rmacore.h

On UNIX, top-level clients should use the IRMAClientEngineSelector::Select method in place of the UNIX select function. To the top-level client, this method appears identical to the UNIX select, as it includes file descriptor sets and a timeout value. But using this method instead of UNIX select lets the client core perform the necessary actions that allow it to select on the sets.

Additional Information
See "Chapter 20: Top-Level Client".

The IRMAClientEngineSelector interface contains the IRMAClientEngineSelector::Select method.

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

IRMAClientEngineSelector::Select

Selects events. Top-level clients under Unix should use this instead of the Unix select function.


STDMETHOD_(INT32, Select) (
THIS_
INT32 n,
fd_set *readfds,
fd_set *writefds,
fd_set *exceptfds,
struct timeval* timeout
) PURE;
n
The highest-numbered descriptor in any of the three descriptor sets, plus 1.

readfds
Pointer to the descriptors to be watched to see if characters become available for reading.

writefds
Pointer to the descriptors to be watched to see if it is all right to immediately write on them.

exceptfds
Pointer to the descriptors to be watched for exceptions.

timeout
Pointer to a timeval structure that is an upper bound on the amount of time elapsed before this method returns. This value can be zero, which causes this method to return immediately. If this value is NULL (no timeout), this method can block indefinitely.

IRMAClientEngineSetup

Purpose: Overrides certain Client core interfaces
Implemented by: Client core
Used by: top-level client, rendering plug-ins
Header file: rmacore.h

Additional Information
See "Chapter 20: Top-Level Client".

The IRMAClientEngineSetup interface contains the IRMAClientEngineSetup::Setup method.

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

IRMAClientEngineSetup::Setup

Overrides certain basic interfaces implemented by the core. Interfaces that can currently be overridden are IRMAPreferences and IRMAHyperNavigate. This method is used by top-level clients.


STDMETHOD(Setup) (
THIS_
IUnknown* pContext
) PURE;
pContext
Pointer to a context from which other interfaces are queried.

IRMACommonClassFactory

Purpose: Creates RealSystem objects
Implemented by: RealSystem architecture
Used by: Any component
Header file: rmacomm.h

Any RealSystem component can use this interface to create a RealSystem object. This is the preferred method for creating objects used by multiple components. A component can use the C++ new operator to create objects that it alone manipulates, however. When RealSystem initializes a component, it passes the component a pointer to the system context. The component can then use this pointer to call IRMACommonClassFactory::CreateInstance.

Additional Information
See "Creating a RealSystem Object".

The IRMACommonClassFactory interface contains the following methods:

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

IRMACommonClassFactory::CreateInstance

Creates instances of common interfaces supported by the system, such as IRMABuffer, IRMAPacket, IRMAValues, and so on. This method is similar to Window's CoCreateInstance function in its purpose, except it only creates instances of well-known interface types.


STDMETHOD(CreateInstance) (
THIS_
REFCLSID rclsid,
void** ppUnknown
) PURE;
rclsid
The class identifier.

ppUnknown
Pointer to the instance of the interface.

Note
Aggregation is never used. Therefore an outer unknown is not passed to this function, and you do not need to code for this situation.

IRMACommonClassFactory::CreateInstanceAggregatable

Creates instances of common objects that can be aggregated supported by the system, like IRMASiteWindowed. This method is similar to Window's CoCreateInstance function in its purpose, except it only creates objects of well-known types.

Unlike IRMACommonClassFactory::CreateInstance, this method will create internal objects that support aggregation.

The output interface is always the non-delegating IUnknown.


STDMETHOD(CreateInstanceAggregatable) (
THIS_
REFCLSID rclsid,
REF(IUnknown*) ppUnknown,
IUnknown* pUnkOuter
) PURE;
rclsid
The class identifier.

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

pUnkOuter
Pointer to an IUnknown interface that identifies the outer unknown used for aggregation purposes.

IRMAConfigFile

Purpose: Manages the server's configuration file
Implemented by: Information not yet available at publication.
Used by: Information not yet available at publication.
Header file: rmacfg.h

The IRMAConfigFile interface contains the following methods:

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

IRMAConfigFile::GetFilename

Retrieves the current, default file.


STDMETHOD(GetFilename) (
THIS_
REF(IRMABuffer*) pFilename
) PURE;
pFilename
Returns a pointer to an IRMABuffer interface that manages the current, default file name.

IRMAConfigFile::LoadFrom

Loads the specified configuration file and sets that file as the default for future reloads and saves.


STDMETHOD(LoadFrom) (
THIS_
IRMABuffer* filename
) PURE;
filename
Pointer to an IRMABuffer interface that manages the file name of the configuration file.

IRMAConfigFile::Reload

Reloads the current, default configuration file.


STDMETHOD(Reload) (
THIS
) PURE;

IRMAConfigFile::Save

Writes the current configuration to the current default file.


STDMETHOD(Save) (
THIS
) PURE;

IRMAConfigFile::SaveAs

Writes the configuration to the named file, and sets that file as the default.


STDMETHOD(SaveAs) (
THIS_
IRMABuffer* pFilename
) PURE;
pFilename
Pointer to an IRMABuffer interface that manages the file name.

IRMAConfigFile::SetFilename

Sets the current, default file, but does not read it or change its contents.


STDMETHOD(SetFilename) (
THIS_
IRMABuffer* pFilename
) PURE;
pFilename
Pointer to an IRMABuffer interface that manages the current, default file name.

IRMAConnectionlessControl

Purpose: Information not yet available at publication.
Implemented by: Information not yet available at publication.
Used by: Information not yet available at publication.
Header file: rmaencod.h

The IRMAConnectionlessControl interface contains the following methods:

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

IRMAConnectionlessControl::ConnectionCheckFailed

Information not yet available at publication.


STDMETHOD(ConnectionCheckFailed) (
THIS_
PN_RESULT status
) PURE;
status
Information not yet available at publication.

IRMAConnectionlessControl::EnableConnectionlessControl

Information not yet available at publication.


STDMETHOD(EnableConnectionlessControl) (
THIS
) PURE;

IRMAConnectionlessControl::SetConnectionTimeout

Information not yet available at publication.


STDMETHOD(SetConnectionTimeout) (
THIS_
UINT32 uSeconds
) PURE;
uSeconds
The connection timeout, in microseconds.

IRMAContextMenu

Purpose: Provides context menus
Implemented by: Top-level client
Used by: Rendering plug-in
Header file: rmacmenu.h

This interface lets the renderer show a context menu and lets the top-level client add client-specitic commands unknown to the renderer to that menu. The response interface is IRMAContextMenuResponse.

The IRMAContextMenu interface contains the following methods

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

IRMAContextMenu::AddChildMenu

Adds a child menu. This method is not currently implemented.


STDMETHOD(AddChildMenu) (
THIS_
const char* pMenuText
) PURE;

IRMAContextMenu::AddMenuItem

Adds a menu item to the context menu.


STDMETHOD(AddMenuItem) (
THIS_
UINT16 commandID,
const char* pMenuItemText,
BOOL bChecked,
BOOL bRadioOn,
BOOL bDisabled
) PURE;
commandID
The unique identification for the command.

pMenuItemText
Pointer to the text associated with this particular menu item.

bChecked
If TRUE, a check is added to the side of this menu item. If FALSE, the check is removed from beside this menu item.

bRadioOn
If TRUE, a radio button is added to the side of this menu item. If FALSE, the radio button is removed from beside this menu item.

bDisabled
If TRUE, the menu item is disabled. If FALSE, the menu item is enabled.

IRMAContextMenu::AddSeparator

Adds a graphical separator between menu items.


 STDMETHOD(AddSeparator) (
THIS
) PURE;

IRMAContextMenu::ChangeMenuItem

Changes the indicated menu item.


STDMETHOD(ChangeMenuItem) (
THIS_
UINT16 commandID,
const char* pMenuItemText,
BOOL bChecked,
BOOL bRadioOn,
BOOL bDisabled
) PURE;
commandID
The unique identification for the command.

pMenuItemText
Pointer to the text associated with this particular menu item.

bChecked
If TRUE, a check is added to the side of this menu item. If FALSE, the check is removed from beside this menu item.

bRadioOn
If TRUE, a radio button is added to the side of this menu item. If FALSE, the radio button is removed from beside this menu item.

bDisabled
If TRUE, the menu item is disabled. If FALSE, the menu item is enabled.

IRMAContextMenu::EndChildMenu

Removes the child menu. This method is not currently implemented.


STDMETHOD(EndChildMenu) (
THIS
) PURE;

IRMAContextMenu::InitContextMenu

Initializes the context menu to a blank menu and sets the name of the sub-menu for the renderer, if appropriate. This clears any previously-added menu items and sub-menus.


STDMETHOD(InitContextMenu) (
THIS_
const char* pMenuText
) PURE;
pMenuText
Pointer to the text of the menu item to be added to the renderer's list of items.

IRMAContextMenu::ShowMenu

Shows the setup context menu at the specified point.


STDMETHOD(ShowMenu) (
THIS_
IRMAContextMenuResponse* pResonse,
PNxPoint ptPopup
) PURE;
pResponse
Pointer to an IRMAContextMenuResponse interface that manages the response to this interface.

ptPopup
A PNxPoint structure that defines the location of the context menu.

IRMAContextMenuResponse

Purpose: Responds to context menu commands and cancellations
Implemented by: Rendering plug-in
Used by: Top-level client
Header file: rmacmenu.h

This interface is called when the context menu is dismissed.

The IRMAContextMenuResponse interface contains the following methods:

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

IRMAContextMenuResponse::OnCanceled

Informs the renderer that the context menu was closed without a command being chosen from the renderer's set of commands.


STDMETHOD(OnCanceled) (
THIS
) PURE;

IRMAContextMenuResponse::OnCommand

Informs the renderer that a command was chosen from the context menu.


STDMETHOD(OnCommand) (
THIS_
UINT16 commandID
) PURE;
commandID
The unique identification for the command.

IRMACopyRegistry

Purpose: Copies from one registry key to another
Implemented by: Information not yet available at publication.
Used by: Information not yet available at publication.
Header file: rmamon.h

The IRMACopyRegistry interface contains the IRMACopyRegistry::CopyByName method.

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

IRMACopyRegistry::CopyByName

Copies from one registry key to another.


STDMETHOD (CopyByName) (
THIS_
const char* pFrom,
const char* pTo
) PURE;
pFrom
Pointer to the registry key from which to copy.

pTo
Pointer to the registry key to which to copy.

IRMACredRequest

Purpose: Requests credentials from the user
Implemented by: Client authenticator
Used by: Authentication plug-in
Header file: rmaauthn.h

This interface is queried from the response interface passed into IRMAClientAuthConversation::MakeResponse, which uses it to request the current user enter their credentials. The response interface is IRMACredRequestResponse.

The IRMACredRequest interface contains the IRMACredRequest::GetCredentials method.

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

IRMACredRequest::GetCredentials

Requests the user's credentials. This method can be used to present a dialog box to the user asking for their username and password, or could be used to supply the credentials from the command line (from an encoding tool, for example).


STDMETHOD(GetCredentials) (
THIS_
IRMACredRequestResponse* pCredRequestResponseRequester,
IRMAValues* pValuesCredentialRequest
) PURE;
pCredRequestResponseRequester
Pointer to an IRMACredRequestResponse interface that manages the response to the plug-in's request for credentials.

pValuesCredentialRequest
Pointer to an IRMAValues interface that manages related credential data. While ignored at this time, this parameter should contain CString properties that describe the reason for the request (such as the URL, the realm, the authentication protocol, how secure it is, and so on). In the future, this data will be displayed to the user.

IRMACredRequestResponse

Purpose: Returns the username/password values
Implemented by: Authentication plug-in
Used by: Client authenticator
Header file: rmaauthn.h

This interface receives the credentials requested in the IRMACredRequest::GetCredentials method.

The IRMACredRequestResponse interface contains the IRMACredRequestResponse::CredentialsReady method.

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

IRMACredRequestResponse::CredentialsReady

Reports the status of the call to IRMACredRequest::GetCredentials.


STDMETHOD(CredentialsReady) (
THIS_
PN_RESULT ResultStatus,
IRMAValues* pValuesCredentials
) PURE;
ResultStatus
The status of the IRMACredRequest::GetCredentials operation. A value of PNR_OK indicates the operation has completed successfully.

pValuesCredentials
Pointer to an IRMAValues interface that handles the requested credentials. These values are usually in the form of a CString for the username and a CString for the password.

IRMADatabaseManager

Purpose: Provides access to databases
Implemented by: Database manager
Used by: Authentication plug-in
Header file: rmadb.h

This interface provides plug-in's with an instance of the supported database.

The IRMADatabaseManager interface contains the IRMADatabaseManager::GetInstanceFromID method.

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

IRMADatabaseManager::GetInstanceFromID

Returns a database object configured as defined for the specifed database ID in the server configuration file.


STDMETHOD(GetInstanceFromID) (
THIS_
IRMABuffer* pBufferID,
REF(IUnknown*) pUnknownDatabase
) PURE;
pBufferID
Pointer to an IRMABuffer interface that manages the database ID.

pUnknownDatabase
Returns a pointer to the IUnknown interface that identifies the instance of the database object.

IRMADataConvert

Purpose: Provides data and header conversion
Implemented by: Server side plug-in
Used by: Server core
Header file: rmadtcvt.h

The response interface is IRMADataConvertResponse.

The IRMADataConvert interface contains the following methods:

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

IRMADataConvert::AddMulticastControlConverter

Adds one of many possible data conversion interfaces that will be handling the header conversions. In this method (as opposed to IRMADataConvert::SetMulticastTransportConverter), the data conversion object is handling the data conversions for all of the players (but only once since it is multicast).


STDMETHOD(AddMulticastControlConverter) (
THIS_
IRMADataConvert* pConverter
) PURE;
pConverter
Pointer to an IRMADataConvert interface that manages the header conversion.

IRMADataConvert::ControlBufferReady

Receives a control channel buffer sent from the IRMADataRevert interface on the player.


STDMETHOD(ControlBufferReady) (
THIS_
IRMABuffer* pBuffer
) PURE;
pBuffer
Pointer to an IRMABuffer interface that manages control channel information from the player.

IRMADataConvert::ConvertData

Converts the data in the indicated packet.


STDMETHOD(ConvertData) (
THIS_
IRMAPacket* pPacket
) PURE;
pPacket
Pointer to an IRMAPacket interface that manages the data to be converted.

Note
If you call the IRMADataConvertResponse::ConvertedDataReady method with a result of PNR_OK and a NULL buffer, the system uses the original packet data (that is, no conversion takes place).

IRMADataConvert::ConvertFileHeader

Converts the indicated file header data.


STDMETHOD(ConvertFileHeader) (
THIS_
IRMAValues* pFileHeader
) PURE;
pFileHeader
Pointer to an IRMAValues interface that manages the file header to be converted.

Note
If you call the IRMADataConvertResponse::ConvertedFileHeaderReady method with a result of PNR_OK and a NULL buffer, the system uses the original header data (that is, no conversion takes place).

IRMADataConvert::ConvertStreamHeader

Converts the indicated stream header data.


STDMETHOD(ConvertStreamHeader) (
THIS_
IRMAValues* pStreamHeader
) PURE;
pStreamHeader
Pointer to an IRMAValues interface that manages the stream header to be converted.

Note
If you call the IRMADataConvertResponse::ConvertedStreamHeaderReady method with a result of PNR_OK and a NULL buffer, the system uses the original header data (that is, no conversion takes place).

IRMADataConvert::DataConvertInit

Initializes the data conversion object.


STDMETHOD(DataConvertInit) (
THIS_
IRMADataConvertResponse* pResponse
) PURE;
pResponse
Pointer to an IRMADataConvertResponse interface that manages the responses to this interface's methods.

IRMADataConvert::Done

Indicates the data conversion process is done.


STDMETHOD(Done) (
THIS
) PURE;

IRMADataConvert::GetConversionMimeType

Gets the conversion MIME type for the conversion session.


STDMETHOD(GetConversionMimeType) (
THIS_
REF(const char*) pConversionType
) PURE;
pConversionType
Returns a pointer to the conversion MIME type for this session.

IRMADataConvert::SetMulticastTransportConverter

Creates a new instance of a data conversion interface. In this case, the current data conversion interface is only handling the header conversions for the player. The new data conversion interface created by this method handles the data to be converted.


STDMETHOD(SetMulticastTransportConverter) (
THIS_
IRMADataConvert* pConverter
) PURE;
pConverter
Pointer to an IRMADataConvert interface that manages the data to be converted.

IRMADataConvertResponse

Purpose: Information not yet available at publication.
Implemented by: Server core
Used by: Server side plug-in
Header file: rmadtcvt.h

The IRMADataConvertResponse interface contains the following methods:

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

IRMADataConvertResponse::ConvertedDataReady

Provides asynchronous notification that the data conversion interface has finished converting the stream data packet.


STDMETHOD(ConvertedDataReady) (
THIS_
PN_RESULT status,
IRMAPacket* pPacket
) PURE;
status
The status of the IRMADataConvert::ConvertData operation. A value of PNR_OK indicates the operation has completed successfully.

pPacket
Pointer to an IRMAPacket interface that manages the stream data.

IRMADataConvertResponse::ConvertedFileHeaderReady

Provides asynchronous notification that the data conversion interface has finished converting the file header.


STDMETHOD(ConvertedFileHeaderReady) (
THIS_
PN_RESULT status,
IRMAValues* pFileHeader
) PURE;
status
The status of the IRMADataConvert::ConvertFileHeader operation. A value of PNR_OK indicates the operation has completed successfully.

pFileHeader
Pointer to an IRMAValues interface that manages the file header.

IRMADataConvertResponse::ConvertedStreamHeaderReady

Provides asynchronous notification that the data conversion interface has finished converting the stream header.


STDMETHOD(ConvertedStreamHeaderReady) (
THIS_
PN_RESULT status,
IRMAValues* pStreamHeader
) PURE;
status
The status of the IRMADataConvert::ConvertStreamHeader operation. A value of PNR_OK indicates the operation has completed successfully.

pFileHeader
Pointer to an IRMAValues interface that manages the stream header.

IRMADataConvertResponse::DataConvertInitDone

Provides asynchronous notification that the data conversion interface has finished intializing.


STDMETHOD(DataConvertInitDone) (
THIS_
PN_RESULT status
) PURE;
status
The status of the IRMADataConvert::DataConvertInit operation. A value of PNR_OK indicates the operation has completed successfully.

IRMADataConvertResponse::SendControlBuffer

Sends an arbitrary buffer to the data reversion interface on the player.


STDMETHOD(SendControlBuffer) (
THIS_
IRMABuffer* pBuffer
) PURE;
pBuffer
Pointer to an IRMABuffer interface that manages the data sent to the data reversion interface.

IRMADataConvertSystemObject

Purpose: Controls data conversion plug-ins
Implemented by: Data conversion plug-ins
Used by: RealServer
Header file: rmadtcvt.h

All data conversion plug-ins must implement this interface. RealServer uses this interface to intialize the data conversion plug-in. It calls the IRMADataConvertSystemObject::CreateDataConvert method to create data conversion objects accessed through IRMADataConvert.

The IRMADataConvertSystemObject interface contains the following methods:

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

IRMADataConvertSystemObject::CreateDataConvert

Creates a new data conversion object.


STDMETHOD(CreateDataConvert) (
THIS_
IUnknown** ppConvObj
) PURE;
ppConvObj
Information not yet available at publication.

IRMADataConvertSystemObject::GetDataConvertInfo

Returns information needed to properly instanciate the data conversion plug-in.


STDMETHOD(GetDataConvertInfo) (
THIS_
REF(const char*) pShortName
) PURE;
pShortName
A short, human-readable name of the form "company-dcname". For example, this parameter could be set to "rn-dataconvert".

IRMADataConvertSystemObject::InitDataConvertSystem

Passes in options from the server configuration file (rmserver.cfg) for this specific plug-in. Any parameters under the second level lists under the DataConvertMount list name are passed in as options by this method.


STDMETHOD(InitDataConvertSystem) (
THIS_
IRMAValues* pOptions
) PURE;
pOptions
Pointer to an IRMAValues interface that manages the options passed in from the server configuration file.

IRMADataRevert

Purpose: Restores data and header information
Implemented by: Player side plug-in
Used by: Player core
Header file: rmadtcvt.h

This interface restores any information that was converted on the server, using the IRMADataConvert interface, to its original form.

The IRMADataRevert interface contains the following methods:

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

IRMADataRevert::ControlBufferReady

Passes in a control channel buffer received from corresponding data conversion interface on the server.


STDMETHOD(ControlBufferReady) (
THIS_
IRMABuffer* pBuffer
) PURE;
pBuffer
Pointer to an IRMABuffer interface that manages the control data received from the server.

IRMADataRevert::DataRevertInit

Initializes the data reversion object.


STDMETHOD(DataRevertInit) (
THIS_
IRMADataRevertResponse* pResponse
) PURE;
pResponse
Pointer to an IRMADataRevertResponse interface that manages the responses to this interface's methods.

IRMADataRevert::GetDataRevertInfo

Notifies the player core about which data conversion MIME types can be handled.


STDMETHOD(GetDataRevertInfo) (
THIS_
REF(const char**) ppConversionMimeTypes
) PURE;
ppConversionMimeTypes
Returns the address of a pointer for the data conversion MIME types.

IRMADataRevert::RevertData

Restores the converted stream data to its original form.


STDMETHOD(RevertData) (
THIS_
IRMAPacket* pPacket
) PURE;
pPacket
Pointer to an IRMAPacket interface that manages the data to be restored.

IRMADataRevert::RevertFileHeader

Restores the converted file header to its original format.


STDMETHOD(RevertFileHeader) (
THIS_
IRMAValues* pFileHeader
) PURE;
pFileHeader
Pointer to an IRMAValues interface that manages the file header to be restored.

IRMADataRevert::RevertStreamHeader

Restores the converted stream header to its original format.


STDMETHOD(RevertStreamHeader) (
THIS_
IRMAValues* pStreamHeader
) PURE;
pStreamHeader
Pointer to an IRMAValues interface that manages the stream header to be restored.

IRMADataRevertResponse

Purpose: Acknowledges the restoration of data and header information
Implemented by: Player core
Used by: Player side plug-in
Header file: rmadtcvt.h

This interface provides an asynchronous response to the IRMADataRevert methods.

The IRMADataRevertResponse interface contains the following methods:

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

IRMADataRevertResponse::DataRevertInitDone

Provides asynchronous notification that the data reversion interface has finished intializing and can begin processing headers.


STDMETHOD(DataRevertInitDone) (
THIS_
PN_RESULT status
) PURE;
status
The status of the IRMADataRevert::DataRevertInit operation. A value of PNR_OK indicates the operation has completed successfully.

IRMADataRevertResponse::RevertedDataReady

Provides asynchronous notification that the data reversion interface has finished reverting the stream data.


STDMETHOD(RevertedDataReady) (
THIS_
PN_RESULT status,
IRMAPacket* pPacket
) PURE;
status
The status of the IRMADataRevert::RevertData operation. A value of PNR_OK indicates the operation has completed successfully.

pPacket
Pointer to an IRMAPacket interface that manages the reverted stream data.

IRMADataRevertResponse::RevertedFileHeaderReady

Provides asynchronous notification that the data reversion interface has finished reverting the file headers.


STDMETHOD(RevertedFileHeaderReady) (
THIS_
PN_RESULT status,
IRMAValues* pHeader
) PURE;
status
The status of the IRMADataRevert::RevertFileHeader operation. A value of PNR_OK indicates the operation has completed successfully.

pHeader
Pointer to an IRMAValues interface that manages the reverted file header.

IRMADataRevertResponse::RevertedStreamHeaderReady

Provides asynchronous notification that the data reversion interface has finished reverting the stream headers.


STDMETHOD(RevertedStreamHeaderReady) (
THIS_
PN_RESULT status,
IRMAValues* pHeader
) PURE;
status
The status of the IRMADataRevert::RevertStreamHeader operation. A value of PNR_OK indicates the operation has completed successfully.

pHeader
Pointer to an IRMAValues interface that manages the reverted stream header.

IRMADataRevertResponse::SendControlBuffer

Sends an arbitrary control buffer to the data conversion interface on the server.


STDMETHOD(SendControlBuffer) (
THIS_
IRMABuffer* pBuffer
) PURE;
pBuffer
Pointer to an IRMABuffer interface that manages the data sent to the data conversion interface.

IRMADirHandler

Purpose: Allows you to create or read a specified directory
Implemented by: File system plug-ins
Used by: Any plug-in that can gain access to the file system
Header file: rmafiles.h

This interface is for making a directory or reading a directory to get information from the file system. To access a particular file in a directory, use the IRMAFileSystemManager interface.

The IRMADirHandler interface contains the following methods:

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

IRMADirHandler::CloseDirHandler

Closes the directory handler resource and releases all resources associated with the object.


STDMETHOD(CloseDirHandler) (
THIS
) PURE;

IRMADirHandler::InitDirHandler

Associates an IRMADirHandlerResponse interface with the IRMADirHandler interface. This interface reports when various IRMADirHandler methods have completed.


STDMETHOD(InitDirHandler) (
THIS_
IRMADirHandlerResponse* pDirResponse
) PURE;
pDirResponse
Pointer to an IRMADirHandlerResponse interface that manages the response to this interface.

IRMADirHandler::MakeDir

Creates the directory.


STDMETHOD(MakeDir) (
THIS
) PURE;

IRMADirHandler::ReadDir

Reads the directory.


STDMETHOD(ReadDir) (
THIS
) PURE;

IRMADirHandlerResponse

Purpose: Returns directory information
Implemented by: File system plug-ins
Used by: Any plug-in that can gain access to the file system
Header file: rmafiles.h

This is the response interface to IRMADirHandler.

The IRMADirHandlerResponse interface contains the following methods:

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

IRMADirHandlerResponse::CloseDirHandlerDone

Indicates that closing the directory handler has completed.


STDMETHOD(CloseDirHandlerDone) (
THIS_
PN_RESULT status
) PURE;
status
The status of the IRMADirHandler::CloseDirHandler operation. A value of PNR_OK indicates the operation has completed successfully.

IRMADirHandlerResponse::InitDirHandlerDone

Indicates that the intialization of the IRMADirHandlerResponse interface has completed.


STDMETHOD(InitDirHandlerDone) (
THIS_
PN_RESULT status
) PURE;
status
The status of the IRMADirHandler::InitDirHandler operation. A value of PNR_OK indicates the operation has completed successfully.

IRMADirHandlerResponse::MakeDirDone

Indicates the attempt to create a directory has completed.


STDMETHOD(MakeDirDone) (
THIS_
PN_RESULT status
) PURE;
status
The status of the IRMADirHandler::MakeDir operation. A value of PNR_OK indicates the operation has completed successfully.

IRMADirHandlerResponse::ReadDirDone

Indicates the read operation from the directory has completed and a buffer is available.


STDMETHOD(ReadDirDone) (
THIS_
PN_RESULT status,
IRMABuffer* pBuffer
) PURE;
status
The status of the IRMADirHandler::ReadDir operation. A value of PNR_OK indicates the operation has completed successfully.

pBuffer
Pointer to a IRMABuffer interface that manages the directory information.

IRMADryNotification

Purpose: Notifies the renderer of a dry stream
Implemented by: Audio rendering plug-ins
Used by: Audio Services
Header file: rmaausvc.h

This interface is implemented by an audio rendering plug-in that does not send buffered data because, for example, the rendered data stems from interactive input. It lets the plug-in receive notification of a dry stream, which occurs when Audio Services must write data to the audio device but it does not have enough data to write. The plug-in sets up a dry stream response object with IRMAAudioStream::AddDryNotification.

Additional Information
See "Receiving Notification of a Dry Stream".

The IRMADryNotification interface contains the IRMADryNotification::OnDryNotification method.

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

IRMADryNotification::OnDryNotification

Indicates that it is time to write data to the audio device but there is not enough data in the audio stream. The renderer can then decide whether to add more data to the audio stream; this should be done synchronously within the call to this method. However, the renderer is not required to write any data. If no data is available, silence will be played instead.


STDMETHOD(OnDryNotification) (
THIS_
UINT32 ulCurrentStreamTime,
UINT32 ulMinimumDurationRequired
) PURE;
ulCurrentStreamTime
The time in the stream timeline when the next packet is expected.

ulMinimumDurationRequired
The minimum length of the data required to fill the audio stream being sent to the audio device to prevent silence from occurring.

IRMAEncoder

Purpose: Directs the broadcast application to send live stream data
Implemented by: Remote broadcast application
Used by: Remote Broadcast Library
Header file: rmaencod.h

RealSystem's Remote Broadcast Library uses this interface to instruct a remote broadcast application to send data for a live stream. The response interface is IRMAEncoderResponse.

Additional Information
See "Chapter 16: Remote Broadcast".

The IRMAEncoder interface contains the following methods:

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

IRMAEncoder::GetFileHeader

Retrieves the header for the entire presentation. Most importantly, it should contain the number of streams present. This method is similar to the IRMAFileFormatObject::GetFileHeader method.


STDMETHOD(GetFileHeader) (
THIS
) PURE;

IRMAEncoder::GetStreamHeader

Retrieves a header for each stream in the presentation. This method is similar to the IRMAFileFormatObject::GetStreamHeader method.


STDMETHOD(GetStreamHeader) (
THIS_
UINT16 unStream
) PURE;
unStream
The stream from which to retrieve the header.

IRMAEncoder::InitEncoderResponseDone

Indicates the call to IRMAEncoderResponse::InitEncoderResponse has completed.


STDMETHOD(InitEncoderResponseDone) (
THIS_
PN_RESULT result
) PURE;
result
The result of the IRMAEncoderResponse::InitEncoderResponse operation. A value of PNR_OK indicates the operation has completed successfully. If an error value is returned, it should be considered critical and the encoder should act appropriately (that is, it could exit, or it could prompt for new parameters and start over, and so on).

IRMAEncoder::StartPackets

Informs the encoder that it should start sending packets for a particular stream.


STDMETHOD(StartPackets) (
THIS_
UINT16 unStream
) PURE;
unStream
The stream to which to send the packets.

IRMAEncoder::StopPackets

Indicates the encoder should stop sending packets for a particular stream.


STDMETHOD(StopPackets) (
THIS_
UINT16 unStream
) PURE;
unStream
The stream to which to stop sending packets.

IRMAEncoderCompletion

Purpose: Informs the broadcast application that the stream has stopped
Implemented by: Remote broadcast application
Used by: Remote Broadcast Library
Header file: rmaencod.h

RealSystem's Remote Broadcast Library uses this interface to inform a remote broadcast application that it has stopped sending a broadcast stream.

Additional Information
See "Chapter 16: Remote Broadcast".

The IRMAEncoderCompletion interface contains the IRMAEncoderCompletion::EncoderDone method.

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

IRMAEncoderCompletion::EncoderDone

Indicates that the connection has been shut down.


STDMETHOD(EncoderDone) (
THIS_
PN_RESULT result
) PURE;
result
Information not yet available at publication.

IRMAEncoderResponse

Purpose: Informs an encoder object of broadcast application actions
Implemented by: Remote Broadcast Library
Used by: Remote broadcast application
Header file: rmaencod.h

This is the response interface to IRMAEncoder. A remote broadcast application uses this interface to reply to instructions sent by the Remote Broadcast Library.

Additional Information
See "Chapter 16: Remote Broadcast".

The IRMAEncoderResponse interface contains the following methods:

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

IRMAEncoderResponse::FileHeaderReady

Returns the header from the IRMAEncoder::GetFileHeader operation.


STDMETHOD(FileHeaderReady) (
THIS_
PN_RESULT result,
IRMAValues* pHeader
) PURE;
result
The result of the IRMAEncoder::GetFileHeader operation. A value of PNR_OK indicates the operation has completed successfully.

pHeader
Pointer to an IRMAValues interface that manages the file header that was filled in.

IRMAEncoderResponse::GetTime

Information not yet available at publication.


STDMETHOD_(UINT32,GetTime) (
THIS
) PURE;

IRMAEncoderResponse::InitEncoderResponse

Information not yet available at publication.


STDMETHOD(InitEncoderResponse) (
THIS_
const char* pHost,
UINT16 unPort,
IRMARequest* pRequest,
const char* pUsername,
const char* pPassword,
IRMAEncoder* pEncoder
) PURE;
pHost
Pointer to the host name or IP address of the server.

unPort
The server port on which the broadcast plug-in listens. This parameter is defined by the plug-in's FSMount setting.

pRequest
Information not yet available at publication.

pUsername
Pointer to the name the broadcast application uses to connect to the broadcast plug-in. This should be encoder if a password is used.

pPassword
Pointer to the password the broadcast application uses to connect to the broadcast plug-in. This parameter is defined by the plug-in's FSMount setting.

pEncoder
Pointer to the IRMAEncoder broadcast application.

IRMAEncoderResponse::PacketReady

Returns the packet.


STDMETHOD(PacketReady) (
THIS_
PN_RESULT result,
IRMAPacket* pPacket
) PURE;
result
The result of the packet operation. A value of PNR_OK indicates the operation has completed successfully.

pPacket
Pointer to an IRMAPacket interface that contains the packet information.

IRMAEncoderResponse::Process

Performs any necessary processing. This method should be called after each packet is created or at regular intervals (approximately every five seconds) if packets are not being sent.


STDMETHOD(Process) (
THIS
) PURE;

IRMAEncoderResponse::StreamDone

Indicates that the proper number of packets have been sent and the stream has stopped.


STDMETHOD(StreamDone) (
THIS_
UINT16 unStream
) PURE;
unStream
The stream that was receiving the packets.

IRMAEncoderResponse::StreamHeaderReady

Returns the header from the IRMAEncoder::GetStreamHeader operation.


STDMETHOD(StreamHeaderReady) (
THIS_
PN_RESULT result,
IRMAValues* pHeader
) PURE;
result
The result of the IRMAEncoder::GetStreamHeader operation. A value of PNR_OK indicates the operation has completed successfully.

pHeader
Pointer to an IRMAValues interface that manages the file header that was filled in.

IRMAEncoderResponseCompletion

Purpose: Information not yet available at publication.
Implemented by: Information not yet available at publication.
Used by: Information not yet available at publication.
Header file: rmaencod.h

The IRMAEncoderResponseCompletion interface contains the IRMAEncoderResponseCompletion::EncoderResponseDone method.

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

IRMAEncoderResponseCompletion::EncoderResponseDone

Information not yet available at publication.


 STDMETHOD(EncoderResponseDone) (
THIS
) PURE;

IRMAErrorMessages

Purpose: Sends error messages to RealSystem
Implemented by: RealSystem architecture
Used by: Any component
Header file: rmaerror.h

Any RealSystem component can use this interface to report errors to RealSystem. Errors have a severity level from 0 to 7 and are logged in RealServer's error log or displayed on the client in a pop-up dialog box.

Additional Information
See "Chapter 15: Status Codes and Errors".

The IRMAErrorMessages interface contains the following methods:

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

IRMAErrorMessages::GetErrorText

Gets the text description of an RMA error code. Returns an IRMABuffer interface that contains the error text.


STDMETHOD_(IRMABuffer*, GetErrorText) (
THIS_
PN_RESULT ulRMACode
) PURE;
ulRMACode
Contains the RMA error code.

IRMAErrorMessages::Report

Reports an error, event, or status message.


STDMETHOD(Report) (
THIS_
const UINT8 unSeverity,
PN_RESULT ulRMACode,
const ULONG32 ulUserCode,
const char* pUserString,
const char* pMoreInfoURL
) PURE;
unSeverity
Type of report. This value impacts how the player, tool, or server reacts to the report. Depending on the error type, an error message with the RMA code and a string translation of that code is displayed. The error dialog includes a "more info" section that displays the user code and string, and a link to the more info URL. In the server these messages are logged to the log file. One of the following values:

ulRMACode
Well-known RMA error code. This is translated to a text representation for display in an error dialog box or log file.

ulUserCode
User-specific error code. This is not translated to a text representation. This can be any value the caller wants; it will be logged or displayed but not interpretted.

pUserString
Pointer to a user-specific error string. This is not translated or modified. This can be any value the caller wants; it will be logged or displayed but not interpretted.

pMoreInfoURL
Pointer to a user-specific more information URL string.

IRMAErrorSink

Purpose: Receives error messages
Implemented by: Error logging plug-in, top-level client
Used by: RealSystem architecture
Header file: rmaerror.h

If a component sets itself up as an error sink with IRMAErrorSinkControl, it receives RealSystem error messages through the IRMAErrorSink::ErrorOccurred method.

Additional Information
See "Chapter 15: Status Codes and Errors".

The IRMAErrorSink interface contains the IRMAErrorSink::ErrorOccurred method.

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

IRMAErrorSink::ErrorOccurred

Reports an error, event, or status message. This method is called after you have registered your error sink with an IRMAErrorSinkControl interface (either in the server or player core).


STDMETHOD(ErrorOccurred) (
THIS_
const UINT8 unSeverity,
const ULONG32 ulRMACode,
const ULONG32 ulUserCode,
const char* pUserString,
const char* pMoreInfoURL
) PURE;
unSeverity
Type of report. This value impacts how the player, tool, or server reacts to the report. Depending on the error type, an error message with the RMA code and a string translation of that code is displayed. The error dialog includes a "more info" section that displays the user code and string, and a link to the more info URL. In the server these messages are logged to the log file. One of the following values:

ulRMACode
Well-known RMA error code. This is translated to a text representation for display in an error dialog box or log file.

ulUserCode
User-specific error code. This is not translated to a text representation. This can be any value the caller wants; it will be logged or displayed but not interpretted.

pUserString
Pointer to a user-specific error string. This is not translated or modified. This can be any value the caller wants; it will be logged or displayed but not interpretted.

pMoreInfoURL
Pointer to a user-specific more information URL string.

IRMAErrorSinkControl

Purpose: Sets up a component to receive error messages
Implemented by: RealSystem architecture
Used by: Error logging plug-in
Header file: rmaerror.h

A component sets itself up as an error sink with this interface, specifying the severity levels of errors for which it will receive messages. RealServer or the client then uses IRMAErrorSink to send the component messages about errors as they occur.

Additional Information
See "Chapter 15: Status Codes and Errors".

The IRMAErrorSinkControl interface contains the following methods:

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

IRMAErrorSinkControl::AddErrorSink

Adds an IRMAErrorSink interface that manages error messages. This method also lets you set a range of severity levels for which you will receive reports. The default severity range is PNLOG_EMERG to PNLOG_INFO (0 to 6).


STDMETHOD(AddErrorSink) (
THIS_
IRMAErrorSink* pErrorSink,
const UINT8 unLowSeverity,
const UINT8 unHighSeverity
) PURE;
pErrorSink
Pointer to an IRMAErrorSink interface that manages the error messages.

unLowSeverity
The low end of the range of severity levels to report.

unHighSeverity
The high end of the range of severity levels to report.

Note
You can specify any invalid range (such as unLowSeverity = 1 and unHighSeverity = 0) if you don't want to receive any errors.

IRMAErrorSinkControl::RemoveErrorSink

Removes an error sink.


STDMETHOD(RemoveErrorSink) (
THIS_
IRMAErrorSink* pErrorSink
) PURE;
pErrorSink
Pointer to the IRMAErrorSink interface to be removed.


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