home *** CD-ROM | disk | FTP | other *** search
/ PC World Plus! (NZ) 2001 June / HDC50.iso / Runimage / Delphi50 / Doc / OLECTNRS.INT < prev    next >
Text File  |  1999-08-11  |  6KB  |  178 lines

  1.  
  2. {*******************************************************}
  3. {                                                       }
  4. {       Borland Delphi Visual Component Library         }
  5. {                                                       }
  6. {       Copyright (c) 1995,99 Inprise Corporation       }
  7. {                                                       }
  8. {*******************************************************}
  9.  
  10. (*$HPPEMIT '#include <DocObj.h>'*)
  11.  
  12. unit OleCtnrs;
  13.  
  14. {$T-,H+,X+}
  15.  
  16. interface
  17.  
  18. uses Windows, Messages, CommCtrl, ActiveX, OleDlg, SysUtils, Classes,
  19.   Controls, Forms, Menus, Graphics, ComObj;
  20.  
  21. const
  22.   ovShow = -1;
  23.   ovOpen = -2;
  24.   ovHide = -3;
  25.   ovUIActivate = -4;
  26.   ovInPlaceActivate = -5;
  27.   ovDiscardUndoState = -6;
  28.   ovPrimary = -65536;
  29.  
  30. type
  31.   TOleContainer = class;
  32.   TOleForm = class;
  33.  
  34.   IVCLFrameForm = interface(IOleInPlaceFrame)
  35.     ['{CD02E1C0-52DA-11D0-9EA6-0020AF3D82DA}']
  36.     procedure AddContainer(Instance: TOleContainer);
  37.     procedure RemoveContainer(Instance: TOleContainer);
  38.     procedure ClearBorderSpace;
  39.     function Form: TCustomForm;
  40.   end;
  41.  
  42.   TAutoActivate = (aaManual, aaGetFocus, aaDoubleClick);
  43.  
  44.   TSizeMode = (smClip, smCenter, smScale, smStretch, smAutoSize);
  45.  
  46.   TObjectState = (osEmpty, osLoaded, osRunning, osOpen, osInPlaceActive,
  47.     osUIActive);
  48.  
  49.   TCreateType = (ctNewObject, ctFromFile, ctLinkToFile, ctFromData,
  50.     ctLinkFromData);
  51.  
  52.   TCreateInfo = record
  53.     CreateType: TCreateType;
  54.     ShowAsIcon: Boolean;
  55.     IconMetaPict: HGlobal;
  56.     ClassID: TCLSID;
  57.     FileName: WideString;
  58.     DataObject: IDataObject;
  59.   end;
  60.  
  61.   TVerbInfo = packed record
  62.     Verb: Smallint;
  63.     Flags: Word;
  64.   end;
  65.  
  66.   TObjectMoveEvent = procedure(OleContainer: TOleContainer;
  67.     const Bounds: TRect) of object;
  68.  
  69.   TOleContainer = class(TCustomControl, IUnknown, IOleClientSite,
  70.     IOleInPlaceSite, IAdviseSink, IOleDocumentSite, IOleUIObjInfo)
  71.   protected
  72.     { IUnknown }
  73.     function QueryInterface(const IID: TGUID; out Obj): HResult; override; stdcall;
  74.     function _AddRef: Integer; stdcall;
  75.     function _Release: Integer; stdcall;
  76.     procedure Changed; dynamic;
  77.     procedure CreateParams(var Params: TCreateParams); override;
  78.     procedure DblClick; override;
  79.     procedure DefineProperties(Filer: TFiler); override;
  80.     procedure DoEnter; override;
  81.     function GetPopupMenu: TPopupMenu; override;
  82.     procedure KeyDown(var Key: Word; Shift: TShiftState); override;
  83.     procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
  84.       X, Y: Integer); override;
  85.     procedure Paint; override;
  86.   public
  87.     constructor Create(AOwner: TComponent); override;
  88.     destructor Destroy; override;
  89.     function ChangeIconDialog: Boolean;
  90.     procedure Close;
  91.     procedure Copy;
  92.     procedure CreateLinkToFile(const FileName: string; Iconic: Boolean);
  93.     procedure CreateObject(const OleClassName: string; Iconic: Boolean);
  94.     procedure CreateObjectFromFile(const FileName: string; Iconic: Boolean);
  95.     procedure CreateObjectFromInfo(const CreateInfo: TCreateInfo);
  96.     procedure DestroyObject;
  97.     procedure DoVerb(Verb: Integer);
  98.     function GetIconMetaPict: HGlobal;
  99.     function InsertObjectDialog: Boolean;
  100.     procedure LoadFromFile(const FileName: string);
  101.     procedure LoadFromStream(Stream: TStream);
  102.     function ObjectPropertiesDialog: Boolean;
  103.     procedure Paste;
  104.     function PasteSpecialDialog: Boolean;
  105.     procedure Run;
  106.     procedure SaveAsDocument(const FileName: string);
  107.     procedure SaveToFile(const FileName: string);
  108.     procedure SaveToStream(Stream: TStream);
  109.     procedure UpdateObject;
  110.     procedure UpdateVerbs;
  111.     property CanPaste: Boolean;
  112.     property Linked: Boolean;
  113.     property Modified: Boolean;
  114.     property NewInserted: Boolean;
  115.     property ObjectVerbs: TStrings;
  116.     property OleClassName: string;
  117.     property OleObject: Variant;
  118.     property OleObjectInterface: IOleObject;
  119.     property PrimaryVerb: Integer;
  120.     property SourceDoc: string;
  121.     property State: TObjectState;
  122.     property StorageInterface: IStorage;
  123.   published
  124.     property AllowInPlace: Boolean default True;
  125.     property AllowActiveDoc: Boolean default True;
  126.     property AutoActivate: TAutoActivate default aaDoubleClick;
  127.     property AutoVerbMenu: Boolean default True;
  128.     property Align;
  129.     property Anchors;
  130.     property BorderStyle: TBorderStyle default bsSingle;
  131.     property Caption;
  132.     property Color;
  133.     property Constraints;
  134.     property CopyOnSave: Boolean default True;
  135.     property Ctl3D;
  136.     property DragCursor;
  137.     property DragMode;
  138.     property Enabled;
  139.     property Iconic: Boolean;
  140.     property OldStreamFormat: Boolean default False;
  141.     property ParentColor default False;
  142.     property ParentCtl3D;
  143.     property ParentShowHint;
  144.     property PopupMenu;
  145.     property ShowHint;
  146.     property SizeMode: TSizeMode default smClip;
  147.     property TabOrder;
  148.     property TabStop default True;
  149.     property Visible;
  150.     property OnActivate: TNotifyEvent;
  151.     property OnDeactivate: TNotifyEvent;
  152.     property OnDragDrop;
  153.     property OnDragOver;
  154.     property OnEndDrag;
  155.     property OnEnter;
  156.     property OnExit;
  157.     property OnMouseDown;
  158.     property OnMouseMove;
  159.     property OnMouseUp;
  160.     property OnKeyDown;
  161.     property OnKeyPress;
  162.     property OnKeyUp;
  163.     property OnObjectMove: TObjectMoveEvent;
  164.     property OnResize: TNotifyEvent;
  165.     property OnStartDrag;
  166.   end;
  167.  
  168.   TOleForm = class(TInterfacedObject, IOleForm, IOleWindow, IOleInPlaceUIWindow,
  169.     IOleInPlaceFrame, IVCLFrameForm)
  170.   public
  171.     constructor Create(Form: TCustomForm);
  172.     destructor Destroy; override;
  173.   end;
  174.  
  175. procedure DestroyMetaPict(MetaPict: HGlobal);
  176.  
  177. implementation
  178.