📄 rmawin.pas
字号:
unit RmaWin;
interface
uses
PnTypes, PnWinTyp, RmaPckts;
//***************************************************************************
//
// $Id: rmawin.h,v 1.51 2000/03/04 00:37:37 ahamel 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 Simple Window Interfaces.
//
//
//***************************************************************************
//
// Interface:
//
// IRMASiteWindowed
//
// Purpose:
//
// Interface for IRMASite objects which are associated with platform
// specific window objects on Microsoft Windows and X-Windows.
//
// IID_IRMASiteWindowed:
//
// {00000D01-0901-11d1-8B06-00A024406D59}
//
//
const
IID_IRMASiteWindowed: TGUID = '{00000D01-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM IID_IRMASiteWindowed}
CLSID_IRMASiteWindowed: TGUID = '{00000D01-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM CLSID_IRMASiteWindowed}
type
IRMASiteWindowed = interface (IUnknown)
['{00000D01-0901-11d1-8B06-00A024406D59}']
//
// IRMASiteWindowed methods called by site suppliers
// when they want the site associated with a
// previously created (and externally managed) window.
// This method will "sub-class" that window (Win32).
// On Unix, the site supplier must pass events from
// the externally managed window to the core via
// IRMAClientEngine::EventOccurred(). Please note that
// The PNxWindow ptr must remain in scope for the life
// of Site.
//
function AttachWindow(const pWindow: PNxWindow): HRESULT; stdcall;
function DetachWindow: HRESULT; stdcall;
//
// IRMASiteWindowed methods called by Owners of the site
// in the event that want a default top level window created
// for the site.
//
function Create(ParentWindow: Pointer; style: UINT32): HRESULT; stdcall;
function Destroy: HRESULT; stdcall;
//
// IRMASiteWindowed method. Returns actual window of the site.
//
function GetWindow: PPNxWindow; stdcall;
end;
{$EXTERNALSYM IRMASiteWindowed}
//***************************************************************************
//
// Interface:
//
// IRMASiteWindowless
//
// Purpose:
//
// Interface for IRMASite objects which are "windowless" or not
// associated with platform specific window objects.
//
// IID_IRMASiteWindowless:
//
// {00000D02-0901-11d1-8B06-00A024406D59}
//
//
const
IID_IRMASiteWindowless: TGUID = '{00000D02-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM IID_IRMASiteWindowless}
CLSID_IRMASiteWindowless: TGUID = '{00000D02-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM CLSID_IRMASiteWindowless}
type
IRMASiteWindowless = interface (IUnknown)
['{00000D02-0901-11d1-8B06-00A024406D59}']
//
// IRMASiteWindowless methods called by owners of the site.
//
function EventOccurred(const pEvent: PNxEvent): HRESULT; stdcall;
//
// IRMASiteWindowless method. Returns some parent window that
// owns the windowless site. Useful for right-click menus and
// dialog box calls.
//
function GetParentWindow: PPNxWindow; stdcall;
end;
{$EXTERNALSYM IRMASiteWindowless}
//***************************************************************************
//
// Interface:
//
// IRMASite
//
// Purpose:
//
// Interface for IRMASite objects.
//
// IID_IRMASite:
//
// {00000D03-0901-11d1-8B06-00A024406D59}
//
//
const
IID_IRMASite: TGUID = '{00000D03-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM IID_IRMASite}
IID_IRMASiteUser: TGUID = '{00000D04-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM IID_IRMASiteUser}
IID_IRMASiteWatcher: TGUID = '{00000D05-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM IID_IRMASiteWatcher}
type
IRMASiteUser = interface; // forward
IRMASiteWatcher = interface; // forward
IRMASite = interface (IUnknown)
['{00000D03-0901-11d1-8B06-00A024406D59}']
//
// IRMASite methods usually called by the "context" to
// associate users with the site, and to create child sites
// as appropriate.
//
function AttachUser(const pUser: IRMASiteUser): HRESULT; stdcall;
function DetachUser: HRESULT; stdcall;
function GetUser(out pUser: IRMASiteUser): HRESULT; stdcall;
function CreateChild(out pChildSite: IRMASite): HRESULT; stdcall;
function DestroyChild(pChildSite: IRMASite): HRESULT; stdcall;
//
// IRMASite methods called by the the "context" in which the site
// is displayed in order to manage its position. Site users should
// not generally call these methods.
//
function AttachWatcher(pWatcher: IRMASiteWatcher): HRESULT; stdcall;
function DetachWatcher: HRESULT; stdcall;
function SetPosition(position: PNxPoint): HRESULT; stdcall;
function GetPosition(var position: PNxPoint): HRESULT; stdcall;
//
// IRMASite methods called by the user of the site to get
// information about the site, and to manipulate the site.
//
function SetSize(size: PNxSize): HRESULT; stdcall;
function GetSize(var size: PNxSize): HRESULT; stdcall;
function DamageRect(rect: PNxRect): HRESULT; stdcall;
function DamageRegion(region: PNxRegion): HRESULT; stdcall;
function ForceRedraw: HRESULT; stdcall;
end;
{$EXTERNALSYM IRMASite}
//***************************************************************************
//
// Interface:
//
// IRMASiteUser
//
// Purpose:
//
// Interface for the user of the IRMASite objects.
//
// IID_IRMASiteUser:
//
// {00000D04-0901-11d1-8B06-00A024406D59}
//
//
//const
// IID_IRMASiteUser: TGUID = '{00000D04-0901-11d1-8B06-00A024406D59}';
// {$EXTERNALSYM IID_IRMASiteUser}
IRMASiteUser = interface (IUnknown)
['{00000D04-0901-11d1-8B06-00A024406D59}']
//
// IRMASiteUser methods usually called by the "context" to
// associate users with the site.
//
function AttachSite(pSite: IRMASite): HRESULT; stdcall;
function DetachSite: HRESULT; stdcall;
//
// IRMASiteUser methods called to inform user of an event.
//
function HandleEvent(const pEvent: PNxEvent): HRESULT; stdcall;
function NeedsWindowedSites: BOOL; stdcall;
end;
{$EXTERNALSYM IRMASiteUser}
//***************************************************************************
//
// Interface:
//
// IRMASiteWatcher
//
// Purpose:
//
// Interface for IRMASiteWatcher objects.
//
// IID_IRMASite:
//
// {00000D05-0901-11d1-8B06-00A024406D59}
//
//
//const
// IID_IRMASiteWatcher: TGUID = '{00000D05-0901-11d1-8B06-00A024406D59}';
// {$EXTERNALSYM IID_IRMASiteWatcher}
IRMASiteWatcher = interface (IUnknown)
['{00000D05-0901-11d1-8B06-00A024406D59}']
//
// IRMASiteWatcher methods called by the site when a watcher
// is attached to or detached from it.
//
function AttachSite(pSite: IRMASite): HRESULT; stdcall;
function DetachSite: HRESULT; stdcall;
//
// IRMASiteWatcher methods called by the site an attempt is
// made to change it's position or size. The site watcher must
// return PNR_OK for the change to occur. If the site watcher
// returns any value other than PNR_OK then the size or position
// will not change. The site watcher can also modify the new
// size of position.
//
function ChangingPosition(posOld: PNxPoint; var posNew: PNxPoint): HRESULT; stdcall;
function ChangingSize(sizeOld: PNxSize; var sizeNew: PNxSize): HRESULT; stdcall;
end;
{$EXTERNALSYM IRMASiteWatcher}
//***************************************************************************
//
// Interface:
//
// IRMASiteUserSupplier
//
// Purpose:
//
// Interface implemented by renderers and objects with provide layouts to
// the client core. This interface is called by the core when it needs a
// new IRMASiteUser, or when it is done using an IRMASiteUser.
//
// IID_IRMASiteUserSupplier:
//
// {00000D06-0901-11d1-8B06-00A024406D59}
//
//
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -