home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Plus! (NZ) 2001 June
/
HDC50.iso
/
Runimage
/
Delphi50
/
Doc
/
DDEMAN.INT
< prev
next >
Wrap
Text File
|
1999-08-11
|
5KB
|
150 lines
{*******************************************************}
{ }
{ Borland Delphi Visual Component Library }
{ }
{ Copyright (c) 1995,99 Inprise Corporation }
{ }
{*******************************************************}
unit DdeMan;
{$R-,T-,H+,X+}
interface
uses
Windows, Classes, Graphics, Forms, Controls, DDEML, StdCtrls;
type
TDataMode = (ddeAutomatic, ddeManual);
TDdeServerConv = class;
TMacroEvent = procedure(Sender: TObject; Msg: TStrings) of object;
TDdeClientItem = class;
{ TDdeClientConv }
TDdeClientConv = class(TComponent)
protected
function CreateDdeConv(FHszApp: HSZ; FHszTopic: HSZ): Boolean;
function GetCliItemByName(const ItemName: string): TPersistent;
function GetCliItemByCtrl(ACtrl: TDdeClientItem): TPersistent;
procedure Loaded; override;
procedure DefineProperties(Filer: TFiler); override;
procedure ReadLinkInfo(Reader: TReader);
procedure WriteLinkInfo(Writer: TWriter);
function OnSetItem(aCtrl: TDdeClientItem; const S: string): Boolean;
procedure OnAttach(aCtrl: TDdeClientItem);
procedure OnDetach(aCtrl: TDdeClientItem);
procedure Close; dynamic;
procedure Open; dynamic;
function ChangeLink(const App, Topic, Item: string): Boolean;
procedure ClearItems;
procedure Notification(AComponent: TComponent;
Operation: TOperation); override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
function PasteLink: Boolean;
function OpenLink: Boolean;
function SetLink(const Service, Topic: string): Boolean;
procedure CloseLink;
function StartAdvise: Boolean;
function PokeDataLines(const Item: string; Data: TStrings): Boolean;
function PokeData(const Item: string; Data: PChar): Boolean;
function ExecuteMacroLines(Cmd: TStrings; waitFlg: Boolean): Boolean;
function ExecuteMacro(Cmd: PChar; waitFlg: Boolean): Boolean;
function RequestData(const Item: string): PChar;
property DdeFmt: Integer;
property WaitStat: Boolean;
property Conv: HConv;
property DataMode: TDataMode;
published
property ServiceApplication: string;
property DdeService: string;
property DdeTopic: string;
property ConnectMode: TDataMode default ddeAutomatic;
property FormatChars: Boolean default False;
property OnClose: TNotifyEvent;
property OnOpen: TNotifyEvent;
end;
{ TDdeClientItem }
TDdeClientItem = class(TComponent)
protected
procedure Notification(AComponent: TComponent;
Operation: TOperation); override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property Text: string;
property Lines: TStrings;
property DdeConv: TDdeClientConv;
property DdeItem: string;
property OnChange: TNotifyEvent;
end;
{ TDdeServerConv }
TDdeServerConv = class(TComponent)
protected
procedure Connect; dynamic;
procedure Disconnect; dynamic;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
function ExecuteMacro(Data: HDdeData): LongInt;
published
property OnOpen: TNotifyEvent;
property OnClose: TNotifyEvent;
property OnExecuteMacro: TMacroEvent;
end;
{ TDdeServerItem }
TDdeServerItem = class(TComponent)
protected
function GetText: string;
procedure SetText(const Item: string);
procedure SetLines(Value: TStrings);
procedure SetServerConv(SConv: TDdeServerConv);
procedure Notification(AComponent: TComponent;
Operation: TOperation); override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
function PokeData(Data: HDdeData): LongInt;
procedure CopyToClipboard;
procedure Change; dynamic;
property Fmt: Integer;
published
property ServerConv: TDdeServerConv;
property Text: string;
property Lines: TStrings;
property OnChange: TNotifyEvent;
property OnPokeData: TNotifyEvent;
end;
{ TDdeMgr }
TDdeMgr = class(TComponent)
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
function GetExeName: string; // obsolete
property DdeInstId: LongInt;
property AppName: string;
property LinkClipFmt: Word;
end;
function GetPasteLinkInfo(var Service: string; var Topic: string;
var Item: string): Boolean;
var
ddeMgr: TDdeMgr;
implementation