Einzelnen Beitrag anzeigen

hboy

Registriert seit: 16. Jan 2004
364 Beiträge
 
#21

Re: Media Schältflächen wie?

  Alt 1. Jun 2006, 23:37
so ich denke man kann mit der Implementierung von ...

Delphi-Quellcode:
unit Unit2;

interface
  uses Windows, ActiveX;

  type LONG = Longint;

  type
    PPOINTL = ^_POINTL;
    _POINTL = record
      x: LONG;
      y: LONG;
  end;
    POINTL = _POINTL;

  type DESKBANDINFO = record
    dwMask : DWORD;
    ptMinSize : POINTL;
    ptMaxSize : POINTL;
    ptIntegral : POINTL;
    ptActual : POINTL;
    wszTitle{[256]} : Array[0..255] of WCHAR;
    dwModeFlags : DWORD;
    crBkgnd : COLORREF;
  end;

  type LPCRECT = PRECT;
  type LPRECT = PRECT;

  type LPCBORDERWIDTHS = LPCRECT;
  type BORDERWIDTHS = TRECT;

  type REFIID = DWORD; // Identifier of the desired Component Object Model (COM) interface - exact definition missing !!!
  type PVOID = ^Pointer;
  type LPVOID = PVOID;
  type LPMSG = PMSG;
  type PIUnknown = ^IUnknown;
const
  // add flags
  DWFAF_NORMAL = $0000; //The docking window is a regular, visible docking window. - defined in msdn
  DWFAF_HIDDEN = $0001; //The docking window is added but is not shown. To show it at a later time, call its IDockingWindow::ShowDW method. - defined in shlobj.h
  DWFAF_GROUP1 = $0002; //Insert the docking window at the end of group 1. - assumed value only! no definition found
  DWFAF_GROUP2 = $0004; //Insert the docking window at the end of group 2. - assumed value only! no definition found

  // remove flags
  DWFRF_NORMAL = $0000; // The default delete processing is performed. - defined in shlobj.h
  DWFRF_DELETECONFIGDATA = $0001; // In addition to deleting the toolbar, any configuration data is removed as well - defined in shlobj.h

  type IInputObject = interface(IUnknown)
    function HasFocusIO: HRESULT;
    function TranslateAcceleratorIO(lpMsg: LPMSG): HRESULT;
    function UIActivateIO( fActivate : BOOL; pMessage : PMSG): HRESULT;
  end;

  type IPersist = interface(IUnknown)
    function GetClassID(pClassID: TCLSID) : HRESULT;
  end;

  // optional storing for persistent data. must return success even if no data is stored
  type IPersistStream = interface (IPersist)
    function IsDirty: HRESULT;
    function Load(pStm : IStream): HRESULT;
    function Save(pStm : IStream; fClearDirty : BOOL): HRESULT;
    function GetSizeMax(pcbSize : PULargeInteger): HRESULT;
  end;

  type IObjectWithSite = interface(IUnknown)
    function SetSite({*}pUnkSite:PIUnknown): HRESULT;
    function GetSite(riid: REFIID; ppvSite: PVOID{void**}): HRESULT;
  end;

  type IDockingWindowFrame = interface(IOleWindow)
    function AddToolbar({*}punkSrc: PIUnknown; pwszItem : LPCWSTR; dwAddFlags: DWORD): HRESULT;
    function FindToolbar(pwszItem :LPCWSTR; riid : REFIID; ppvObj: LPVOID):HRESULT;
    function RemoveToolbar({*}punkSrc:PIUnknown; dwRemoveFlags:DWORD):HRESULT;
  end;

  type IDockingWindowSite = interface(IOleWindow)
    function GetBorderDW({*}punkSrc:PIUnknown; prcBorder: PRECT): HRESULT ;
    function RequestBorderSpaceDW({*}punkSrc:PIUnknown; pbw : LPCBORDERWIDTHS): HRESULT;
    function SetBorderSpaceDW({*}punkSrc:PIUnknown; pbw : LPCBORDERWIDTHS): HRESULT;
  end;

  type IDockingWindow = interface(IOleWindow)
    function CloseDW(dwReserved: DWORD): HRESULT;
    function ResizeBorderDW(prcBorder: LPCRECT;{*}punkToolbarSite:PIUnknown; fReserved: Boolean):HRESULT;
    function ShowDW(bShow: BOOL):HRESULT;
  end;

  type IDeskBand = interface(IDockingWindow)
   function GetBandInfo(dwBandID: DWORD; dwViewMode: DWORD; pdbi : DESKBANDINFO): HRESULT;
  end;

  type TMyBand = class(TInterfacedObject{IClassFactory,IDeskBand,IObjectWithSite,IPersistStream})

  end;
implementation

end.
beginnen korrigiert mich sollte ich mich irren
Power is nothing without TControl
  Mit Zitat antworten Zitat