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.