previous next

Appendix A: Interface List

Additional Information
Some information in the reference chapters was not yet available before publishing. If you require more information about any of the interfaces and methods, structures, functions, or return values, continue to watch the DevZone at http://www.realnetworks.com/devzone for future updates to this documentation.

IRMAASMSource

Purpose: Informs a file format plug-in of the RealSystem client's Adaptive Stream Management (ASM) rule choices
Implemented by: File format plug-in
Used by: RealServer
Header file: rmaasm.h

A file format plug-in implements this interface to receive rule subscription and unsubscription information for Adaptive Stream Management (ASM). RealServer calls this interface's methods to transmit the RealSystem client's rule subscription choices to the file format plug-in.

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

The IRMAASMSource interface contains the following methods:

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

IRMAASMSource::Subscribe

Informs a file format plug-in that a subscription has occurred to the supplied rule number and stream number.


STDMETHOD(Subscribe) (
THIS_
UINT16 uStreamNumber,
UINT16 uRuleNumber
) PURE;
uStreamNumber
The stream number to which the subscription applies.

uRuleNumber
The rule number to which the subscription applies.

IRMAASMSource::Unsubscribe

Informs a file format plug-in that a unsubscription has occurred to the supplied rule number and stream number.


STDMETHOD(Unsubscribe) (
THIS_
UINT16 uStreamNumber,
UINT16 uRuleNumber
) PURE;
uStreamNumber
The stream number to which the unsubscription applies.

uRuleNumber
The rule number to which the unsubscription applies.

IRMAASMStream

Purpose: Informs RealServer of Adaptive Stream Management (ASM) rule subscription; adds stream sink objects
Implemented by: Stream object (RealSystem architecture)
Used by: Client and rendering plug-ins
Header file: rmaasm.h

The RealSystem Client uses the IRMAASMStream::Subscribe and IRMAASMStream::Unsubscribe methods to inform RealServer of its Adaptive Stream Management subscription choices. A rendering plug-in can use the IRMAASMStream::AddStreamSink method to define itself as a stream sink object that receives notice of rule subscriptions and unsubscriptions through IRMAASMStreamSink.

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

The IRMAASMStream interface contains the following methods:

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

IRMAASMStream::AddStreamSink

Adds a stream sink to get subscribe and unsubscribe notifications.


STDMETHOD(AddStreamSink) (
THIS_
IRMAASMStreamSink* pASMStreamSink
) PURE;
pASMStreamSink
Pointer to the IRMAASMStreamSink interface that contains the rule subscriptions and unsubscriptions.

IRMAASMStream::RemoveStreamSink

Removes an advise sink for getting subscribe and unsubscribe notifications.


STDMETHOD(RemoveStreamSink) (
THIS_
IRMAASMStreamSink* pASMStreamSink
) PURE;
pASMStreamSink
Pointer to the IRMAASMStreamSink interface to be removed.

IRMAASMStream::Subscribe

Informs the RealServer core to subscribe to a particular rule number for this stream.


STDMETHOD(Subscribe) (
THIS_
UINT16 uRuleNumber
) PURE;
uRuleNumber
The rule number to which to subscribe.

IRMAASMStream::Unsubscribe

Informs the RealServer core to unsubscribe to a particular rule number for this stream.


STDMETHOD (Unsubscribe) (
THIS_
UINT16 uRuleNumber
) PURE;
uRuleNumber
The rule number to which to unsubscribe.

IRMAASMStreamSink

Purpose: Informs the renderer of Adaptive Stream Management (ASM) rule subscription and unsubscription
Implemented by: Rendering plug-in
Used by: RealSystem Client
Header file: rmaasm.h

A rendering plug-in implements this interface if it sets itself up as a Adaptive Stream Management stream sink object with IRMAASMStream. RealSystem then uses the IRMAASMStreamSink::OnSubscribe and IRMAASMStreamSink::OnUnsubscribe methods to inform the renderer of stream rule subscription and unsubscription, respectively. This lets the renderer monitor for conditions not known to RealSystem architecture.

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

The IRMAASMStreamSink interface contains the following methods:

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

IRMAASMStreamSink::OnSubscribe

Informs a renderer that a stream rule subscription has occurred.


STDMETHOD (OnSubscribe) (
THIS_
UINT16 uRuleNumber
) PURE;
uRuleNumber
The rule number of the subscription.

IRMAASMStreamSink::OnUnsubscribe

Informs a renderer that a stream rule unsubscription has occurred.


STDMETHOD (OnUnsubscribe) (
THIS_
UINT16 uRuleNumber
) PURE;
uRuleNumber
The rule number of the unsubscription.

IRMAActivePropUser

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: rmamon.h

An IRMAActivePropUser interface can be set as the active user of a property in an IRMAActiveRegistry interface. This causes the IRMAActivePropUser interface to be consulted every time someone wants to change a property. The difference between this and a property watch is that this is asynchronous and can call a "done" method with a failure to cause the property to not be set, and this gets called instead of calling into the IRMAPNRegistry interface. The response interface is IRMAActivePropUserResponse.

The IRMAActivePropUser interface contains the following methods:

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

IRMAActivePropUser::DeleteActiveProp

Provides an asynchronous request to delete the active property.


STDMETHOD(DeleteActiveProp) (
THIS_
const char* pName,
IRMAActivePropUserResponse* pResponse
) PURE;
pName
Pointer to the name of the property to delete.

pResponse
Pointer to an IRMAActivePropUserResponse interface that manages the response to this method.

IRMAActivePropUser::SetActiveBuf

Provides an asynchronous request to set the property to the specified buffer.


STDMETHOD(SetActiveBuf) (
THIS_
const char* pName,
IRMABuffer* pBuffer,
IRMAActivePropUserResponse* pResponse
) PURE;
pName
Pointer to the name of the property.

pBuffer
Pointer to an IRMABuffer interface that manages the buffer with which the property is set.

pResponse
Pointer to an IRMAActivePropUserResponse interface that manages the response to this method.

IRMAActivePropUser::SetActiveInt

Provides an asynchronous request to set the property to the specified integer value.


STDMETHOD(SetActiveInt) (
THIS_
const char* pName,
UINT32 ul,
IRMAActivePropUserResponse* pResponse
) PURE;
pName
Pointer to the name of the property.

ul
The integer value to which to set this property.

pResponse
Pointer to an IRMAActivePropUserResponse interface that manages the response to this method.

IRMAActivePropUser::SetActiveStr

Provides an asynchronous request to set the property to the specified string.


STDMETHOD(SetActiveStr) (
THIS_
const char* pName,
IRMABuffer* pBuffer,
IRMAActivePropUserResponse* pResponse
) PURE;
pName
Pointer to the name of the property.

pBuffer
Pointer to an IRMABuffer interface that manages the string with which the property is set.

pResponse
Pointer to an IRMAActivePropUserResponse interface that manages the response to this method.

IRMAActivePropUserResponse

Purpose: Responds to queries to set properties
Implemented by: Information not yet available at publication.
Used by: Information not yet available at publication.
Header file: rmamon.h

The IRMAActivePropUserResponse interface contains the following methods:

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

IRMAActivePropUserResponse::DeleteActivePropDone

Reports the status of the request to delete the active property.


STDMETHOD(DeleteActivePropDone) (
THIS_
PN_RESULT res,
const char* pName,
IRMABuffer* pInfo[],
UINT32 ulNumInfo
) PURE;
res
The status of the operation. A value of PNR_OK indicates the operation has completed successfully.

pName
Pointer to the name of the property.

pInfo
Information not yet available at publication.

ulNumInfo
Information not yet available at publication.

IRMAActivePropUserResponse::SetActiveBufDone

Reports the status of the request to set the property to a specified buffer.


STDMETHOD(SetActiveBufDone) (
THIS_
PN_RESULT res,
const char* pName,
IRMABuffer* pBuffer,
IRMABuffer* pInfo[],
UINT32 ulNumInfo
) PURE;
res
The status of the operation. A value of PNR_OK indicates the operation has completed successfully.

pName
Pointer to the name of the property.

pBuffer
Pointer to an IRMABuffer interface that manages the buffer to which the property was set.

pInfo
Information not yet available at publication.

ulNumInfo
Information not yet available at publication.

IRMAActivePropUserResponse::SetActiveIntDone

Report the status of the request to set the property to an integer value.


STDMETHOD(SetActiveIntDone) (
THIS_
PN_RESULT res,
const char* pName,
UINT32 ul,
IRMABuffer* pInfo[],
UINT32 ulNumInfo
) PURE;
res
The status of the operation. A value of PNR_OK indicates the operation has completed successfully.

pName
Pointer to the name of the property.

ul
The integer value of the property that was set.

pInfo
Information not yet available at publication.

ulNumInfo
Information not yet available at publication.

IRMAActivePropUserResponse::SetActiveStrDone

Reports the status of the request to set the property to a specified string.


STDMETHOD(SetActiveStrDone) (
THIS_
PN_RESULT res,
const char* pName,
IRMABuffer* pBuffer,
IRMABuffer* pInfo[],
UINT32 ulNumInfo
) PURE;
res
The status of the operation. A value of PNR_OK indicates the operation has completed successfully.

pName
Pointer to the name of the property.

pBuffer
Pointer to an IRMABuffer interface that manages the string to which the property was set.

pInfo
Information not yet available at publication.

ulNumInfo
Information not yet available at publication.

IRMAActiveRegistry

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: rmamon.h

The IRMAActiveRegistry interface contains the following methods:

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

IRMAActiveRegistry::DeleteActiveProp

Provides an asynchronous request to delete the active property.


STDMETHOD(DeleteActiveProp) (
THIS_
const char* pName,
IRMAActivePropUserResponse* pResponse
) PURE;
pName
Pointer to the name of the property to delete.

pResponse
Pointer to an IRMAActivePropUserResponse interface that manages the response to this method.

IRMAActiveRegistry::IsActive

Returns TRUE if a property has an active user that must be queried to change the value. Returns FALSE if the value can just be set.


STDMETHOD_(BOOL, IsActive) (
THIS_
const char* pName
) PURE;
pName
The property to query.

IRMAActiveRegistry::SetActiveBuf

Provides an asynchronous request to set a property to a specified buffer.


STDMETHOD(SetActiveBuf) (
THIS_
const char* pName,
IRMABuffer* pBuffer,
IRMAActivePropUserResponse* pResponse
) PURE;
pName
Pointer to the name of the property.

pBuffer
Pointer to an IRMABuffer interface that manages the buffer with which the property is set.

pResponse
Pointer to an IRMAActivePropUserResponse interface that manages the response to this method.

IRMAActiveRegistry::SetActiveInt

Provides an asynchronous request to set a property to a specified integer value.


STDMETHOD(SetActiveInt) (
THIS_
const char* pName,
UINT32 ul,
IRMAActivePropUserResponse* pResponse
) PURE;
pName
Pointer to the name of the property.

ul
The integer value to which to set this property.

pResponse
Pointer to an IRMAActivePropUserResponse interface that manages the response to this method.

IRMAActiveRegistry::SetActiveStr

Provides an asynchronous request to set a property to a specified string.


STDMETHOD(SetActiveStr) (
THIS_
const char* pName,
IRMABuffer* pBuffer,
IRMAActivePropUserResponse* pResponse
) PURE;
pName
Pointer to the name of the property.

pBuffer
Pointer to an IRMABuffer interface that manages the string with which the property is set.

pResponse
Pointer to an IRMAActivePropUserResponse interface that manages the response to this method.

IRMAActiveRegistry::SetAsActive

Sets a property to active and registers the active property user.


STDMETHOD(SetAsActive) (
THIS_
const char* pName,
IRMAActivePropUser* pUser
) PURE;
pName
Pointer to the property to set as active.

pUser
Pointer to an IRMAActivePropUser interface that manages the active property user.

IRMAActiveRegistry::SetAsInactive

Removes an active property user from property activation.


STDMETHOD(SetAsInactive) (
THIS_
const char* pName,
IRMAActivePropUser* pUser
) PURE;
pName
Pointer to the property to set as inactive.

pUser
Pointer to an IRMAActivePropUser interface that manages the active property user to remove.

IRMAAsyncEnumAuthenticationDB

Purpose: Provides enumeration of authentication data
Implemented by: Database plug-in
Used by: Server core
Header file: rmadb.h

This interface enumerates the users that exist in a database. The response interface is IRMAAsyncEnumAuthenticationDBResponse.

The IRMAAsyncEnumAuthenticationDB interface contains the following methods:

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

IRMAAsyncEnumAuthenticationDB::Clone

Makes a new enumerator of this collection.


STDMETHOD(Clone) (
THIS_
REF(IRMAAsyncEnumAuthenticationDB*) pAsyncEnumAuthenticationDBNew
) PURE;
pAsyncEnumAuthenticationDBNew
Returns a pointer to an IRMAAsyncEnumAuthenticationDB interface that manages the new enumerator.

IRMAAsyncEnumAuthenticationDB::Next

Retrieves the next item in the collection.


STDMETHOD(Next) (
THIS_
IRMAAsyncEnumAuthenticationDBResponse* pAsyncEnumAuthenticationDBResponseNew
) PURE;
pAsyncEnumAuthenticationDBResponseNew
Pointer to an IRMAAsyncEnumAuthenticationDBResponse interface that manages the response to this method.

IRMAAsyncEnumAuthenticationDB::Reset

Resets this enumerator to the beginning of the collection.


STDMETHOD(Reset) (
THIS_
IRMAAsyncEnumAuthenticationDBResponse* pAsyncEnumAuthenticationDBResponseNew
) PURE;
pAsyncEnumAuthenticationDBResponseNew
Pointer to an IRMAAsyncEnumAuthenticationDBResponse interface that manages the response to this method.

IRMAAsyncEnumAuthenticationDB::Skip

Skips the indicated number of items in the collection, then retrieves the next item.


STDMETHOD(Skip) (
THIS_
IRMAAsyncEnumAuthenticationDBResponse* pAsyncEnumAuthenticationDBResponseNew,
UINT32 ulNumToSkip
) PURE;
pAsyncEnumAuthenticationDBResponseNew
Pointer to an IRMAAsyncEnumAuthenticationDBResponse interface that manages the response to this method.

ulNumToSkip
The number of items to skip. This method retrieves the ulNumToSkip + 1 item.

IRMAAsyncEnumAuthenticationDBResponse

Purpose: Enumerates authentication data
Implemented by: Database user
Used by: Information not yet available at publication.
Header file: rmadb.h

The IRMAAsyncEnumAuthenticationDBResponse interface contains the following methods:

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

IRMAAsyncEnumAuthenticationDBResponse::ResetDone

Reports the status of the call to IRMAAsyncEnumAuthenticationDB::Reset.


STDMETHOD(ResetDone) (
THIS_
PN_RESULT ResultStatus
) PURE;
ResultStatus
The status of the IRMAAsyncEnumAuthenticationDB::Reset operation. A value of PNR_OK indicates the operation has completed successfully.

IRMAAsyncEnumAuthenticationDBResponse::NextDone

Reports the status of the call to IRMAAsyncEnumAuthenticationDB::Next. If the call was successful, the pricipal ID is valid.


STDMETHOD(NextDone) (
THIS_
PN_RESULT ResultStatus,
IRMABuffer* pBufferNextPrincipalID
) PURE;
ResultStatus
The status of the IRMAAsyncEnumAuthenticationDB::Next operation. A value of PNR_OK indicates the operation has completed successfully.

pBufferNextPrincipalID
Pointer to an IRMABuffer interface that manages the next item in the collection.

IRMAAsyncEnumAuthenticationDBResponse::SkipDone

Reports the status of the call to IRMAAsyncEnumAuthenticationDB::Skip. If the call was successful, the principal ID is valid.


STDMETHOD(SkipDone) (
THIS_
PN_RESULT ResultStatus,
IRMABuffer* pBufferNextPrincipalID
) PURE;
ResultStatus
The status of the IRMAAsyncEnumAuthenticationDB::Skip operation. A value of PNR_OK indicates the operation has completed successfully.

pBufferNextPrincipalID
Pointer to an IRMABuffer interface that manages the next item, after the number skipped, in the collection.

IRMAAsyncIOSelection

Purpose: Provides callbacks for UNIX I/O events handled by select()
Implemented by: RealSystem architecture
Used by: UNIX plug-in
Header file: rmaengin.h

This interface is part of Network Services. On UNIX, RealSystem implements this interface to let plug-ins get callbacks based on I/O events that are normally handled by select(). Through its two methods, this interface allows plug-ins to set up or cancel callbacks that are executed when a file descriptor is ready for reading or writing, or has an exception.

Additional Information
See "Chapter 14: Network Services". See also IRMACallback.

The IRMAAsyncIOSelection interface contains the following methods:

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

IRMAAsyncIOSelection::Add

Adds a callback associated with the given file descriptor when the descriptor is ready for a read or a write, or has an exception. This method is only available on Unix, and replaces the functionality of select.


STDMETHOD(Add) (
THIS_
IRMACallback* pCallback,
INT32 lFileDescriptor,
UINT32 ulType
) PURE;
pCallback
Pointer to an IRMACallback interface implemented by the user of this method. The IRMACallback::Func method is called when the passed in file descriptor is ready for reading or writing, or has an exception.

lFileDescriptor
An I/O descriptor on which to perform a select.

ulType
Indicates whether the callback should be used on read, write, or exception. Any combination of the following:

IRMAAsyncIOSelection::Remove

Removes the callback associated with the given file descriptor from the event handler. This method is only available on Unix, and is intended to replace the functionality of select.


STDMETHOD(Remove) (
THIS_
INT32 lFileDescriptor,
UINT32 ulType
) PURE;
lFileDescriptor
The I/O file descriptor on which the select was performed.

ulType
Indicates whether the callback was used on a read, write, or exception. Any combination of the following:

IRMAAudioCrossFade

Purpose: Cross-fades two audio streams
Implemented by: Information not yet available at publication.
Used by: Information not yet available at publication.
Header file: rmaausvc.h

This interface is used to cross fade across two audio streams. This interface is exposed by IRMAAudioPlayer.

The IRMAAudioCrossFade interface contains the IRMAAudioCrossFade::CrossFade method.

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

IRMAAudioCrossFade::CrossFade

Cross fades two audio streams.


STDMETHOD(CrossFade) (
THIS_
IRMAAudioStream* pStreamFrom,
IRMAAudioStream* pStreamTo,
UINT32 ulFromCrossFadeStartTime,
UINT32 ulToCrossFadeStartTime,
UINT32 ulCrossFadeDuration
) PURE;
pStreamFrom
Pointer to an IRMAAudioStream interface that manages the stream from which to be cross faded.

pStreamTo
Pointer to an IRMAAudioStream interface that manages the stream to which to be cross faded.

ulFromCrossFadeStartTime
The "from" stream time when cross fade is to be started.

ulToCrossFadeStartTime
The "to" stream time when cross fade is to be started.

ulCrossFadeDuration
The duration over which the cross fade needs to be done.

IRMAAudioDevice

Purpose: Exports audio data to an audio device
Implemented by: Audio device object
Used by: Audio Services
Header file: rmaausvc.h

This is the interface to the object that exports data to the audio device. It is currently to be used only by Audio Services.

The IRAMAudioDevice interface contains the following methods:

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

IRMAAudioDevice::CheckFormat

Checks the input format against the audio device format.


STDMETHOD(CheckFormat) (
THIS_
const RMAAudioFormat* pAudioFormat
) PURE;
pAudioFormat
Pointer to an RMAAudioFormat structure that manages the audio device format.

IRMAAudioDevice::Close

Closes the audio device.


STDMETHOD(Close) (
THIS_
const BOOL bFlush
) PURE;
bFlush
If TRUE, reset the audio device before closing. If FALSE, drain the audio device before closing.

IRMAAudioDevice::Drain

Plays the buffers already written to the audio device before closing it.


STDMETHOD(Drain) (
THIS
) PURE;

IRMAAudioDevice::GetCurrentAudioTime

Gets the current system audio time.


STDMETHOD(GetCurrentAudioTime) (
THIS_
REF(ULONG32) ulCurrentTime
) PURE;
ulCurrentTime
Returns the number of milliseconds since the start of playback.

IRMAAudioDevice::GetVolume

Gets the audio device volume level.


STDMETHOD_(UINT16,GetVolume) (
THIS
) PURE;

IRMAAudioDevice::InitVolume

Informs the audio stream of the client's volume range. The audio stream maps the client's volume range into the audio device volume range. Returns TRUE if volume is supported by this audio device.


STDMETHOD_(BOOL,InitVolume) (
THIS_
const UINT16 uMinVolume,
const UINT16 uMaxVolume
) PURE;
uMinVolume
The minimum volume of the client's volume range.

uMaxVolume
The maximum volume of the client's volume range.

IRMAAudioDevice::Open

Initializes the audio device and prepares it for writing using the given audio format.


STDMETHOD(Open) (
THIS_
const RMAAudioFormat* pAudioFormat,
IRMAAudioDeviceResponse* pStreamResponse
) PURE;
pAudioFormat
Pointer to an RMAAudioFormat structure that contains the audio format.

pStreamResponse
Pointer to an IRMAAudioDeviceResponse interface that manages the response to various methods in this interface.

IRMAAudioDevice::Pause

Pauses the audio device.


STDMETHOD(Pause) (
THIS
) PURE;

IRMAAudioDevice::Reset

Resets the audio device.


STDMETHOD(Reset) (
THIS
) PURE;

IRMAAudioDevice::Resume

Starts or resumes an audio playback.


STDMETHOD(Resume) (
THIS
) PURE;

IRMAAudioDevice::SetVolume

Sets the audio device volume level.


STDMETHOD(SetVolume) (
THIS_
const UINT16 uVolume
) PURE;
uVolume
The volume level at which the audio device is set.

IRMAAudioDevice::Write

Writes to an audio buffer.


STDMETHOD(Write) (
THIS_
const RMAAudioData* pAudioData
) PURE;
pAudioData
Pointer to an RMAAudioData structure to which to write the audio data.

IRMAAudioDeviceManager

Purpose: Replaces the default audio device
Implemented by: Audio Services
Used by: Audio device object
Header file: rmaausvc.h

This interface replaces the audio device and adds an optional final hook. A top-level client might want to replace the default implementation of the audio device provided by the core if the client needs to mix the audio samples with some external audio source or wants to render in some special environment, such as 3D.

The IRMAAudioDeviceManager interface contains the following methods:

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

IRMAAudioDeviceManager::AddFinalHook

Provides one last chance to modify data being written to the audio device. This hook lets the user change the audio format that is to be written to the audio device. This can be done in the call to IRMAAudioHook::OnInit.


STDMETHOD(SetFinalHook) (
THIS_
IRMAAudioHook* pHook
) PURE;
pHook
Pointer to an IRMAAudioHook interface that manages access to the audio buffers.

IRMAAudioDeviceManager::GetAudioFormat

Returns the audio format in which the audio device is opened. This method fills in the pre-allocated RMAAudioFormat structure passed in to this method.


STDMETHOD(GetAudioFormat) (
THIS_
RMAAudioFormat* pAudioFormat
) PURE;
pAudioFormat
Pointer to an RMAAudioFormat structure that contains the audio format information.

IRMAAudioDeviceManager::Remove

Removes the audio device given to the manager in the earlier call to IRMAAudioDeviceManager::Replace.


STDMETHOD(Remove) (
THIS_
IRMAAudioDevice* pAudioDevice
) PURE;
pAudioDevice
Pointer to the IRMAAudioDevice interface that manages the audio device to be removed.

IRMAAudioDeviceManager::RemoveFinalHook

Removes the final hook interface that was instantiated in IRMAAudioDeviceManager::AddFinalHook.


STDMETHOD(RemoveFinalHook) (
THIS_
IRMAAudioHook* pHook
) PURE;
pHook
Pointer to the IRMAAudioHook interface that manages the final hook to be removed.

IRMAAudioDeviceManager::Replace

Replaces the default implementation of the audio device by the given audio device interface.


STDMETHOD(Replace) (
THIS_
IRMAAudioDevice* pAudioDevice
) PURE;
pAudioDevice
Pointer to an IRMAAudioDevice interface that manages the audio device with which to replace the default implementation.

IRMAAudioDeviceResponse

Purpose: Provides the response for the audio device object
Implemented by: Audio Services
Used by: Audio device object
Header file: rmaausvc.h

This is the response interface to IRMAAudioDevice. It is currently implemented only by Audio Services.

The IRMAAudioDeviceResponse interface contains the IRMAAudioDeviceResponse::OnTimeSync method.

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

IRMAAudioDeviceResponse::OnTimeSync

Notifies the user of the amount of audio, in milliseconds, that has been played since the start of the presentation. This method is called by IRMAAudioDevice when audio playback occurs.


STDMETHOD(OnTimeSync) (
THIS_
ULONG32 ulTimeEnd
) PURE;
ulTimeEnd
The time, in milliseconds, corresponding to the amount of data that has been played since the start of the presentation.

IRMAAudioHook

Purpose: Provides access to audio buffers
Implemented by: Audio rendering plug-ins
Used by: Audio Services
Header file: rmaausvc.h

An audio rendering plug-in implements this interface to receive pointers to IRMABuffer objects of pre-mixed or post-mixed audio data. The plug-in can then create a new buffer of modified data and pass that back to Audio Services for mixing or playing on the output device. The plug-in sets up the pre-mix audio hook through IRMAAudioStream and the post-mix hook through IRMAAudioPlayer.

Additional Information
See "Chapter 13: Audio Services".

The IRMAAudioHook interface contains the following interfaces:

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

IRMAAudioHook::OnBuffer

Audio Services calls IRMAAudioHook::OnBuffer with audio data packets. The renderer should not modify the data in the pData member of the RMAAudioData structure pointed to by pAudioInData. If the renderer wants to write a modified version of the data back to Audio Services, then it should create its own IRMABuffer, modify the data, then associate this buffer with the pData member of the RMAAudioData structure pointed to by pAudioOutData.


STDMETHOD(OnBuffer) (
THIS_
RMAAudioData* pAudioInData,
RMAAudioData* pAudioOutData
) PURE;
pAudioInData
Pointer to an RMAAudioData structure.

pAudioOutData
Pointer to an RMAAudioData structure.

IRMAAudioHook::OnInit

Contains the audio data format of the audio data that will be provided in the IRMAAudioHook::OnBuffer method.


STDMETHOD(OnInit) (
THIS_
RMAAudioFormat* pFormat
) PURE;
pFormat
Pointer to an RMAAudioFormat structure that manages the audio data format.

IRMAAudioPlayer

Purpose: Provides access to an audio player object
Implemented by: Audio Services
Used by: Audio rendering plug-ins
Header file: rmaausvc.h

An audio rendering plug-in uses this interface to register with Audio Services. The plug-in can then create audio streams, "hook" post-mixed audio data for modification by IRMAAudioHook, and control volume levels through IRMAVolume. After creating audio stream objects, the plug-in can access the objects through IRMAAudioStream.

Additional Information
See "Chapter 13: Audio Services".

The IRMAAudioPlayer interface contains the following methods:

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

IRMAAudioPlayer::AddPostMixHook

Hooks audio data after all the audio streams in this have been mixed.


STDMETHOD(AddPostMixHook) (
THIS_
IRMAAudioHook* pHook,
const BOOL bDisableWrite,
const BOOL bFinal
) PURE;
pHook
Pointer to an IRMAAudioHook interface that gets the post-processed audio buffers and their associated audio format.

bDisableWrite
Information not yet available at publication.

bFinal
Information not yet available at publication.

IRMAAudioPlayer::CreateAudioStream

Creates an audio stream.


STDMETHOD(CreateAudioStream) (
THIS_
IRMAAudioStream** pAudioStream
) PURE;
pAudioStream
Pointer to an IRMAAudioStream interface that manages the audio stream information and capabilities.

IRMAAudioPlayer::GetAudioStream

Get an audio stream at the given position.


STDMETHOD_(IRMAAudioStream*,GetAudioStream) (
THIS_
UINT16 uIndex
) PURE;
uIndex
The position of the audio stream.

IRMAAudioPlayer::GetAudioStreamCount

Gets the number of audio streams currently active in the audio player. Since streams can be added mid-presentation, this method can return different values on different calls. If the user needs to know about all the streams as they get added to the player, the IRMAAudioStreamInfoResponse interface should be implemented and passed in IRMAAudioPlayer::SetStreamInfoResponse.


STDMETHOD_(UINT16,GetAudioStreamCount) (
THIS
) PURE;

IRMAAudioPlayer::GetAudioVolume

Gets the audio player's volume interface. This volume controls the volume level of all the mixed audio streams for this audio player.


STDMETHOD_(IRMAVolume*,GetAudioVolume) (
THIS
) PURE;

IRMAAudioPlayer::GetDeviceVolume

Gets the audio device volume interface. This volume controls the audio device volume levels.


STDMETHOD_(IRMAVolume*,GetDeviceVolume) (
THIS
) PURE;

IRMAAudioPlayer::RemovePostMixHook

Removes an already added post hook.


STDMETHOD(RemovePostMixHook) (
THIS_
IRMAAudioHook* pHook
) PURE;
pHook
Pointer to an IRMAAudioHook interface that manages the post hook to be removed.

IRMAAudioPlayer::RemoveStreamInfoResponse

Removes the stream information response interface.


STDMETHOD(RemoveStreamInfoResponse) (
THIS_
IRMAAudioStreamInfoResponse* pResponse
) PURE;
pResponse
Pointer to the IRMAAudioStreamInfoResponse interface to remove.

IRMAAudioPlayer::SetStreamInfoResponse

Sets a stream information response interface. A client must have already implemented an IRMAAudioStreamInfoResponse interface, and calls this method with the IRMAAudioStreamInfoResponse interface as the parameter. The audio player calls IRMAAudioStreamInfoResponse::OnStream with the total number of audio streams associated with this audio player.


STDMETHOD(SetStreamInfoResponse) (
THIS_
IRMAAudioStreamInfoResponse* pResponse
) PURE;
pResponse
Pointer to an IRMAAudioStreamInfoResponse interface that manages the total number of streams associated with this audio player.

IRMAAudioPlayerResponse

Purpose: Provides audio playback time synchronization
Implemented by: RealSystem Client
Used by: Audio Services
Header file: rmaausvc.h

This response interface to IRMAAudioPlayer is currently implemented only by the RealSystem client to receive audio synchronization information. The client passes this synchronization information to rendering plug-ins through IRMARenderer::OnTimeSync.

Additional Information
See "Timing and Synchronization".

The IRMAAudioPlayerResponse interface contains the IRMAAudioPlayerResponse::OnTimeSync method.

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

IRMAAudioPlayerResponse::OnTimeSync

Contains the required synchronization information. This method is called with the current audio playback time.


STDMETHOD(OnTimeSync) (
THIS_
ULONG32 ulTimeEnd
) PURE;
ulTimeEnd
The current audio playback time, in milliseconds.

IRMAAudioPushdown

Purpose: Sets up the audio pushdown time
Implemented by: Information not yet available at publication.
Used by: Information not yet available at publication.
Header file: rmaausvc.h

This interface reduces the amount of audio data that is pushed to the audio device before starting playback, which could be used to reduce overall latency in the system. This interface is queried from the IRMAClientEngine interface.

The IRMAAudioPushdown interface contains the IRMAAudioPushdown::SetAudioPushdown method.

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

IRMAAudioPushdown::SetAudioPushdown

Sets the minimum audio pushdown value. This is the amount of audio data being written to the audio device before starting playback.


STDMETHOD(SetAudioPushdown) (
THIS_
UINT32 ulAudioPushdown
) PURE;
ulAudioPushdown
The minimum audio pushdown, in milliseconds.

IRMAAudioStream

Purpose: Provides access to audio stream objects
Implemented by: Audio stream object (Audio Services)
Used by: Audio rendering plug-ins
Header file: rmaausvc.h

An audio rendering plug-in uses this interface to access audio stream objects. These objects contain the audio stream data before Audio Services mixes the audio and sends it to the output device. The IRMAAudioStream interface lets the plug-in play audio, hook audio data for pre-mix processing with IRMAAudioHook, receive audio stream information, and get the IRMAVolume interface for a stream.

Additional Information
See "Chapter 13: Audio Services".

The IRMAAudioStream interface contains the following methods:

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

IRMAAudioStream::AddDryNotification

Adds a notification response interface to get notifications when an audio stream is running dry.


STDMETHOD(AddDryNotification) (
THIS_
IRMADryNotification* pNotification
) PURE;
pNotification
Pointer to an IRMADryNotification interface that manages the notification of when an audio stream is running out of data.

IRMAAudioStream::AddPreMixHook

Hooks audio stream data prior to mixing.


STDMETHOD(AddPreMixHook) (
THIS_
IRMAAudioHook* pHook,
const BOOL bDisableWrite
) PURE;
pHook
Pointer to an IRMAAudioHook interface that manages the pre-mixed audio data.

bDisableWrite
If TRUE, this audio stream data is prevented from mixing with other audio stream data associated with this audio player.

IRMAAudioStream::GetAudioVolume

Gets the audio stream's volume interface. This volume controls the volume level for this audio stream.


STDMETHOD_(IRMAVolume*,GetAudioVolume) (
THIS
) PURE;

IRMAAudioStream::GetStreamInfo

Gets specific information about this audio stream.


STDMETHOD_(IRMAValues*,GetStreamInfo) (
THIS
) PURE;

IRMAAudioStream::Init

Initializes an audio stream with the given audio format.


STDMETHOD(Init) (
THIS_
const RMAAudioFormat* pAudioFormat,
IRMAValues* pValues
) PURE;
pAudioFormat
Pointer to an RMAAudioFormat structure that manages the audio format.

pValues
Pointer to an IRMAValues interface that manages the stream identification information.

IRMAAudioStream::RemovePreMixHook

Removes a specified pre-mix hook.


STDMETHOD(RemovePreMixHook) (
THIS_
IRMAAudioHook* pHook
) PURE;
pHook
Pointer to the IRMAAudioHook interface that manages the pre-mix hook to be removed.

IRMAAudioStream::Write

Writes audio data to Audio Services.


STDMETHOD(Write) (
THIS_
RMAAudioData* pAudioData
) PURE;
pAudioData
Pointer to an RMAAudioData structure to which to write the audio data.

Note
If the renderer loses packets and there is no loss correction, then the renderer should write the next packet using a meaningful start time. Audio Services plays silence where packets are missing.

IRMAAudioStream2

Purpose: Provides access to audio stream objects
Implemented by: Audio stream object (Audio Services)
Used by: Audio rendering plug-ins
Header file: rmaausvc.h

An audio rendering plug-in uses this interface to access audio stream objects. These objects contain the audio stream data before Audio Services mixes the audio and sends it to the output device. The IRMAAudioStream2 interface lets get the audio format and remove the dry stream notification interface.

The IRMAAudioStream2 interface contains the following methods:

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

IRMAAudioStream2::GetAudioFormat

Returns the input audio format of the data written by the renderer. This method fills in the pre-allocated RMAAudioFormat structure passed in.


STDMETHOD(GetAudioFormat) (
THIS_
RMAAudioFormat* pAudioFormat
) PURE;
pAudioFormat
Pointer to an RMAAudioFormat structure that manages the audio format information.

IRMAAudioStream2::RemoveDryNotification

Removes the notification response interface during the stream switching.


STDMETHOD(RemoveDryNotification) (
THIS_
IRMADryNotification* pNotification
) PURE;
pNotification
Pointer to the IRMADryNotification interface to remove.

IRMAAudioStreamInfoResponse

Purpose: Informs the renderer of the number of audio streams
Implemented by: Audio rendering plug-ins
Used by: Audio player object (Audio Services)
Header file: rmaausvc.h

An audio rendering plug-in can implement this interface to receive notification of the total number of streams associated with an audio player object. After the plug-in registers as the information response object through IRMAAudioPlayer, Audio Services calls IRMAAudioStreamInfoResponse::OnStream for each audio stream, passing the plug-in a pointer to each stream object.

The IRMAAudioStreamInfoResponse interface contains the IRMAAudioStreamInfoResponse::OnStream method.

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

IRMAAudioStreamInfoResponse::OnStream

Gets notification of streams associated with this player. Use IRMAAudioPlayer::SetStreamInfoResponse to register your implementation with the Audio Player. Once the player has been initialized, it calls IRMAAudioStreamInfoResponse::OnStream multiple times to pass all the streams. Since a stream can be added in mid-presentation, an IRMAAudioStreamInfoResponse interface should be written to handle IRMAAudioStreamInfoResponse::OnStream in the midst of the presentation as well.


STDMETHOD(OnStream) (
THIS_
IRMAAudioStream* pAudioStream
) PURE;
pAudioStream
Pointer to an IRMAAudioStream interface that manages the audio stream associated with this player.

IRMAAuthenticationDBAccess

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

This interface gets information about users, or principals, that have been added to a database. Typically, a user database is used to create a realm for security purposes, either to limit access to the administrative screens, or to restrict which users can play clips. Another use of this interface is for a file system plug-in that serves up web pages to a web-based administrative tool. The response interface is IRMAAuthenticationDBAccessResponse.

The IRMAAuthenticationDBAccess interface contains the following methods:

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

IRMAAuthenticationDBAccess::_NewEnum

Makes a new enumerator of this collection. This enumerator can then be used to find all the principals in a particular database.


STDMETHOD(_NewEnum) (
THIS_
REF(IRMAAsyncEnumAuthenticationDB*) pAsyncEnumAuthenticationDBNew
) PURE;
pAsyncEnumAuthenticationDBNew
Returns a pointer to an IRMAAsyncEnumAuthenticationDB interface that provides enumeration of authentication data.

IRMAAuthenticationDBAccess::CheckExistence

Verifies the existance of a principal. This method is obsolete and should not be used in any new applications.


STDMETHOD(CheckExistence) (
THIS_
IRMAAuthenticationDBAccessResponse* pAuthenticationDBAccessResponseNew,
IRMABuffer* pBufferPrincipalID
) PURE;
pAuthenticationDBAccessResponseNew
Pointer to an IRMAAuthenticationDBAccessResponse interface that manages the response to this method.

pBufferPrincipalID
Pointer to an IRMABuffer interface that manages the identification of the principal to be verified.

IRMAAuthenticationDBAccess::GetCredentials

Accesses the credentials for the specified principal. In the simplest use, this means getting the password for a specific user ID. When credentials are encrypted, it is up to the user of this method to do their own decrypting.


STDMETHOD(GetCredentials) (
THIS_
IRMAAuthenticationDBAccessResponse* pAuthenticationDBAccessResponseNew,
IRMABuffer* pBufferPrincipalID
) PURE;
pAuthenticationDBAccessResponseNew
Pointer to an IRMAAuthenticationDBAccessResponse interface that manages the response to this method.

pBufferPrincipalID
Pointer to an IRMABuffer interface that manages the identification of the principal.

IRMAAuthenticationDBAccessResponse

Purpose: Accesses the authentication data
Implemented by: Authentication plug-in
Used by: Database plug-in
Header file: rmadb.h

All database calls are designed to be asynchronous. This interface provides the asynchronous response to the IRMAAuthenticationDBAccess interface.

The IRMAAuthenticationDBAccessResponse interface contains the following methods:

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

IRMAAuthenticationDBAccessResponse::ExistenceCheckDone

Responds to a test for the existence of a specified principal. This method is obsolete and should not be used in any new applications.


STDMETHOD(ExistenceCheckDone) (
THIS_
PN_RESULT ResultStatus,
IRMABuffer* pBufferPrincipalID
) PURE;
ResultStatus
The status of the IRMAAuthenticationDBAccess::CheckExistence operation. A value of PNR_OK indicates the operation has completed successfully.

pBufferPrincipalID
Pointer to an IRMABuffer interface that manages the identification of the principal whose existence is being checked.

IRMAAuthenticationDBAccessResponse::GetCredentialsDone

Responds to a request for credentials for a specified principal. An authentication plug-in might, for example, compare these credentials from the database to the credentials supplyed by the client and either begin to play a clip or send an RTSP header that indicates access is denied.


STDMETHOD(GetCredentialsDone) (
THIS_
PN_RESULT ResultStatus,
IRMABuffer* pBufferPrincipalID,
IRMABuffer* pBufferCredentials
) PURE;
ResultStatus
The status of the IRMAAuthenticationDBAccess::GetCredentials operation. A value of PNR_OK indicates the operation has completed successfully.

pBufferPrincipalID
Pointer to an IRMABuffer interface that manages the identification of the principal.

pBufferCredentials
Pointer to an IRMABuffer interface that manages the credentials.

IRMAAuthenticationDBManager

Purpose: Provides storage for authentication data
Implemented by: Database plug-in
Used by: File system plug-in
Header file: rmadb.h

This interface is used by a file system plug-in to add users to a database, typically to populate an authentication realm. The response interface is IRMAAuthenticationDBManagerResponse.

The IRMAAuthenticationDBManager interface contains the following methods:

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

IRMAAuthenticationDBManager::AddPrincipal

Adds the specified user to the database, if the user is not already there.


STDMETHOD(AddPrincipal) (
THIS_
IRMAAuthenticationDBManagerResponse* pAuthenticationDBManagerResponseNew,
IRMABuffer* pBufferPrincipalID
) PURE;
pAuthenticationDBManagerResponseNew
Pointer to an IRMAAuthenticationDBManagerResponse interface that manages the response to this method.

pBufferPrincipalID
Pointer to an IRMABuffer interface that manages the identification of the user to be added to the database.

IRMAAuthenticationDBManager::RemovePrincipal

Removes the specified user from the database, if the user is there.


STDMETHOD(RemovePrincipal) (
THIS_
IRMAAuthenticationDBManagerResponse* pAuthenticationDBManagerResponseNew,
IRMABuffer* pBufferPrincipalID
) PURE;
pAuthenticationDBManagerResponseNew
Pointer to an IRMAAuthenticationDBManagerResponse interface that manages the response to this method.

pBufferPrincipalID
Pointer to an IRMABuffer interface that manages the identification of the user to remove from the database.

IRMAAuthenticationDBManager::SetCredentials

Replaces the credentials for the specified user. Usually the credentials are a password (which might be encrypted). It is not the database's job to protect this data; when necessary, authentication plug-ins should protect this data before storing it.


STDMETHOD(SetCredentials) (
THIS_
IRMAAuthenticationDBManagerResponse* pAuthenticationDBManagerResponseNew,
IRMABuffer* pBufferPrincipalID,
IRMABuffer* pBufferCredentials
) PURE;
pAuthenticationDBManagerResponseNew
Pointer to an IRMAAuthenticationDBManagerResponse interface that manages the response to this method.

pBufferPrinciplaID
Pointer to an IRMABuffer interface that manages the identification of the user.

pBufferCredentials
Pointer to an IRMABuffer interface that manages the credentials to be replaced.

IRMAAuthenticationDBManagerResponse

Purpose: Manages storage for authentication data
Implemented by: File system plug-in
Used by: Database plug-in
Header file: rmadb.h

This interface provides the asynchronous response to IRMAAuthenticationDBManager. For example, a module might call a database plug-in's IRMAAuthenticationDBManager::AddPrincipal method to add a user to the database, then in IRMAAuthenticationDBManagerResponse::AddPrincipalDone, the module might send a response to the browser indicating that the user was successfully added.

The IRMAAuthenticationDBManagerResponse interface contains the following methods:

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

IRMAAuthenticationDBManagerResponse::AddPrincipalDone

Responds to a request to add a user to the database.


STDMETHOD(AddPrincipalDone) (
THIS_
PN_RESULT ResultStatus,
IRMABuffer* pBufferPrincipalID
) PURE;
ResultStatus
The status of the IRMAAuthenticationDBManager::AddPrincipal operation. A value of PNR_OK indicates the operation has completed successfully.

pBufferPrincipalID
Pointer to an IRMABuffer interface that manages the identification of the user that was added to the database.

IRMAAuthenticationDBManagerResponse::RemovePrincipalDone

Responds to a request to remove a user from the database.


STDMETHOD(RemovePrincipalDone) (
THIS_
PN_RESULT ResultStatus,
IRMABuffer* pBufferPrincipalID
) PURE;
ResultStatus
The status of the IRMAAuthenticationDBManager::RemovePrincipal operation. A value of PNR_OK indicates the operation has completed successfully.

pBufferPrincipalID
Pointer to an IRMABuffer interface that manages the identification of the user that was removed from the database.

IRMAAuthenticationDBManagerResponse::SetCredentialsDone

Responds to a request to set the user's credentials.


STDMETHOD(SetCredentialsDone) (
THIS_
PN_RESULT ResultStatus,
IRMABuffer* pBufferPrincipalID
) PURE;
ResultStatus
The status of the IRMAAuthenticationDBManager::SetCredentials operation. A value of PNR_OK indicates the operation has completed successfully.

pBufferPrincipalID
Pointer to an IRMABuffer interface that manages the identification of the user whose credentials were replaced.

IRMAAuthenticationManager

Purpose: Directs the top-level client to get the username and password
Implemented by: Top-level client
Used by: Client core
Header file: rmaauth.h

When authentication is required for a requested file, the RealSystem Client core calls IRMAAuthenticationManager::HandleAuthenticationRequest to instruct the top-level client to gather the username and password (or other authentication parameters). The top-level client typically receives these from the user through a pop-up dialog. The response interface is IRMAAuthenticationManagerResponse.

Additional Information
See "Chapter 19: Authentication".

The IRMAAuthenticationManager interface contains the IRMAAuthenticationManager::HandleAuthenticationRequest method.

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

IRMAAuthenticationManager::HandleAuthenticationRequest

Gets a username and password, or other authentication parameters.


STDMETHOD(HandleAuthenticationRequest) (
THIS_
IRMAAuthenticationManagerResponse* pResponse
) PURE;
pResponse
Pointer to an IRMAAuthenticationManagerResponse interface that manages the response to the IRMAAuthenticationManager interface.

IRMAAuthenticationManagerResponse

Purpose: Passes the username and password to the Client core
Implemented by: Client core
Used by: top-level client
Header file: rmaauth.h

After gathering authentication parameters (username and password), the client calls IRMAAuthenticationManagerResponse::AuthenticationRequestDone to pass the parameters to the client core. The client core then transports the parameters to RealServer.

Additional Information
See "Chapter 19: Authentication".

The IRMAAuthenticationManagerResponse interface contains the IRMAAuthenticationManagerResponse::AuthenticationRequestDone method.

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

IRMAAuthenticationManagerResponse::AuthenticationRequestDone

Contains the user name and password requested by the IRMAAuthenticationManager::HandleAuthenticationRequest method.


STDMETHOD(AuthenticationRequestDone) (
THIS_
PN_RESULT result,
const char* pUserName,
const char* pPassword
) PURE;
result
The result of the authentication request. A value of PNR_OK indicates the operation completed successfully.

pUserName
Pointer to the user name.

pPassword
Pointer to the password.

IRMAAuthenticator

Purpose: Performs authentication checking on username/password pairs
Implemented by: Authenticator object (RealServer)
Used by: Component needing to authenticate users
Header file: rmaauth.h

An authenticator object authenticates usernames and passwords against a password file stored on RealServer. A component that requires authentication checking creates an authenticator object with IRMACommonClassFactory and then associates it with an authentication request object that contains the values to be authenticated. The authenticator object compares the supplied values to the password file and determines if the request is valid. The result goes to the authentication response object.

Additional Information
See "Chapter 19: Authentication".

The IRMAAuthenticator interface contains the following methods:

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

IRMAAuthenticator::Authenticate

Authenticate is called by a file object when it wants to ask the creator, presumably a file system manager, for authorization to open its file.

Authenticate will call IRMAAuthenticatorResponse::AuthenticateDone when done with PNR_OK or an error.

File objects will presumably perform the authenticate response as part of their Init() call, and not call InitDone until they receive a response one way or the other.


STDMETHOD(Authenticate) (
THIS_
IRMAValues* pValues,
IRMAAuthenticatorResponse* pResponse
) PURE;
pValues
Information not yet available at publication.

pResponse
Pointer to an IRMAAuthenticatorResponse interface that manages the response to various methods in this interface.

IRMAAuthenticator::AuthValuesReady

Indicates the authenticator values are ready and supplies the values.


STDMETHOD(AuthValuesReady) (
THIS_
PN_RESULT result,
IRMAValues* pValues
) PURE;
result
The status of the IRMAAuthenticatorRequest:::GetAuthValues operation. A value of PNR_OK indicates the operation has completed successfully.

pValues
Pointer to an IRMAValues interface that manages the requested authenticator values.

IRMAAuthenticator::GenerateAuthRequest

This method is for RealSystem internal use only and is not called by plug-ins performing authentication.

IRMAAuthenticator::InitAuthenticator

Initializes an IRMAAuthenticatorRequest interface.


STDMETHOD(InitAuthenticator) (
THIS_
IRMAAuthenticatorRequest* pRequest
) PURE;
pRequest
Pointer to the IRMAAuthenticatorRequest interface being intialized.

IRMAAuthenticatorRequest

Purpose: Supplies username/password values to be authenticated
Implemented by: Component with access to supplied username and password
Used by: Authenticator object (RealServer)
Header file: rmaauth.h

The authentication request object has access to the values (typically a username and password) that need to be authenticated.

The IRMAAuthenticatorRequest interface contains the IRMAAuthenticatorRequest:::GetAuthValues method.

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

IRMAAuthenticatorRequest:::GetAuthValues

Gets the authorization information for this transaction.


STDMETHOD(GetAuthValues) (
THIS_
IRMAValues* pOrigValues
) PURE;
pOrigValues
Pointer to an IRMAValues interface that manages the values to be authenticated. These values are passed to the authenticator object.

IRMAAuthenticatorResponse

Purpose: Receives the result of an authentication request
Implemented by: Component that takes action on authentication success or failure
Used by: Authenticator object (RealServer)
Header file: rmaauth.h

The authentication response interface receives notice that the authentication request succeeded or failed. After it performs the authentication, the authenticator object calls IRMAAuthenticatorResponse::AuthenticateDone with a status code.

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

The IRMAAuthenticatorResponse interface contains the IRMAAuthenticatorResponse::AuthenticateDone method.

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

IRMAAuthenticatorResponse::AuthenticateDone

Indicates whether the authorization succeeded or failed. IRMAAuthenticatorResponse::AuthenticateDone is called by an IRMAAuthenticator interface when it has finished its authorization steps. If the result is PNR_OK, then the IRMAValues interface contains authorization information as generated by the IRMAPassword interface.


STDMETHOD(AuthenticateDone) (
THIS_
PN_RESULT result,
IRMAValues* pAuthResponseValues
) PURE;
result
Indicates whether the authorization succeeded or failed. A value of PNR_OK indicates success.

pAuthResponseValues
If result is PNR_OK, this parameter contains a pointer to an IRMAValues interface that manages the authorization information.


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