📄 rmaallow.pas
字号:
unit RmaAllow;
interface
uses
PnResult, PnTypes, RmaFiles, RmaPckts;
//***************************************************************************
//
// $Id: rmaallow.h,v 1.8 2000/05/09 07:54:08 smpatel Exp $
//
// Copyright (C) 1995-1999 RealNetworks, Inc. All rights reserved.
//
// http://www.real.com/devzone
//
// This program contains proprietary
// information of Progressive Networks, Inc, and is licensed
// subject to restrictions on use and distribution.
//
// Interfaces related to allowance plugins.
//
//
//***************************************************************************
//
// Interface:
//
// IRMAPlayerConnectionResponse
//
// Purpose:
//
// Response object for the PlayerConnectionAdviseSink.
//
// IID_IRMAPlayerConnectionResponse:
//
// {00002601-0901-11d1-8B06-00A024406D59}
//
//
const
IID_IRMAPlayerConnectionResponse: TGUID = '{00002601-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM IID_IRMAPlayerConnectionResponse}
type
IRMAPlayerConnectionResponse = interface (IUnknown)
['{00002601-0901-11d1-8B06-00A024406D59}']
function OnConnectionDone(status: PN_RESULT): HRESULT; stdcall;
function OnURLDone(status: PN_RESULT): HRESULT; stdcall;
function OnBeginDone(status: PN_RESULT): HRESULT; stdcall;
function OnStopDone(status: PN_RESULT): HRESULT; stdcall;
function OnPauseDone(status: PN_RESULT): HRESULT; stdcall;
end;
{$EXTERNALSYM IRMAPlayerConnectionResponse}
//***************************************************************************
//
// Interface:
//
// IRMAPlayerController
//
// Purpose:
//
// Object created by the server core and given to the
// IRMAPlayerConnectionResponse object so that the response object
// can control the connected player.
//
// IID_IRMAPlayerController:
//
// {00002602-0901-11d1-8B06-00A024406D59}
//
//
const
IID_IRMAPlayerController: TGUID = '{00002602-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM IID_IRMAPlayerController}
type
IRMAPlayerController = interface (IUnknown)
['{00002602-0901-11d1-8B06-00A024406D59}']
function Pause: HRESULT; stdcall;
function Resume: HRESULT; stdcall;
function Disconnect: HRESULT; stdcall;
function AlertAndDisconnect(pAlert: IRMABuffer): HRESULT; stdcall;
// HostRedirect is called by a PlayerConnectionAdviseSink to redirect
// this player to another host and/or port, for the same URL. This
// method works with both RTSP and PNA protocols.
//
function HostRedirect(pHost: IRMABuffer; nPort: UINT16): HRESULT; stdcall;
// NetworkRedirect is called by a PlayerConnectionAdviseSink to redirect
// this player to another URL. Note: This method is only available for
// redirecting an RTSP player connection to another RTSP URL.
//
function NetworkRedirect(pURL: IRMABuffer; ulSecsFromNow: UINT32): HRESULT; stdcall;
// Redirect is called by a PlayerConnectionAdviseSink to redirect
// this player to another URL on the same server. For example, if
// pPartialURL were set to "welcome.rm", the player would be redirected
// to "current_protocol://current_host:current_port/welcome.rm". This
// method works with both RTSP and PNA protocols.
//
function Redirect(pPartialURL: IRMABuffer): HRESULT; stdcall;
end;
{$EXTERNALSYM IRMAPlayerController}
//***************************************************************************
//
// Interface:
//
// IRMAPlayerConnectionAdviseSink
//
// Purpose:
//
// Advise Sink which receives notification whenever a new player
// connects to the server.
//
// IID_IRMAPlayerConnectionAdviseSink:
//
// {00002600-0901-11d1-8B06-00A024406D59}
//
//
const
IID_IRMAPlayerConnectionAdviseSink: TGUID = '{00002600-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM IID_IRMAPlayerConnectionAdviseSink}
type
IRMAPlayerConnectionAdviseSink = interface (IUnknown)
['{00002600-0901-11d1-8B06-00A024406D59}']
// OnConnection is called when a new player has connected to the
// server. If the result is PNR_OK, then the plugin will be notified
// when certain events occur in the player's life cycle.
//
function OnConnection(pResponse: IRMAPlayerConnectionResponse): HRESULT; stdcall;
// SetPlayerController is called by the server core to provide us with
// an interface which can stop, alert, redirect or otherwise control
// the player we are receiving notifications about.
//
function SetPlayerController(pPlayerController: IRMAPlayerController): HRESULT; stdcall;
// SetRegistryID is called by the server core to provide us with the
// ID for this Player in the server registry. The plugin can use this
// registry ID to find out various information about the connected player.
//
function SetRegistryID(ulPlayerRegistryID: UINT32): HRESULT; stdcall;
function OnURL(pRequest: IRMARequest): HRESULT; stdcall;
function OnBegin: HRESULT; stdcall;
function OnStop: HRESULT; stdcall;
function OnPause: HRESULT; stdcall;
function OnDone: HRESULT; stdcall;
end;
{$EXTERNALSYM IRMAPlayerConnectionAdviseSink}
//***************************************************************************
//
// Interface:
//
// IRMAPlayerConnectionAdviseSinkManager
//
// Purpose:
//
// Manages the creation of IRMAPlayerConnectionAdviseSink objects
//
// IID_IRMAPlayerConnectionAdviseSinkManager:
//
// {00002603-0901-11d1-8B06-00A024406D59}
//
//
const
IID_IRMAPlayerConnectionAdviseSinkManager: TGUID = '{00002603-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM IID_IRMAPlayerConnectionAdviseSinkManager}
type
IRMAPlayerConnectionAdviseSinkManager = interface (IUnknown)
['{00002603-0901-11d1-8B06-00A024406D59}']
function CreatePlayerConnectionAdviseSink(out pPCAdviseSink: IRMAPlayerConnectionAdviseSink): HRESULT; stdcall;
end;
{$EXTERNALSYM IRMAPlayerConnectionAdviseSinkManager}
//***************************************************************************
//
// Interface:
//
// IRMAPlayerControllerProxyRedirect
//
// Purpose:
//
// QueryInterfaced from IRMAPlayerController. Allows 305 proxy redirect
// to be issued (as per RTSP spec).
//
// IID_IRMAPlayerControllerProxyRedirect:
//
// {00002607-0901-11d1-8B06-00A024406D59}
//
//
const
IID_IRMAPlayerControllerProxyRedirect: TGUID = '{00002607-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM IID_IRMAPlayerControllerProxyRedirect}
type
IRMAPlayerControllerProxyRedirect = interface (IUnknown)
['{00002607-0901-11d1-8B06-00A024406D59}']
//
// This URL is just a hostname / port. It must be formatted like this:
// "rtsp://audio.real.com:554/".
//
// NOTE: You can *only* call this method between OnURL() and OnURLDone().
// NOTE: This method only works on RTSP connections.
//
function NetworkProxyRedirect(pURL: IRMABuffer): HRESULT; stdcall;
end;
{$EXTERNALSYM IRMAPlayerControllerProxyRedirect}
implementation
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -