⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rmaallow.pas

📁 Delphi源码REAlRMSDK.rar
💻 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 + -