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

📄 rmaasm.pas

📁 Delphi源码REAlRMSDK.rar
💻 PAS
字号:
unit RmaAsm;

interface

uses
  PnTypes, RmaPckts;

//***************************************************************************
//
//  $Id: rmaasm.h,v 1.10 1999/01/29 18:32:10 hboone 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.
//
//
//  RealMedia Architecture Interfaces for Adaptive Stream Management and
//  Backchannel Support.
//
//

//***************************************************************************
//
//  Interface:
//
//	IRMABackChannel
//
//  Purpose:
//
//      Backchannel interface to be used by renderers and implemented by
//	FileFormat Plugins
//
//  IID_IRMABackChannel:
//
//	{00001500-0901-11d1-8B06-00A024406D59}
//
//

const
  IID_IRMABackChannel: TGUID = '{00001500-0901-11d1-8B06-00A024406D59}';
  {$EXTERNALSYM IID_IRMABackChannel}

type
  IRMABackChannel = interface (IUnknown)
  ['{00001500-0901-11d1-8B06-00A024406D59}']

    //***********************************************************************
    //	Method:
    //	    IRMABackChannel::PacketReady
    //	Purpose:
    //      A back channel packet sent from Renderer to FileFormat plugin.
    //

    function PacketReady(pPacket: IRMAPacket): HRESULT; stdcall;

  end;
  {$EXTERNALSYM IRMABackChannel}

//***************************************************************************
//
//  Interface:
//
//	IRMAASMSource
//
//  Purpose:
//
//      This interface is implemented by file formats so that they can
//	act on ASM Subscribe and Unsubscribe actions.
//
//  IID_IRMAASMSource:
//
//	{00001501-0901-11d1-8B06-00A024406D59}
//
//

const
  IID_IRMAASMSource: TGUID = '{00001501-0901-11d1-8B06-00A024406D59}';
  {$EXTERNALSYM IID_IRMAASMSource}

type
  IRMAASMSource = interface (IUnknown)
  ['{00001501-0901-11d1-8B06-00A024406D59}']

    //***********************************************************************
    //	Method:
    //	    IRMAASMSource::Subscribe
    //	Purpose:
    //      Called to inform a file format that a subscription has occurred,
    //	    to rule number uRuleNumber, for stream uStreamNumber.
    //

    function Subscribe(uStreamNumber, uRuleNumber: UINT16): HRESULT; stdcall;

    //***********************************************************************
    //	Method:
    //	    IRMAASMSource::Unsubscribe
    //	Purpose:
    //      Called to inform a file format that a unsubscription has occurred,
    //	    to rule number uRuleNumber, for stream uStreamNumber.
    //

    function Unsubscribe(uStreamNumber, uRuleNumber: UINT16): HRESULT; stdcall;

  end;
  {$EXTERNALSYM IRMAASMSource}

//***************************************************************************
//
//  Interface:
//
//	IRMAASMStreamSink
//
//  Purpose:
//	This is a advise sink for getting notification about subscriptions
//	and unsubscriptions for a stream.
//
//  IID_IRMAASMStream:
//
//	{00001503-0901-11d1-8B06-00A024406D59}
//
//

const
  IID_IRMAASMStreamSink: TGUID = '{00001503-0901-11d1-8B06-00A024406D59}';
  {$EXTERNALSYM IID_IRMAASMStreamSink}

type
  IRMAASMStreamSink = interface (IUnknown)
  ['{00001503-0901-11d1-8B06-00A024406D59}']

    //***********************************************************************
    //	Method:
    //	    IRMAASMStreamSink::OnSubscribe
    //	Purpose:
    //	    Called to inform you that a subscribe has occurred.
    //

    function OnSubscribe(uRuleNumber: UINT16): HRESULT; stdcall;

    //***********************************************************************
    //	Method:
    //	    IRMAASMStreamSink::OnUnsubscribe
    //	Purpose:
    //	    Called to inform you that a unsubscribe has occurred.
    //

    function OnUnsubscribe(uRuleNumber: UINT16): HRESULT; stdcall;

  end;
  {$EXTERNALSYM IRMAASMStreamSink}
  
//***************************************************************************
//
//  Interface:
//
//	IRMAASMStream
//
//  Purpose:
//	This interface is implemented by the client core.  Top level clients
//	renderers, etc can query for this interface off of IRMAStream.  This
//	interface allows you to subscribe and unsubscribe to certain rules,
//	and it also allows you to add a advise sink for these events.
//
//  IID_IRMAASMStream:
//
//	{00001502-0901-11d1-8B06-00A024406D59}
//
//

const
  IID_IRMAASMStream: TGUID = '{00001502-0901-11d1-8B06-00A024406D59}';
  {$EXTERNALSYM IID_IRMAASMStream}

type
  IRMAASMStream = interface (IUnknown)
  ['{00001502-0901-11d1-8B06-00A024406D59}']

    //***********************************************************************
    //	Method:
    //	    IRMAASMStream::AddASMStreamSink
    //	Purpose:
    //	    Add an advise sink for getting subscribe and unsubscribe
    //	    notifications.
    //
    
    function AddStreamSink(pASMStreamSink: IRMAASMStreamSink): HRESULT; stdcall;

    //***********************************************************************
    //	Method:
    //	    IRMAASMStream::RemoveStreamSink
    //	Purpose:
    //	    Remove an advise sink for getting subscribe and unsubscribe
    //	    notifications.
    //

    function RemoveStreamSink(pASMStreamSink: IRMAASMStreamSink): HRESULT; stdcall;

    //***********************************************************************
    //	Method:
    //	    IRMAASMStream::Subscribe
    //  Purpose:
    //      Called by renderers and possibly even top level clients to
    //	    inform the core to subscribe to a particular rule number for
    //	    this stream.
    //

    function Subscribe(uRuleNumber: UINT16): HRESULT; stdcall;

    //***********************************************************************
    //	Method:
    //	    IRMAASMStream::Unsubscribe
    //	Purpose:
    //	    Called by renderers and possibly even top level clients to
    //	    inform the core to unsubscribe to a particular rule number for
    //	    this stream.
    //
    function Unsubscribe(uRuleNumber: UINT16): HRESULT; stdcall;

  end;
  {$EXTERNALSYM IRMAASMStream}

implementation

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -