home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1997 August / VPR9708A.ISO / D3TRIAL / INSTALL / DATA.Z / OLECTNRS.INT < prev    next >
Text File  |  1997-03-21  |  5KB  |  168 lines

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