📄 rmagroup.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 + -