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

📄 rmapckts.pas

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

interface

uses
  PnTypes;

(****************************************************************************
 *
 *  $Id: rmapckts.h,v 1.27 2000/05/06 04:59:01 milko 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 Packet and Header Interface.
 *
 *)

// Define IRMAUtilities

// ASMFlags in IRMAPacket

const
  RMA_ASM_SWITCH_ON  = $01;
  {$EXTERNALSYM RMA_ASM_SWITCH_ON}
  RMA_ASM_SWITCH_OFF = $02;
  {$EXTERNALSYM RMA_ASM_SWITCH_OFF}

(****************************************************************************
 *
 *  Interface:
 *
 *	IRMABuffer
 *
 *  Purpose:
 *
 *	Basic opaque data storage buffer. Used in interfaces where
 *	object ownership is best managed through COM style reference
 *	counting.
 *
 *  IID_IRMABuffer:
 *
 *	{00001300-0901-11d1-8B06-00A024406D59}
 *
 *)

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

(*
 *  The IRMACommonClassFactory supports creating an instance
 *  of this object.
 *)

  CLSID_IRMABuffer: TGUID = '{00001300-0901-11d1-8B06-00A024406D59}';
  {$EXTERNALSYM CLSID_IRMABuffer}

type
  PIRMABuffer = ^IRMABuffer;
  {$NODEFINE PIRMABuffer}
  
  IRMABuffer = interface (IUnknown)
  ['{00001300-0901-11d1-8B06-00A024406D59}']

    function Get(var pData: UCHAR; var ulLength: ULONG32): HRESULT; stdcall;

    function Set_(var pData: UCHAR; ulLength: ULONG32): HRESULT; stdcall;

    function SetSize(ulLength: ULONG32): HRESULT; stdcall;

    function GetSize: ULONG32; stdcall;

    function GetBuffer: PUCHAR; stdcall;

  end;
  {$EXTERNALSYM IRMABuffer}

(****************************************************************************
 *
 *  Interface:
 *
 *	IRMAPacket
 *
 *  Purpose:
 *
 *	Basic data packet in the RealMedia system.
 *
 *  IID_IRMAPacket:
 *
 *	{00001301-0901-11d1-8B06-00A024406D59}
 *
 *)

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

(*
 *  The IRMACommonClassFactory supports creating an instance
 *  of this object.
 *)

  CLSID_IRMAPacket: TGUID = '{00001301-0901-11d1-8B06-00A024406D59}';
  {$EXTERNALSYM CLSID_IRMAPacket}

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

    function Get(out pBuffer: IRMABuffer; var ulTime: UINT32; var unStreamNumber: UINT16;
      var unASMFlags: UINT8; unASMRuleNumber: UINT16): HRESULT; stdcall;

    function GetBuffer: IRMABuffer; stdcall;

    function GetTime: ULONG32; stdcall;

    function GetStreamNumber: UINT16; stdcall;

    function GetASMFlags: UINT8; stdcall;

    function GetASMRuleNumber: UINT16; stdcall;

    function IsLost: BOOL; stdcall;

    function SetAsLost: HRESULT; stdcall;

    function Set_(pBuffer: IRMABuffer; ulTime: UINT32; uStreamNumber: UINT16;
      unASMFlags: UINT8; unASMRuleNumber: UINT16): HRESULT; stdcall;

  end;
  {$EXTERNALSYM IRMAPacket}

(****************************************************************************
 * 
 *  Interface:
 *
 *	IRMAPacket
 *
 *  Purpose:
 *
 *	RTP data packet in the RealMedia system.
 *
 *  IID_IRMARTPPacket:
 *
 *	{0169A731-1ED0-11d4-952B-00902742C923}
 *
 *)

const
  IID_IRMARTPPacket: TGUID = '{0169A731-1ED0-11d4-952B-00902742C923}';
  {$EXTERNALSYM IID_IRMARTPPacket}

(*
 *  The IRMACommonClassFactory supports creating an instance
 *  of this object.
 *)

  CLSID_IRMARTPPacket: TGUID = '{0169A731-1ED0-11d4-952B-00902742C923}';
  {$EXTERNALSYM CLSID_IRMARTPPacket}

type
  IRMARTPPacket = interface (IRMAPacket)
  ['{0169A731-1ED0-11d4-952B-00902742C923}']

    (*
     *	IRMARTPPacket methods
     *)

    function GetRTPTime: ULONG32; stdcall;

    function GetRTP(out pBuffer: IRMABuffer; var ulTime, ulRTPTime: UINT32;
      var unStreamNumber: UINT16; var unASMFlags: UINT8; var unASMRuleNumber: UINT16): HRESULT; stdcall;

    function SetRTP(pBuffer: IRMABuffer; ulTime, ulRTPTime: UINT32; uStreamNumber: UINT16;
      unASMFlags: UINT8; unASMRuleNumber: UINT16): HRESULT; stdcall;
      
  end;
  {$EXTERNALSYM IRMARTPPacket}

(****************************************************************************
 *
 *  Interface:
 *
 *	IRMAValues
 *
 *  Purpose:
 *
 *  	This is an interface to a generic name-value pair facility.  This
 *	is used in various places (such as stream headers).
 *
 *  IID_IRMAValues:
 *
 *	{00001302-0901-11d1-8B06-00A024406D59}
 *
 *)

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

(*
 *  The IRMACommonClassFactory supports creating an instance
 *  of this object.
 *)

  CLSID_IRMAValues: TGUID = '{00001302-0901-11d1-8B06-00A024406D59}';
  {$EXTERNALSYM CLSID_IRMAValues}

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

    (*
     * Note: That strings returned as references should be copied or
     * 	     used immediately because their lifetime is only as long as the
     * 	     IRMAValues's objects lifetime.
     *
     * Note: Your iterator will be reset once you give up control to the
     *	     RMA core (i.e. you exit whatever function gave you a time slice).
     *)

    function SetPropertyULONG32(pPropertyName: PChar; uPropertyValue: ULONG32): HRESULT; stdcall;

    function GetPropertyULONG32(pPropertyName: PChar; var uPropertyName: ULONG32): HRESULT; stdcall;

    function GetFirstPropertyULONG32(var pPropertyName: PChar; var uPropertyValue: ULONG32): HRESULT; stdcall;

    function GetNextPropertyULONG32(var pPropertyName: PChar; var uPropertyValue: ULONG32): HRESULT; stdcall;

    function SetPropertyBuffer(pPropertyName: PChar; pPropertyValue: IRMABuffer): HRESULT; stdcall;

    function GetPropertyBuffer(pPropertyName: PChar; var pPropertyValue: IRMABuffer): HRESULT; stdcall;

    function GetFirstPropertyBuffer(var pPropertyName: PChar; out pPropertyValue: IRMABuffer): HRESULT; stdcall;

    function GetNextPropertyBuffer(var pPropertyName: PChar; out pPropertyValue: IRMABuffer): HRESULT; stdcall;

    function SetPropertyCString(pPropertyName: PChar; pPropertyValue: IRMABuffer): HRESULT; stdcall;

    function GetPropertyCString(pPropertyName: PChar; out pPropertyValue: IRMABuffer): HRESULT; stdcall;

    function GetFirstPropertyCString(var pPropertyName: PChar; out pPropertyValue: IRMABuffer): HRESULT; stdcall;

    function GetNextPropertyCString(var pPropertyName: PChar; out pPropertyValue: IRMABuffer): HRESULT; stdcall;
    
  end;
  {$EXTERNALSYM IRMAValues}

(****************************************************************************
 *
 *  Interface:
 *
 *	IRMAValuesRemove
 *
 *  Purpose:
 *
 *      This interface is to add Remove methods to a class that supports
 *      IRMAValues.  All classes that support this interface will also
 *      support IRMAValues.
 *
 *
 *
 *  IID_IRMAValuesRemove:
 *
 *	{00001303-0901-11d1-8B06-00A024406D59}
 *
 *)

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

(*
 *  The IRMACommonClassFactory does not support creating an instance
 *  of this object.
 *)

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

     (************************************************************************
     *	Method:
     *	    IRMAKeyValuesRemove::Remove
     *	Purpose:
     *      Remove all items matching pKey.  (If you know what datatype you saved
     *      the key as, use the specific method.)
     *)

    function Remove(pKey: PChar): HRESULT; stdcall;

     (************************************************************************
     *	Method:
     *	    IRMAKeyValuesRemove::RemoveULONG32
     *	Purpose:
     *      Remove all ULONG32 items matching pKey.
     *)

    function RemoveULONG32(pKey: PChar): HRESULT; stdcall;

     (************************************************************************
     *	Method:
     *	    IRMAKeyValuesRemove::RemoveBuffer
     *	Purpose:
     *      Remove all Buffer items matching pKey.
     *)

    function RemoveBuffer(pKey: PChar): HRESULT; stdcall;

     (************************************************************************
     *	Method:
     *	    IRMAKeyValuesRemove::RemoveCString
     *	Purpose:
     *      Remove all CString items matching pKey.
     *)

    function RemoveCString(pKey: PChar): HRESULT; stdcall;

  end;
  {$EXTERNALSYM IRMAValuesRemove}

implementation

end.

⌨️ 快捷键说明

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