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

📄 rmagroup.pas

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

interface

uses
  PnTypes, RmaPckts;

(****************************************************************************
 *
 *  $Id: rmagroup.h,v 1.15 2000/04/04 22:01:43 ping 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.
 *
 *
 *  Group Interface.
 *
 *)

(****************************************************************************
 *
 *  Interface:
 *
 *  IRMAGroup
 *
 *  Purpose:
 *
 *
 *  IID_IRMAGroup:
 *
 *  {0x00002400-0901-11d1-8B06-00A024406D59}
 *
 *)

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

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

    (************************************************************************
    *  Method:
    *      IRMAGroup::SetGroupProperties
    *  Purpose:
    *		Set any group specific information like Title Author
    *		Copyright etc.
    *)

    function SetGroupProperties(pProperties: IRMAValues): HRESULT; stdcall;

    (************************************************************************
    *  Method:
    *      IRMAGroup::GetGroupProperties
    *  Purpose:
    *		Get any group specific information. May return NULL.
    *)

    function GetGroupProperties: IRMAValues; stdcall;

    (************************************************************************
    *  Method:
    *      IRMAGroup::GetTrackCount
    *  Purpose:
    *		Get the number of tracks within this group.
    *)

    function GetTrackCount: UINT16; stdcall;

    (************************************************************************
    *  Method:
    *      IRMAGroup::GetTrack
    *  Purpose:
    *		Get ith track in this group
    *)

    function GetTrack(uTrackIndex: UINT16; out pTrack: IRMAValues): HRESULT; stdcall;

    (************************************************************************
    *  Method:
    *      IRMAGroup::AddTrack
    *  Purpose:
    *		Add Tracks to the group.
    *)

    function AddTrack(pTrack: IRMAValues): HRESULT; stdcall;

    (************************************************************************
    *  Method:
    *      IRMAGroup::RemoveTrack
    *  Purpose:
    *		Remove an already added track
    *)

    function RemoveTrack(uTrackIndex: UINT16): HRESULT; stdcall;

  end;
  {$EXTERNALSYM IRMAGroup}

(****************************************************************************
 *
 *  Interface:
 *
 *  IRMAGroupSink
 *
 *  Purpose:
 *
 *
 *  IID_IRMAGroupSink:
 *
 *  {0x00002402-0901-11d1-8B06-00A024406D59}
 *
 *)

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

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

    (************************************************************************
    *  Method:
    *      IRMAGroupSink::GroupAdded
    *  Purpose:
    *		Notification of a new group being added to the presentation.
    *)

    function GroupAdded(uGroupIndex: UINT16; pGroup: IRMAGroup): HRESULT; stdcall;

    (************************************************************************
    *  Method:
    *      IRMAGroupSink::GroupRemoved
    *  Purpose:
    *		Notification of a group being removed from the presentation.
    *)

    function GroupRemoved(uGroupIndex: UINT16; pGroup: IRMAGroup): HRESULT; stdcall;

    (************************************************************************
    *  Method:
    *      IRMAGroupSink::AllGroupsRemoved
    *  Purpose:
    *		Notification that all groups have been removed from the
    *		current presentation.
    *)

    function AllGroupsRemoved: HRESULT; stdcall;

    (************************************************************************
    *  Method:
    *      IRMAGroupSink::TrackAdded
    *  Purpose:
    *		Notification of a new track being added to a group.
    *)

    function TrackAdded(uGroupIndex, uTrackIndex: UINT16; pTrack: IRMAValues): HRESULT; stdcall;

    (************************************************************************
    *  Method:
    *      IRMAGroupSink::TrackRemoved
    *  Purpose:
    *		Notification of a track being removed from a group.
    *)

    function TrackRemoved(uGroupIndex, uTrackIndex: UINT16; pTrack: IRMAValues): HRESULT; stdcall;

    (************************************************************************
    *  Method:
    *      IRMAGroupSink::TrackStarted
    *  Purpose:
    *		Notification of a track being started (to get duration, for
    *		instance...)
    *)

    function TrackStarted(uGroupIndex, uTrackIndex: UINT16; pTrack: IRMAValues): HRESULT; stdcall;

    (************************************************************************
    *  Method:
    *      IRMAGroupSink::TrackStopped
    *  Purpose:
    *		Notification of a track being stopped
    *
    *)

    function TrackStopped(uGroupIndex, uTrackIndex: UINT16; pTrack: IRMAValues): HRESULT; stdcall;

    (************************************************************************
    *  Method:
    *      IRMAGroupSink::CurrentGroupSet
    *  Purpose:
    *		This group is being currently played in the presentation.
    *)

    function CurrentGroupSet(uGroupIndex: UINT16; pGroup: IRMAGroup): HRESULT; stdcall;

  end;
  {$EXTERNALSYM IRMAGroupSink}
  
(****************************************************************************
 *
 *  Interface:
 *
 *  IRMAGroupManager
 *
 *  Purpose:
 *
 *
 *  IID_IRMAGroupManager:
 *
 *  {0x00002401-0901-11d1-8B06-00A024406D59}
 *
 *)

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

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

    (************************************************************************
    *  Method:
    *      IRMAGroupManager::CreateGroup
    *  Purpose:
    *		Create a group
    *)

    function CreateGroup(out pGroup: IRMAGroup): HRESULT; stdcall;

    (************************************************************************
    *  Method:
    *      IRMAGroupManager::GetGroupCount
    *  Purpose:
    *		Get the number of groups within the presentation.
    *)

    function GetGroupCount: UINT16; stdcall;

    (************************************************************************
    *  Method:
    *      IRMAGroupManager::GetGroup
    *  Purpose:
    *		Get ith group in the presentation
    *)

    function GetGroup(uGroupIndex: UINT16; out pGroup: IRMAGroup): HRESULT; stdcall;

    (************************************************************************
    *  Method:
    *      IRMAGroupManager::SetCurrentGroup
    *  Purpose:
    *		Play this group in the presentation.
    *)

    function SetCurrentGroup(uGroupIndex: UINT16): HRESULT; stdcall;

    (************************************************************************
    *  Method:
    *      IRMAGroupMgr::GetCurrentGroup
    *  Purpose:
    *		Get the current group index
    *)

    function GetCurrentGroup(var uGroupIndex: UINT16): HRESULT; stdcall;

    (************************************************************************
    *  Method:
    *      IRMAGroupManager::AddGroup
    *  Purpose:
    *		Add a group to the presentation.
    *)

    function AddGroup(pGroup: IRMAGroup): HRESULT; stdcall;

    (************************************************************************
    *  Method:
    *      IRMAGroupManager::RemoveGroup
    *  Purpose:
    *		Remove an already added group
    *)

    function RemoveGroup(uGroupIndex: UINT16): HRESULT; stdcall;

    (************************************************************************
    *  Method:
    *      IRMAGroupManager::AddSink
    *  Purpose:
    *		Add a sink to get notifications about any tracks or groups
    *		being added to the presentation.
    *)

    function AddSink(pGroupSink: IRMAGroupSink): HRESULT; stdcall;

    (************************************************************************
    *  Method:
    *      IRMAGroupManager::RemoveSink
    *  Purpose:
    *		Remove Sink
    *)

    function RemoveSink(pGroupSink: IRMAGroupSink): HRESULT; stdcall;

    (************************************************************************
    *  Method:
    *      IRMAGroup::GetPresentationProperties
    *  Purpose:
    *		Get any presentation information. May return NULL.
    *)

    function GetPresentationProperties: IRMAValues; stdcall;

    (************************************************************************
    *  Method:
    *      IRMAGroup::SetPresentationProperties
    *  Purpose:
    *		Set any presentation information like Title Author
    *		Copyright etc.
    *)

    function SetPresentationProperties(pProperties: IRMAValues): HRESULT; stdcall;

  end;
  {$EXTERNALSYM IRMAGroupManager}

implementation

end.

⌨️ 快捷键说明

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