Purpose: | Receives handle event calls for a site |
Implemented by: | Plug-ins and top-level clients |
Used by: | Event hook manager, site manager |
Header file: | rmawin.h |
This interface lets a plug-in or TLC watch for and react to events for sites used by the plug-in. For example, an image map plug-in can watch for an RMA_MOUSE_MOVE and mouse button messages.
The IRMAEventHook
interface contains the following methods:
As with all COM interfaces, the IRMAEventHook
interface inherits the following IUnknown
methods:
Indicates an event has occurred at the specified site. The event hook gets called first, in layer order, for each event. If a hook sets the handled
member of the PNxEvent
structure, the event is handled and the lower layer hooks (the site itself does not receive the event).
STDMETHOD(HandleEvent) (
THIS_
IRMASite* pSite,
PNxEvent* pEvent
) PURE;
IRMASite
inteface that manages the site.
PNxEvent
structure that describes the event.
Adds a specified site to the layout.
STDMETHOD(SiteAdded) (
THIS_
IRMASite* pSite
) PURE;
IRMASite
interface that manages the site being added.
Removes an existing site from the layout.
STDMETHOD(SiteRemoved) (
THIS_
IRMASite* pSite
) PURE;
IRMASite
interface that manages the site to be removed.
Purpose: | Hooks events from a named region |
Implemented by: | Site manager |
Used by: | Plug-ins and top-level clients |
Header file: | rmawin.h |
This interface adds and removes event hooks.
The IRMAEventHookMgr
interface contains the following methods:
As with all COM interfaces, the IRMAEventHookMgr
interface inherits the following IUnknown
methods:
Adds an event hook response interface to the named site at the specified layer. Hooks at the same layer are in the order of most recent first.
STDMETHOD(AddHook) (
THIS_
IRMAEventHook* pHook,
const char* pRegionName,
UINT16 uLayer
) PURE;
IRMAEventHook
interface that manages the event hook.
Removes the hooks added by IRMAEventHookMgr::AddHook
.
STDMETHOD(RemoveHook) (
THIS_
IRMAEventHook* pHook,
const char* pRegionName,
UINT16 uLayer
) PURE;
IRMAEventHook
interface that manages the event hook to be removed.
Purpose: | Associates a file object with an authenticator object |
Implemented by: | File objects (file system plug-ins) |
Used by: | RealServer |
Header file: | rmafiles.h |
The file object created by a file system plug-in implements this interface if it performs file access authentication. RealServer uses this interface during the file object's initialization stage to associate the object with an authenticator object. The file object then uses the authenticator object to validate the username/password for the file request against RealServer's password file.
![]() |
Additional Information |
---|
See "Chapter 7: File System Plug-In" and "Chapter 19: Authentication". |
The IRMAFileAuthenticator
interface contains the following methods:
As with all COM interfaces, the IRMAFileAuthenticator
interface inherits the following IUnknown
methods:
Information not yet available at publication.
STDMETHOD(GetAuthenticator) (
THIS_
REF(IRMAAuthenticator*) pAuthenticator
) PURE;
Associates an IRMAAuthenticator
interface to the file object.
STDMETHOD(SetAuthenticator) (
THIS_
IRMAAuthenticator* pAuthenticator
) PURE;
IRMAAuthenticator
interface to associate with the file.
Purpose: | Determines if a file exists in the file system |
Implemented by: | File objects (file system plug-ins) |
Used by: | RealServer |
Header file: | rmafiles.h |
When it initializes a file object, RealServer calls this interface's
method to determine if the requested file exists on the file system. The file object responds through IRMAFileExistsResponse
.
![]() |
Additional Information |
---|
See "Chapter 7: File System Plug-In". |
The IRMAFileExists
interface contains the IRMAFileExists::DoesExist
method.
As with all COM interfaces, the IRMAFileExists
interface inherits the following IUnknown
methods:
Indicates whether the requested file exists on the file system.
STDMETHOD(DoesExist) (
THIS_
const char* pPath,
IRMAFileExistsResponse* pFileResponse
) PURE;
IRMAFileExistsResponse
interface that manages the response to this method.
Purpose: | Notifies RealServer if file exists |
Implemented by: | RealServer |
Used by: | File objects (file system plug-ins) |
Header file: | rmafiles.h |
A file object uses this response interface to IRMAFileExists
to notify RealServer that a file does or does not exist on its file system.
![]() |
Additional Information |
---|
See "Chapter 7: File System Plug-In". |
The IRMAFileExistsResponse
interface contains the IRMAFileExistsResponse::DoesExistDone
method.
As with all COM interfaces, the IRMAFileExistsResponse
interface inherits the following IUnknown
methods:
Indicates whether a file does or does not exist on the file system.
STDMETHOD(DoesExistDone) (
THIS_
BOOL bExist
) PURE;
TRUE
, the file does exist.
Purpose: | Provides methods of communicating with file format plug-ins |
Implemented by: | File format plug-ins |
Used by: | RealSystem architecture |
Header file: | rmaformt.h |
This is the main interface RealServer or the RealSystem client uses to communicate with a file format plug-in. At system startup, RealSystem uses this interface to return functional information about each file format plug-in. Based on this information, it determines which plug-in it needs to use to stream a request for a specific file type. Additional methods instruct the plug-in to send stream header information or stream packets.
![]() |
Additional Information |
---|
See IRMAFormatResponse . See also "Chapter 5: File Format Plug-In".
|
The IRMAFileFormatObject
interface contains the following methods:
IRMAFileFormatObject::Close
IRMAFileFormatObject::GetFileFormatInfo
IRMAFileFormatObject::GetFileHeader
IRMAFileFormatObject::GetPacket
IRMAFileFormatObject::GetStreamHeader
IRMAFileFormatObject::InitFileFormat
IRMAFileFormatObject::Seek
As with all COM interfaces, the IRMAFileFormatObject
interface inherits the following IUnknown
methods:
Manages any cleanup required before closing the plug-in. All references to objects should be released and memory deallocated. This method is called when the playback is finished or stopped.
STDMETHOD(Close) (
THIS
) PURE;
Returns crucial information required to associate this plug-in with a given MIME type. This information tells the core which file format plug-in to use for a particular URL. The method is called when the RMA core application is launched.
STDMETHOD(GetFileFormatInfo) (
THIS_
REF(const char**) pFileMimeTypes,
REF(const char**) pFileExtensions,
REF(const char**) pFileOpenNames
) PURE;
Returns the file header information. Several routines are actually required to complete the process due to the asynchronous nature of the RMA file system. This method is called after the file has been initialized.
STDMETHOD(GetFileHeader) (
THIS
) PURE;
Returns the packet data for a particular stream. Several routines are actually required to complete the process due to the asynchronous nature of the RMA file system. This method is called each time it needs another packet.
STDMETHOD(GetPacket) (
THIS_
UINT16 unStreamNumber
) PURE;
Returns the stream header information for a particular stream. Several routines are actually required to complete the process due to the asynchronous nature of the RMA file system. This method is called (after the file header has been read) for each stream in the file format.
STDMETHOD(GetStreamHeader) (
THIS_
UINT16 unStreamNumber
) PURE;
Initializes the file and stores references to objects used. This method is called whenever a URL associated with this plug-in is opened.
STDMETHOD(InitFileFormat) (
THIS_
IRMARequest* pRequest,
IRMAFormatResponse* pFormatResponse,
IRMAFileObject* pFileObject
) PURE;
IRMAFormatResponse
interface that manages the response to various methods in this interface.
Places the file at a specified position.
STDMETHOD(Seek) (
THIS_
ULONG32 ulOffset
) PURE;
Purpose: | Determines a file's MIME type |
Implemented by: | File objects (file system plug-ins) |
Used by: | RealServer |
Header file: | rmafiles.h |
When it initializes a file object, RealServer calls this interface's method to determine the MIME type of the requested file. If the file object does not implement this interface or cannot determine the file MIME type, RealServer determines the MIME type from the file extension. The file object responds through IRMAFileMimeMapperResponse
.
![]() |
Additional Information |
---|
See "Chapter 7: File System Plug-In". For broadcast objects, see IRMABroadcastMapper. |
The IRMAFileMimeMapper
interface contains the IRMAFileMimeMapper::FindMimeType
method.
As with all COM interfaces, the IRMAFileMimeMapper
interface inherits the following IUnknown
methods:
Determines the MIME type of the requested file.
STDMETHOD(FindMimeType) (
THIS_
const char* pURL,
IRMAFileMimeMapperResponse* pMimeMapperResponse
) PURE;
IRMAFileMimeMapperResponse
interface the plug-in uses to respond to this method.
Purpose: | Notifies RealServer of file's MIME type |
Implemented by: | RealServer |
Used by: | File objects (file system plug-ins) |
Header file: | rmafiles.h |
A file object uses this response interface to IRMAFileMimeMapper
to notify RealServer of a requested file's MIME type. With this information, RealServer determines what file format plug-in to use to stream the file.
![]() |
Additional Information |
---|
See "Chapter 7: File System Plug-In". |
The IRMAFileMimeMapperResponse
interface contains the IRMAFileMimeMapperResponse::MimeTypeFound
method.
As with all COM interfaces, the IRMAFileMimeMapperResponse
interface inherits the following IUnknown
methods:
Indicates whether the MIME type was found by the IRMAFileMimeMapper::FindMimeType
method. This method is called by the IRMAFileObject
interface when the initialization of the file is complete and the MIME type is available for the request file. If the file is not valid for the file system, the status PNR_FAILED
should be returned, with a MIME type of NULL. If the file is valid but the MIME type is unknown, then the status PNR_OK
should be returned with a MIME type of NULL.
STDMETHOD(MimeTypeFound) (
THIS_
PN_RESULT status,
const char* pMimeType
) PURE;
IRMAFileMimeMapper::FindMimeType
operation. A value of PNR_OK
indicates the operation has completed successfully.
Purpose: | Controls file objects |
Implemented by: | File objects (file system plug-ins) |
Used by: | RealServer and file format plug-ins |
Header file: | rmafiles.h |
This is the main interface to file objects created by file system plug-ins. RealServer uses this interface to initialize the file object. It then passes the object to a file format plug-in that uses the object to retrieve file data for streaming. The response interface implemented by the file format plug-in is IRMAFileResponse
.
![]() |
Additional Information |
---|
See "Chapter 7: File System Plug-In" and "Chapter 5: File Format Plug- In". |
The IRMAFileObject
interface contains the following methods:
IRMAFileObject::Advise
IRMAFileObject::Close
IRMAFileObject::GetFilename
IRMAFileObject::Init
IRMAFileObject::Read
IRMAFileObject::Seek
IRMAFileObject::Write
As with all COM interfaces, the IRMAFileObject
interface inherits the following IUnknown
methods:
Passes information to the file object advising it about usage heuristics.
STDMETHOD(Advise) (
THIS_
ULONG32 ulInfo
) PURE;
Closes the file resource and releases all resources associated with the object.
STDMETHOD(Close) (
THIS
) PURE;
Returns the filename (without any path information) associated with a file object.
STDMETHOD(GetFilename) (
THIS_
REF(const char*) pFilename
) PURE;
![]() |
Note |
---|
The returned pointer's lifetime expires as soon as the caller returns from a function that was called from the RMA core (that is, when you return control to the RMA core) |
Associates a file object interface with the file response interface it should notify of operation completness. This method should also check for validity of the object (for example, by opening it if it is a local file).
STDMETHOD(Init) (
THIS_
ULONG32 ulFlags,
IRMAFileResponse* pFileResponse
) PURE;
IRMAFileResponse
interface that manages the response to various methods in this interface.
Reads a buffer of data of the specified length from the file and asynchronously returns it to the caller using the IRMAFileResponse
interface passed in to IRMAFileObject::Init
.
STDMETHOD(Read) (
THIS_
ULONG32 ulCount
) PURE;
Seeks to an offset in the file and asynchronously notifies the caller that the operation has been completed using the IRMAFileResponse
interface passed in to IRMAFileObject::Init
.
STDMETHOD(Seek) (
THIS_
ULONG32 ulOffset,
BOOL bRelative
) PURE;
TRUE
, indicates that this is a relative seek. Otherwise, this is an absolute seek.
Writes a buffer of data to the file and asynchronously notifies the caller that the operation has been completed using the IRMAFileResponse
interface passed in to IRMAFileObject::Init
.
STDMETHOD(Write) (
THIS_
IRMABuffer* pBuffer
) PURE;
IRMABuffer
interface that manages the data to be written to the file.
Purpose: | Provides for removing of files |
Implemented by: | File objects (file system plug-ins) |
Used by: | Any component with access to file objects |
Header file: | rmafiles.h |
This interface is queried from an object that supports the IRMAFileObject
interface. Call the IRMAFileRemove::Remove
method to delete the file from the file system.
![]() |
Note |
---|
Not all filesystem plug-ins implement this feature. |
The IRMAFileRemove
interface contains the IRMAFileRemove::Remove
method.
As with all COM interfaces, the IRMAFileRemove
interface inherits the following IUnknown
methods:
Removes a file from the file system.
STDMETHOD(Remove) (
THIS
) PURE;
Purpose: | Provides for renaming of files |
Implemented by: | File objects (file system plug-ins) |
Used by: | Any component with access to file objects |
Header file: | rmafiles.h |
This interface is queried from an object that supports the IRMAFileObject
interface. Call the IRMAFileRename::Rename
method to rename the file in the file system.
![]() |
Note |
---|
Not all filesystem plug-ins implement this feature. |
The IRMAFileRename
interface contains the IRMAFileRename::Rename
method.
As with all COM interfaces, the IRMAFileRename
interface inherits the following IUnknown
methods:
STDMETHOD(Rename) (
THIS_
const char* pNewFileName
) PURE;
Purpose: | Informs file format plug-ins of finished file operations |
Implemented by: | File format plug-ins |
Used by: | File objects (file system plug-ins) |
Header file: | rmafiles.h |
This is the response interface to IRMAFileObject
, the main interface to file objects created by a file system plug-in. A file format plug-in uses IRMAFileObject
to seek for and read file data on a file system. The file format plug-in implements the IRMAFileResponse
interface to receive asynchronous notification that the file object has finished a file operation.
![]() |
Additional Information |
---|
See "Chapter 7: File System Plug-In" and "Chapter 5: File Format Plug- In". |
The IRMAFileResponse
interface contains the following methods:
IRMAFileResponse::CloseDone
IRMAFileResponse::InitDone
IRMAFileResponse::ReadDone
IRMAFileResponse::SeekDone
IRMAFileResponse::WriteDone
As with all COM interfaces, the IRMAFileResponse
interface inherits the following IUnknown
methods:
Indicates the IRMAFileObject::Close
method has completed.
STDMETHOD(CloseDone) (
THIS_
PN_RESULT status
) PURE;
IRMAFileObject::Close
operation. A value of PNR_OK
indicates the operation has completed successfully.
Indicates the IRMAFileObject::Init
method has completed. If the file is not valid for the file system, return a status of PNR_FAILED
.
STDMETHOD(InitDone) (
THIS_
PN_RESULT status
) PURE;
IRMAFileObject::Init
operation. A value of PNR_OK
indicates the operation has completed successfully.
Indicates the last read from the file has completed and a buffer is available.
STDMETHOD(ReadDone) (
THIS_
PN_RESULT status,
IRMABuffer* pBuffer
) PURE;
IRMAFileObject::Read
operation. A value of PNR_OK
indicates the operation has completed successfully.
IRMABuffer
interface that manages the data that was read from the file.
Indicates the last seek in the file has completed.
STDMETHOD(SeekDone) (
THIS_
PN_RESULT status
) PURE;
IRMAFileObject::Seek
operation. A value of PNR_OK
indicates the operation has completed successfully.
Indicates the last write to the file has completed.
STDMETHOD(WriteDone) (
THIS_
PN_RESULT status
) PURE;
IRMAFileObject::Write
operation. A value of PNR_OK
indicates the operation has completed successfully.
Purpose: | Requests file statistics from the file system plug-ins |
Implemented by: | File objects (file system plug-ins) |
Used by: | File format plug-ins |
Header file: | rmafiles.h |
A file format plug-in uses this interface to request file statistics, such as file size and creation time, from a file object. The file object then uses the response interface IRMAFileStatResponse
to send the asynchronous response data to the file format plug-in.
![]() |
Additional Information |
---|
See "Chapter 5: File Format Plug-In". |
The IRMAFileStat
interface contains the IRMAFileStat::Stat
method.
As with all COM interfaces, the IRMAFileStat
interface inherits the following IUnknown
methods:
STDMETHOD(Stat) (
THIS_
IRMAFileStatResponse* pFileStatResponse
) PURE;
IRMAFileStatResponse
interface that manages the file statistics.
Purpose: | Sends file statistics to file format plug-ins |
Implemented by: | File format plug-ins |
Used by: | File objects (file system plug-ins) |
Header file: | rmafiles.h |
This is the response interface to IRMAFileStat
, which the file format plug-in can use to request file statistics, such as file size and creation time, from a file object. The file format plug-in implements IRMAFileStatResponse
to receive the asynchronous response data from the file object.
![]() |
Additional Information |
---|
See "Chapter 5: File Format Plug-In". |
The IRMAFileStatResponse
interface contains the IRMAFileStatResponse::StatDone
method.
As with all COM interfaces, the IRMAFileStatResponse
interface inherits the following IUnknown
methods:
Returns the file status information requested by the IRMAFileStat::Stat
method.
STDMETHOD(StatDone) (
THIS_
PN_RESULT status,
UINT32 ulSize,
UINT32 ulCreationTime,
UINT32 ulAccessTime,
UINT32 ulModificationTime,
UINT32 ulMode
) PURE;
IRMAFileStat::Stat
operation. A value of PNR_OK
indicates the operation has completed successfully.
Purpose: | Gets file objects for relative files |
Implemented by: | File system manager objects (RealSystem architecture) |
Used by: | File format plug-ins, RealServer |
Header file: | rmafiles.h |
A file format plug-in can create a file system manager object and use this interface if it needs to create additional file objects for a file, or access a different file or set of files residing in locations relative to a requested file. The file system manager object requests new file objects from the original file object through IRMAGetFileFromSamePool
. It passes the file format plug-in pointers to the relative file objects through IRMAFileSystemManagerResponse
.
![]() |
Note |
---|
A file format plug-in should use only the IRMAFileSystemManager::Init and
IRMAFileSystemManager::GetRelativeFileObject methods. The other
methods are for use primarily by RealServer.
|
![]() |
Additional Information |
---|
See "Chapter 5: File Format Plug-In". See also IRMADirHandler .
|
The IRMAFileSystemManager
interface contains the following methods:
IRMAFileSystemManager::GetDirObjectFromURL
IRMAFileSystemManager::GetFileObject
IRMAFileSystemManager::GetNewFileObject
IRMAFileSystemManager::GetRelativeFileObject
IRMAFileSystemManager::Init
As with all COM interfaces, the IRMAFileSystemManager
interface inherits the following IUnknown
methods:
This method is no longer used and should return PNR_NOTIMPL
.
STDMETHOD(GetDirObjectFromURL) (
THIS_
const char* pURL
) PURE;
Attempts to locate an existing file using the DoesExist
method in each file system's objects, and returns that object through IRMAFileSystemManagerResponse::FileObjectReady
.
STDMETHOD(GetFileObject) (
THIS_
IRMARequest* pRequest,
IRMAAuthenticator* pAuthenticator
) PURE;
Attempts to create a new file. The first file system that matches the mount point or protocol for the path in the request object creates the file which is then returned through IRMAFileSystemManagerResponse::FileObjectReady
. This is especially useful if you want to open a brand new file for writing. This method is similar to IRMAFileSystemManager::GetFileObject
except that no DoesExist
checks are done.
STDMETHOD(GetNewFileObject) (
THIS_
IRMARequest* pRequest,
IRMAAuthenticator* pAuthenticator
) PURE;
Information not yet available at publication.
STDMETHOD(GetRelativeFileObject) (
THIS_
IUnknown* pOriginalObject,
const char* pPath
) PURE;
IUnknown
interface that identifies the instance of the origin file object.
Associates a file system manager response interface to this file system manager interface.
STDMETHOD(Init) (
THIS_
IRMAFileSystemManagerResponse* pFileManagerResponse
) PURE;
IRMAFileSystemManagerResponse
interface that manages the response to various methods in this interface.
Purpose: | Receives pointers to relative file objects |
Implemented by: | File format plug-ins, RealServer |
Used by: | File system manager objects (RealSystem architecture) |
Header file: | rmafiles.h |
This is the response interface to IRMAFileSystemManager
, which a file format plug-in uses to get relative file objects. The plug-in implements IRMAFileSystemManagerResponse
to receive pointers to the relative file objects.
![]() |
Additional Information |
---|
See "Chapter 5: File Format Plug-In". See also IRMADirHandlerResponse. |
The IRMAFileSystemManagerResponse
interface contains the following methods:
IRMAFileSystemManagerResponse::DirObjectReady
IRMAFileSystemManagerResponse::FileObjectReady
IRMAFileSystemManagerResponse::InitDone
As with all COM interfaces, the IRMAFileSystemManagerResponse
interface inherits the following IUnknown
methods:
This method is no longer used and should return PNR_NOTIMPL
.
STDMETHOD(DirObjectReady) (
THIS_
PN_RESULT status,
IUnknown* pDirObject
) PURE;
Information not yet available at publication.
STDMETHOD(FileObjectReady) (
THIS_
PN_RESULT status,
IUnknown* pObject
) PURE;
PNR_OK
indicates the operation has completed successfully.
IUnknown
interface that identifies the instance of the file object.
Indicates the IRMAFileSystemManager::Init
method has completed.
STDMETHOD(InitDone) (
THIS_
PN_RESULT status
) PURE;
IRMAFileSystemManager::Init
operation. A value of PNR_OK
indicates the operation has completed successfully.
Purpose: | Controls file system plug-ins |
Implemented by: | File system plug-ins |
Used by: | RealServer |
Header file: | rmafiles.h |
All file system plug-ins must implement this interface. RealServer uses this interface to initialize the plug-ins. It calls the IRMAFileSystemObject::CreateFile
method to create file objects accessed through IRMAFileObject
.
![]() |
Additional Information |
---|
See "Chapter 7: File System Plug-In". |
The IRMAFileSystemObject
interface contains the following methods:
IRMAFileSystemObject::CreateDir
IRMAFileSystemObject::CreateFile
IRMAFileSystemObject::GetFileSystemInfo
IRMAFileSystemObject::InitFileSystem
As with all COM interfaces, the IRMAFileSystemObject
interface inherits the following IUnknown
methods:
This method is no longer used and should return PNR_NOTIMPL
.
STDMETHOD(CreateDir) (
THIS_
IUnknown** ppDirObject
) PURE;
Creates a new file object that manages all of the file I/O functionality of this class. This file object is eventually handed off to a file format plug-in that manages file I/O through this file object. This method is called when a URL with a protocol associated with this plug-in is opened.
STDMETHOD(CreateFile) (
THIS_
IUnknown** ppFileObject
) PURE;
IUnknown
interface that identifies the instance of the file object that was created.
Returns crucial information required to associate this plug-in with a given protocol. This information tells the core which file system plug-in to use for a particular protocol.
STDMETHOD(GetFileSystemInfo) (
THIS_
REF(const char*) pShortName,
REF(const char*) pProtocol
) PURE;
pShortName = "pn-local"
.
Performs any additional initialization steps required for the file system. It is called prior to the IRMAFileSystemObject::CreateFile
request. Any options provided usually refer to mounting options related to the server, such as base path or authentication preferences.
STDMETHOD(InitFileSystem) (
THIS_
IRMAValues* pOptions
) PURE;
Purpose: | Controls the source shown in the browser. |
Implemented by: | File format plug-ins |
Used by: | ViewSource |
Header file: | rmavsrc.h |
This interface controls the source shown in the browser when a user attempts to view the source of a particular implementer's data type. The response interface is IRMAFileViewSourceResponse
.
The IRMAFileViewSource
interface contains the following methods:
As with all COM interfaces, the IRMAFileViewSource
interface inherits the following IUnknown
methods:
Closes the view source interface.
STDMETHOD(Close) (
THIS
) PURE;
Queries for the source to be viewed.
STDMETHOD(GetSource) (
THIS
) PURE;
Provides the information required to view the source information.
STDMETHOD(InitViewSource) (
THIS_
IRMAFileObject* pFileObject,
IRMAFileViewSourceResponse* pResp,
SOURCE_TYPE sourceType,
IRMAValues* pOptions
) PURE;
IRMAFileObject
interface that manages the file object whose source is to be viewed.
IRMAFileViewSourceResponse
interface that manages the responses to this interface.
SOURCE_TYPE
enumerator that specifies what type of source is to be viewed. The following file formats are currently supported:
IRMAValues
interface that manages information about the context from which view source was called. This information includes:
FALSE
, instructs the implementor of this interface to show the full paths for any embedded links.
Purpose: | Returns the source information. |
Implemented by: | ViewSource |
Used by: | File format plug-in |
Header file: | rmavsrc.h |
This is the response interface for the IRMAFileViewSource
interface.
The IRMAFileViewSourceResponse
interface contains the following methods:
IRMAFileViewSourceResponse::CloseDone
IRMAFileViewSourceResponse::InitDone
IRMAFileViewSourceResponse::SourceReady
As with all COM interfaces, the IRMAFileViewSourceResponse
interface inherits the following IUnknown
methods:
Returns the status of the close operation.
STDMETHOD(CloseDone) (
THIS_
PN_RESULT status
) PURE;
IRMAFileViewSource::Close
operation. A value of PNR_OK
indicates the operation has completed successfully.
Returns the status of the intialization operation.
STDMETHOD(InitDone) (
THIS_
PN_RESULT status
) PURE;
IRMAFileViewSource::InitViewSource
operation. A value of PNR_OK
indicates the operation has completed successfully.
Indicates the status of the operation and, if successful, returns a pointer to the source information.
STDMETHOD(SourceReady) (
THIS_
PN_RESULT status,
IRMABuffer* pSource
) PURE;
IRMAFileViewSource::GetSource
operation. A value of PNR_OK
indicates the operation has completed successfully.
IRMABuffer
interface that manages the source information.
Purpose: | Lets file format plug-ins communicate with RealSystem |
Implemented by: | RealSystem architecture |
Used by: | File format and broadcast plug-ins |
Header file: | rmaformt.h |
This is the response interface to IRMAFileFormatObject
and IRMABroadcastFormatObject
. During plug-in intialization, RealServer or the RealSystem Client (with file format plug-ins only) sets itself up as each plug-in's response object. Plug-ins then use this interface to pass the system stream information.
![]() |
Additional Information |
---|
See "Chapter 5: File Format Plug-In" or "Chapter 8: Broadcast Plug-in". |
The IRMAFormatResponse
interface contains the following methods:
IRMAFormatResponse::FileHeaderReady
IRMAFormatResponse::InitDone
IRMAFormatResponse::PacketReady
IRMAFormatResponse::SeekDone
IRMAFormatResponse::StreamDone
IRMAFormatResponse::StreamHeaderReady
As with all COM interfaces, the IRMAFormatResponse
interface inherits the following IUnknown
methods:
Indicates whether the request for a file header completed successfully and, if so, returns the file header.
STDMETHOD(FileHeaderReady) (
THIS_
PN_RESULT status,
IRMAValues* pHeader
) PURE;
PNR_OK
, the call completed successfully.
IRMAValues
interface that manages the file header information.
Indicates whether the format object initialization completed successfully.
STDMETHOD(InitDone) (
THIS_
PN_RESULT status
) PURE;
PNR_OK
, the call completed successfully.
Indicates whether the request for a packet completed successfully and, if so, passes the packet back to the RMA core.
STDMETHOD(PacketReady) (
THIS_
PN_RESULT status,
IRMAPacket* pPacket
) PURE;
PNR_OK
, the call completed successfully.
IRMAPacket
interface that manages the packet data.
Indicates whether the seek to a different part of the time line completed successfully.
STDMETHOD(SeekDone) (
THIS_
PN_RESULT status
) PURE;
PNR_OK
, the call completed successfully.
Indicates no more packets are available for this stream.
STDMETHOD(StreamDone) (
THIS_
UINT16 unStreamNumber
) PURE;
Indicates whether the request for a stream header completed successfully and, if so, returns the stream header.
STDMETHOD(StreamHeaderReady) (
THIS_
PN_RESULT status,
IRMAValues* pHeader
) PURE;
PNR_OK
, the call completed successfully.
IRMAValues
interface that manages the stream header information.
Purpose: | Provides storage of player GUID data for player authentication |
Implemented by: | Database plug-in |
Used by: | Database user |
Header file: | rmadb.h |
The response interface is IRMAGUIDDBManagerResponse
.
The IRMAGUIDDBManager
interface contains the following methods:
As with all COM interfaces, the IRMAGUIDDBManager
interface inherits the following IUnknown
methods:
Gets the associated player GUID from a user. If the GUID is set to all zeroes because GUID logging has been disabled by either the client or the server, IRMAGUIDDBManagerResponse::GetPrincipalIDFromGUIDDone
will not return a valid user ID.
STDMETHOD(GetPrincipalIDFromGUID) (
THIS_
IRMAGUIDDBManagerResponse* pGUIDDBManagerResponseNew,
IRMABuffer* pBufferGUID
) PURE;
IRMAGUIDDBManagerResponse
interface that manages the response to this method.
IRMABuffer
interface that manages the player GUID.
Associates a player GUID with a user. If GUID logging has been disabled by the server or the client, the player GUID will be set to all zeroes.
STDMETHOD(SetGUIDForPrincipalID) (
THIS_
IRMAGUIDDBManagerResponse* pGUIDDBManagerResponseNew,
IRMABuffer* pBufferPrincipalID,
IRMABuffer* pBufferGUID
) PURE;
IRMAGUIDDBManagerResponse
interface that manages the response to this method.
IRMABuffer
interface that manages the ID of the user.
IRMABuffer
interface that manages the player GUID.
Purpose: | Manages player GUID data |
Implemented by: | Database user |
Used by: | Database plug-in |
Header file: | rmadb.h |
The IRMAGUIDDBManagerResponse
interface contains the following methods:
IRMAGUIDDBManagerResponse::GetPrincipalIDFromGUIDDone
IRMAGUIDDBManagerResponse::SetGUIDForPrincipalIDDone
As with all COM interfaces, the IRMAGUIDDBManagerResponse
interface inherits the following IUnknown
methods:
Returns the user ID associated with the indicated player GUID.
STDMETHOD(GetPrincipalIDFromGUIDDone) (
THIS_
PN_RESULT ResultStatus,
IRMABuffer* pBufferGUID,
IRMABuffer* pBufferPrincipalID
) PURE;
IRMAGUIDDBManager::GetPrincipalIDFromGUID
operation. A value of PNR_OK
indicates the operation has completed successfully.
IRMABuffer
interface that manages the player GUID.
IRMABuffer
interface that manages the user ID.
Reports the status of the call to IRMAGUIDDBManager::SetGUIDForPrincipalID
.
STDMETHOD(SetGUIDForPrincipalIDDone) (
THIS_
PN_RESULT ResultStatus,
IRMABuffer* pBufferPrincipalID
) PURE;
IRMAGUIDDBManager::SetGUIDForPrincipalID
operation. A value of PNR_OK
indicates the operation has completed successfully.
IRMABuffer
interface that manages the user ID.
Purpose: | Indicates that IRMAPlugin::InitPlugin should be called immediately |
Implemented by: | Plug-ins |
Used by: | Client/server core |
Header file: | rmaplugn.h |
The IRMAGenericPlugin
interface contains the IRMAGenericPlugin::IsGeneric
method.
As with all COM interfaces, the IRMAGenericPlugin
interface inherits the following IUnknown
methods:
Information not yet available at publication.
STDMETHOD(IsGeneric) (
THIS_
REF(BOOL) bIsGeneric
) PURE;
Purpose: | Requests file objects for relative files |
Implemented by: | File objects (file system plug-ins) |
Used by: | File system manager objects (RealSystem architecture) |
Header file: | rmafiles.h |
When a file format plug-in needs to access a relative file, it creates an IRMAFileSystemManager
object that uses the IRMAGetFileFromSamePool
interface on the original file object to request a new file object. The original file object then returns a pointer to the new, uninitialized file object through IRMAGetFileFromSamePoolResponse
.
![]() |
Additional Information |
---|
See "Chapter 5: File Format Plug-In". |
The IRMAGetFileFromSamePool
interface contains the IRMAGetFileFromSamePool::GetFileObjectFromPool
method.
As with all COM interfaces, the IRMAGetFileFromSamePool
interface inherits the following IUnknown
methods:
Gets another file object from the same pool.
STDMETHOD(GetFileObjectFromPool) (
THIS_
IRMAGetFileFromSamePoolResponse* response
) PURE;
IRMAGetFileFromSamePoolResponse
interface that manages the new, uninitialized file object.
Purpose: | Returns pointers to relative file objects |
Implemented by: | File system manager objects (RealSystem architecture) |
Used by: | File objects (file system plug-ins) |
Header file: | rmafiles.h |
This is the response interface to IRMAGetFileFromSamePool
. A file object uses it to return to an IRMAFileSystemManager
object a pointer to a new relative file object.
![]() |
Additional Information |
---|
See "Chapter 7: File System Plug-In". |
The IRMAGetFileFromSamePoolResponse
interface contains the IRMAGetFileFromSamePoolResponse::FileObjectReady
method.
As with all COM interfaces, the IRMAGetFileFromSamePoolResponse
interface inherits the following IUnknown
methods:
Indicates whether the request for a new file object completed successfully and returns another file object from the same pool.
STDMETHOD(FileObjectReady) (
THIS_
PN_RESULT status,
IUnknown* ppUnknown
) PURE;
IRMAGetFileFromSamePool::GetFileObjectFromPool
operation. If this parameter is PNR_OK
, the call completed successfully.
IUnknown
interface that identifies the instance of the file object.
Purpose: | Manipulates tracks in a group. |
Implemented by: | Player object (Client core) |
Used by: | IRMAGroupManager |
Header file: | rmagroup.h |
IRMAGroupManager
uses this interface to add a track to a group; remove a track from a group; start or get a track in a group; get the number of tracks in a group; and, get or set properties of a group.
![]() |
Additional Information |
---|
See also IRMAGroupSink .
|
The IRMAGroup
interface contains the following methods:
IRMAGroup::AddTrack
IRMAGroup::GetGroupProperties
IRMAGroup::GetTrack
IRMAGroup::GetTrackCount
IRMAGroup::RemoveTrack
IRMAGroup::SetGroupProperties
As with all COM interfaces, the IRMAGroup
interface inherits the following IUnknown
methods:
STDMETHOD(AddTrack) (
THIS_
IRMAValues* pTrack
) PURE;
IRMAValues
interface that manages the tracks to add.
Gets any group-specific information. This information is returned through an IRMAValues
interface. This method can return NULL.
STDMETHOD_(IRMAValues*, GetGroupProperties) (
THIS
) PURE;
Gets the indicated track in this group.
STDMETHOD(GetTrack) (
THIS_
UINT16 uTrackIndex,
REF(IRMAValues*) pTrack
) PURE;
IRMAValues
interface that manages the track.
Gets the number of tracks within this group.
STDMETHOD_(UINT16,GetTrackCount) (
THIS
) PURE;
Removes an already added track.
STDMETHOD(RemoveTrack) (
THIS_
UINT16 uTrackIndex
) PURE;
Sets any group-specific information, such as title, author, copyright, and so on.
STDMETHOD(SetGroupProperties) (
THIS_
IRMAValues* pProperties
) PURE;
IRMAValues
interface that manages the group-specific information.
Purpose: | Manipulates groups and sinks. |
Implemented by: | IRMAPlayer object |
Used by: | Top-level client or rendering plug-ins |
Header file: | rmagroup.h |
A top-level client or rendering plug-in uses this interface to add or remove sinks; create or add groups; get, set, or remove groups, or get the number of groups in a presentation.
![]() |
Additional Information |
---|
See "Chapter 20: Top-Level Client" or "Chapter 6: Rendering Plug-In". |
The IRMAGroupManager
interface contains the following methods:
IRMAGroupManager::AddGroup
IRMAGroupManager::AddSink
IRMAGroupManager::CreateGroup
IRMAGroupManager::GetCurrentGroup
IRMAGroupManager::GetGroup
IRMAGroupManager::GetGroupCount
IRMAGroupManager::GetPresentationProperties
IRMAGroupManager::RemoveGroup
IRMAGroupManager::RemoveSink
IRMAGroupManager::SetCurrentGroup
IRMAGroupManager::SetPresentationProperties
As with all COM interfaces, the IRMAGroupManager
interface inherits the following IUnknown
methods:
Adds a group to the presentation.
STDMETHOD(AddGroup) (
THIS_
IRMAGroup* pGroup
) PURE;
IRMAGroup
interface that manages the group to be added.
Adds a sink to get notifications about any tracks or groups being added to the presentation.
STDMETHOD(AddSink) (
THIS_
IRMAGroupSink* pGroupSink
) PURE;
IRMAGroupSink
interface that manages the notifications.
STDMETHOD(CreateGroup) (
THIS_
REF(IRMAGroup*) pGroup
) PURE;
IRMAGroup
interface that manages the group.
STDMETHOD(GetCurrentGroup) (
THIS_
REF(UINT16) uGroupIndex
) PURE;
Gets the indicated group in the presentation
STDMETHOD(GetGroup) (
THIS_
UINT16 uGroupIndex,
REF(IRMAGroup*) pGroup
) PURE;
IRMAGroup
interface that manages the group.
Gets the number of groups within the presentation.
STDMETHOD_(UINT16,GetGroupCount) (
THIS
) PURE;
Gets any presentation information. This information is returned in the indicated IRMAValues
interface. This method can return NULL.
STDMETHOD_(IRMAValues*, GetPresentationProperties) (
THIS
) PURE;
Removes an already-added group.
STDMETHOD(RemoveGroup) (
THIS_
UINT16 uGroupIndex
) PURE;
STDMETHOD(RemoveSink) (
THIS_
IRMAGroupSink* pGroupSink
) PURE;
IRMAGroupSink
interface to be removed.
Plays the indicated group in the presentation.
STDMETHOD(SetCurrentGroup) (
THIS_
UINT16 uGroupIndex
) PURE;
Sets any presentation information, such as title, author, copyright, and so on.
STDMETHOD(SetPresentationProperties) (
THIS_
IRMAValues* pProperties
) PURE;
IRMAValues
interface that manages the presentation information.
Purpose: | Receives notifications of tracks and groups in a presentation. |
Implemented by: | Top-level client or rendering plug-ins |
Used by: | Top-level client |
Header file: | rmagroup.h |
A top-level client can use this interface to receive notifications of tracks added to a group, tracks removed from a group, tracks started or stopped in a group, and groups added to or removed from a presentation.
![]() |
Additional Information |
---|
See "Chapter 20: Top-Level Client" or "Chapter 6: Rendering Plug-In". |
The IRMAGroupSink
interface contains the following methods:
IRMAGroupSink::AllGroupsRemoved
IRMAGroupSink::CurrentGroupSet
IRMAGroupSink::GroupAdded
IRMAGroupSink::GroupRemoved
IRMAGroupSink::TrackAdded
IRMAGroupSink::TrackRemoved
IRMAGroupSink::TrackStarted
IRMAGroupSink::TrackStopped
As with all COM interfaces, the IRMAGroupSink
interface inherits the following IUnknown
methods:
Indicates all groups have been removed from the current presentation.
STDMETHOD(AllGroupsRemoved) (
THIS
) PURE;
Indicates this group is being currently played in the presentation.
STDMETHOD(CurrentGroupSet) (
THIS_
UINT16 uGroupIndex,
IRMAGroup* pGroup
) PURE;
IRMAGroup
interface that manages the group.
Indicates a new group is being added to the presentation.
STDMETHOD(GroupAdded) (
THIS_
UINT16 uGroupIndex,
IRMAGroup* pGroup
) PURE;
IRMAGroup
interface that manages the indicated group.
Indicates a group is being removed from the presentation.
STDMETHOD(GroupRemoved) (
THIS_
UINT16 uGroupIndex,
IRMAGroup* pGroup
) PURE;
IRMAGroup
interface that manages the group.
Indicates a new track is being added to a group.
STDMETHOD(TrackAdded) (
THIS_
UINT16 uGroupIndex,
UINT16 uTrackIndex,
IRMAValues* pTrack
) PURE;
IRMAValues
interface that manages the track information.
Indicates a track is being removed from a group.
STDMETHOD(TrackRemoved) (
THIS_
UINT16 uGroupIndex,
UINT16 uTrackIndex,
IRMAValues* pTrack
) PURE;
IRMAValues
interface that manages the track.
Indicates a track is being started (so you can get the duration, for example).
STDMETHOD(TrackStarted) (
THIS_
UINT16 uGroupIndex,
UINT16 uTrackIndex,
IRMAValues* pTrack
) PURE;
IRMAValues
interface that manages the track being started.
Indicates a track is being stopped.
STDMETHOD(TrackStopped) (
THIS_
UINT16 uGroupIndex,
UINT16 uTrackIndex,
IRMAValues* pTrack
) PURE;
IRMAValues
interface that manages the track being stopped.
Purpose: | Opens a specified URL in the browser |
Implemented by: | RealSystem Client |
Used by: | Rendering plug-ins |
Header file: | rmahyper.h |
A rendering plug-in can use this interface to display a URL at a specified time in the stream. When the plug-in issues a hypernavigation request, the default Web browser opens. If the browser is open already, the target URL displays in the current window. The plug-in can also specify that the URL display in a specific frame of the current browser window through the IRMAHyperNavigate::GoToURL
method.
![]() |
Additional Information |
---|
See "Hypernavigating". |
The IRMAHyperNavigate
interface contains the IRMAHyperNavigate::GoToURL
method.
As with all COM interfaces, the IRMAHyperNavigate
interface inherits the following IUnknown
methods:
Opens the default Web browser and displays the target URL.
STDMETHOD(GoToURL) (
THIS_
const char* pURL,
const char* pTarget
) PURE;
http://www.real.com
.
Purpose: | Sends any logging information back to the server |
Implemented by: | RealSystem client |
Used by: | Rendering plug-ins |
Header file: | rmacore.h |
This interface is used primarily by renderers for a given source to send statistical information back to the server. The information sent back to the server appears in the server's access log. This interface can be queried from IRMAStreamSource
.
The IRMAInfoLogger
interface contains the IRMAInfoLogger::LogInformation
method.
As with all COM interfaces, the IRMAInfoLogger
interface inherits the following IUnknown
methods:
Logs any user-defined information in the form of an action and associated data.
STDMETHOD(LogInformation) (
THIS_
const char* pAction,
const char* pData
) PURE;
Purpose: | Notifies RealSystem of support for interrupt time execution |
Implemented by: | Renderers, callbacks |
Used by: | RealSystem client |
Header file: | rmaengin.h |
A component such as a plug-in can implement this optional interface to notify RealSystem that it is safe for the RealSystem to call into this plug-in from multiple threads. On a Macintosh, this interface notifies RealSystem that it supports interrupt time execution. No support is the default if this interface is not implemented.
![]() |
Additional Information |
---|
See Apple's Deferred Task Manager notes for restrictions on what may be executed at interrupt time. |
The IRMAInterruptSafe
interface contains the IRMAInterruptSafe::IsInterruptSafe
method.
As with all COM interfaces, the IRMAInterruptSafe
interface inherits the following IUnknown
methods:
Determines if interrupt time execution is supported. The component returns TRUE if interrupt time execution is supported. Returns FALSE if interrupt time execution is not supported.
STDMETHOD_(BOOL,IsInterruptSafe) (
THIS
) PURE;
Purpose: | Notifies components when entering or leaving execution on the main application thread (interrupt task on the Macintosh) |
Implemented by: | RealSystem client |
Used by: | RealSystem core, plug-in components |
Header file: | rmaengin.h |
A component such as a plug-in can implement this optional interface to determine if the RealSystem core is at interrupt time or is executing on a thread other than the main application thread. Top-level clients can also use this interface for the client core to aloways execute on the main application thread.
![]() |
Additional Information |
---|
See Apple's Deferred Task Manager for more information about interrupt tasks. |
The IRMAInterruptState
interface contains the following methods:
IRMAInterruptState::AtInterruptTime
IRMAInterruptState::EnableInterrupt
IRMAInterruptState::EnterInterruptState
IRMAInterruptState::IsInterruptEnabled
IRMAInterruptState::LeaveInterruptState
As with all COM interfaces, the IRMAInterruptState
interface inherits the following IUnknown
methods:
Determines whether the core is currently at interrupt task time. This method returns TRUE
if it is interrupt task time.
STDMETHOD_(BOOL,AtInterruptTime) (
THIS
) PURE;
Enables or disables interrupt time processsing.
THIS_
BOOL bEnable
) PURE;
TRUE
, enables interrupt time processing. If FALSE
, disables interrupt time processing.
![]() |
Note |
---|
On the Macintosh, interrupt time processing is always on. |
Determines if a deferred/interrupt task is being started.
STDMETHOD(EnterInterruptState) (
THIS
) PURE;
Determines if the core is currently interrupt enabled. If this method returns TRUE
, the core is currently interrupt enabled.
STDMETHOD_(BOOL, IsInterruptEnabled) (
THIS
) PURE;
Determines if a deferred/interrupt task is being left.
STDMETHOD(LeaveInterruptState) (
THIS
) PURE;
This interface is currently not implemented and is intended for future use.
This interface is currently not implemented and is intended for future use.
This interface is currently not implemented and is intended for future use.
Purpose: | Receives notice of TCP connections on a port |
Implemented by: | Any component |
Used by: | TCP listen object (Network Services) |
Header file: | rmaengin.h |
Used with Network Services, this is the response interface to IRMAListenSocket
. After the component creates a listen object with IRMANetworkServices
and initializes the object for a specific port with IRMAListenSocket
, the listen object notifies the component through this interface when a TCP connection is made on that port.
![]() |
Additional Information |
---|
See "Chapter 14: Network Services". See also IRMATCPResponse .
|
The IRMAListenResponse
interface contains the IRMAListenResponse::NewConnection
method.
As with all COM interfaces, the IRMAListenResponse
interface inherits the following IUnknown
methods:
Indicates whether a TCP connection has been made on the port.
STDMETHOD(NewConnection) (
THIS_
PN_RESULT status,
IRMATCPSocket* pTCPSocket
) PURE;
IRMAListenSocket::Init
operation. If this parameter is PNR_OK
, the call completed successfully.
IRMATCPSocket
interface that manages the read and write operations to the TCP socket.
Purpose: | Sets up a component to listen for TCP connections on a port |
Implemented by: | TCP listen object (Network Services) |
Used by: | Any component |
Header file: | rmaengin.h |
This interface is part of Network Services. Any component that needs to listen for TCP connections on a RealServer port can use this interface. The component first creates a listen object with IRMANetworkServices
, then initializes the object for a specific port with this interface. The listen object then notifies the component through IRMAListenResponse
when a TCP connection is made on that port.
![]() |
Additional Information |
---|
See "Chapter 14: Network Services". See also IRMATCPSocket .
|
The IRMAListenSocket
interface contains the IRMAListenSocket::Init
method.
As with all COM interfaces, the IRMAListenSocket
interface inherits the following IUnknown
methods:
Initializes the listen object for a specific port.
STDMETHOD(Init) (
THIS_
UINT32 ulLocalAddr,
UINT16 port,
IRMAListenResponse* pListenResponse
) PURE;
IRMAListenResponse
interface that notifies the component when a TCP connection is made on that port.