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

📄 rmawin.pas

📁 Delphi源码REAlRMSDK.rar
💻 PAS
📖 第 1 页 / 共 2 页
字号:
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 + -