Unit DataObject

MyOle ver. 0.91 Author: Matej Trampus, Slovenija E-MAIL: - Matej.Trampus@kiss.uni-lj.si See readme.txt for details. // BUGS: - We claim, that we support CfDelphiObjectData (see TMyDataObject.EnumFormatEtc), but we do not. - What happens if I copy the object to clipboard and then exit the program. OLE will still hold on IDataObject we provided, but the object will not exist anymore (see also comment in ClassFactory.pas) // History: -- ver 0.91 26.10.1996 Added clipoard fromats: Object descriptor, Embedded object -- ver 0.90 - 23.10.1996 TMyDataObject.GetData, TMyDataObject.supportsFormat commented out

Classes

TMyDataObject - TMyData can be only used as part of another object.
TMyEnumFormatEtc - There is no support for aggregation for TMyEnumFormatEtc.
TOleStream - Delphi stream that uses IStream.

Functions

iid2String -

Types

PFormatList
TFormatList

Constants

cfDelphiObjectDataDescr
cfEmbeddedObjectDescr
cfEmbedSourceDescr
cfObjectDescriptorDescr

Variables

CfDelphiObjectData
cfEmbeddedObject
cfEmbedSource
cfObjectDescriptor


Functions


function iid2String(const iid:TGUid):string;


Types


PFormatList = ^TFormatList
coments starting with '//**' are from Inside Ole 2 (IOL2) IOL2 sets refCount to 0 in object's constructor, so object that called the other object's constructor must explicitly call otherObject.AddRef to hold onto otherObject I am using different approach (as in Delphi's oleCtnrs.dcu). I set the RefCount to 1 in constructor and thus eliminating the need for explicit AddRef after calling the cunstructor. Again: Do not call otherObject.Addref after you created other object with otherObject:=TIxxxx.Create
TFormatList = array[0..255] of TFormatEtc;

Constants

cfDelphiObjectDataDescr = 'Matra Delphi Object2'

cfEmbeddedObjectDescr = 'Embedded Object'

cfEmbedSourceDescr = 'Embed Source'

cfObjectDescriptorDescr = 'Object Descriptor'


Variables

CfDelphiObjectData : integer

cfEmbeddedObject : integer

cfEmbedSource : integer

cfObjectDescriptor : integer