Object Linking for GEM Applications OLGA Rev 1.5
Object Linking for GEM Applications OLGA Rev 1.5
Dateien
/* OLGA Rev 1.5 (98-06-08) */
/* Thomas_Much@ka2.maus.de */
/* http://www.uni-karlsruhe.de/~Thomas.Much/OLGA */
#ifndef OLGA_H
#define OLGA_H
#define OLE_INIT 0x4950
#define OLE_EXIT 0x4951
#define OLE_NEW 0x4952
#define OLGA_INIT 0x1236
#define OLGA_UPDATE 0x1238
#define OLGA_ACK 0x1239
#define OLGA_RENAME 0x123a
#define OLGA_OPENDOC 0x123b
#define OLGA_CLOSEDOC 0x123c
#define OLGA_LINK 0x123d
#define OLGA_UNLINK 0x123e
#define OLGA_UPDATED 0x123f
#define OLGA_RENAMELINK 0x1240
#define OLGA_LINKRENAMED 0x1241
#define OLGA_GETOBJECTS 0x1242
#define OLGA_OBJECTS 0x1243
#define OLGA_BREAKLINK 0x1244
#define OLGA_LINKBROKEN 0x1245
#define OLGA_START 0x1246
#define OLGA_GETINFO 0x1247
#define OLGA_INFO 0x1248
#define OLGA_IDLE 0x1249
#define OLGA_ACTIVATE 0x124a
#define OLGA_EMBED 0x124b
#define OLGA_EMBEDDED 0x124c
#define OLGA_UNEMBED 0x124d
#define OLGA_GETSETTINGS 0x124e
#define OLGA_SETTINGS 0x124f
#define OLGA_REQUESTNOTIFICATION 0x1250
#define OLGA_RELEASENOTIFICATION 0x1251
#define OLGA_NOTIFY 0x1252
#define OLGA_NOTIFIED 0x1253
#define OLGA_SERVERTERMINATED 0x1254
#define OLGA_CLIENTTERMINATED 0x1255
#define OLGA_INPLACEUPDATE 0x1256
#define OLGA_ID4UPDATE 0x1257
#define OLGA_GETEXTENSION 0x1258
#define OLGA_EXTENSION 0x1259
#define OLGA_GETSERVERPATH 0x125a
#define OLGA_SERVERPATH 0x125b
#define OL_SERVER 0x0001
#define OL_CLIENT 0x0002
#define OL_PEER (OL_SERVER | OL_CLIENT)
#define OL_CONF 0x0400
#define OL_IDLE 0x0800
#define OL_PIPES 0x1000
#define OL_START 0x2000
#define OL_MANAGER 0x4000
#define OL_OEP 0x0001
#define OLS_TYPE 1
#define OLS_EXTENSION 2
#define OLS_NAME 3
#define OL_SRV_ID4 0x0001
typedef struct
{
int x,y,w,h;
int x1,y1,x2,y2;
} OLGARect;
typedef struct
{
long magic;
unsigned int version;
unsigned int skip;
} OLGAInfHeader;
typedef struct
{
long id;
long length;
} OLGABlockHeader;
typedef struct
{
int Red;
int Green;
int Blue;
} OLGARGB;
typedef struct
{
int Count;
OLGARGB Colors[];
} OLGAColorTable;
typedef struct _OLGAObjectInfo
{
char *Filename;
AESPB *ClientGEMPB;
long ClientData;
long ServerData;
int CBLock;
int CBCount;
void cdecl (*CBDraw)
(struct _OLGAObjectInfo *objectinfo,
int outScreen,
int outHandle,
int outDevID,
OLGARect *Size,
OLGARect *Clip);
void cdecl (*CBUnembed)
(struct _OLGAObjectInfo *objectinfo);
void cdecl (*CBXDraw)
(struct _OLGAObjectInfo *objectinfo,
int outScreen,
int outHandle,
int outDevID,
OLGARect *Size,
OLGARect *Clip,
long Width_mm1000,
long Height_mm1000,
long Scale);
OLGAColorTable *cbColorTable;
int cbClientID;
int cbServerID;
} OLGAObjectInfo;
#endif
Object Linking for GEM Applications OLGA Rev 1.5
Dateien
{* OLGA Rev 1.5 (98-06-08) *
* Thomas_Much@ka2.maus.de *
* http://www.uni-karlsruhe.de/~Thomas.Much/OLGA *}
const
OLE_INIT = $4950;
OLE_EXIT = $4951;
OLE_NEW = $4952;
OLGA_INIT = $1236;
OLGA_UPDATE = $1238;
OLGA_ACK = $1239;
OLGA_RENAME = $123a;
OLGA_OPENDOC = $123b;
OLGA_CLOSEDOC = $123c;
OLGA_LINK = $123d;
OLGA_UNLINK = $123e;
OLGA_UPDATED = $123f;
OLGA_RENAMELINK = $1240;
OLGA_LINKRENAMED = $1241;
OLGA_GETOBJECTS = $1242;
OLGA_OBJECTS = $1243;
OLGA_BREAKLINK = $1244;
OLGA_LINKBROKEN = $1245;
OLGA_START = $1246;
OLGA_GETINFO = $1247;
OLGA_INFO = $1248;
OLGA_IDLE = $1249;
OLGA_ACTIVATE = $124a;
OLGA_EMBED = $124b;
OLGA_EMBEDDED = $124c;
OLGA_UNEMBED = $124d;
OLGA_GETSETTINGS = $124e;
OLGA_SETTINGS = $124f;
OLGA_REQUESTNOTIFICATION = $1250;
OLGA_RELEASENOTIFICATION = $1251;
OLGA_NOTIFY = $1252;
OLGA_NOTIFIED = $1253;
OLGA_SERVERTERMINATED = $1254;
OLGA_CLIENTTERMINATED = $1255;
OLGA_INPLACEUPDATE = $1256;
OLGA_ID4UPDATE = $1257;
OLGA_GETEXTENSION = $1258;
OLGA_EXTENSION = $1259;
OLGA_GETSERVERPATH = $125a;
OLGA_SERVERPATH = $125b;
OL_SERVER = $0001;
OL_CLIENT = $0002;
OL_PEER = OL_SERVER or OL_CLIENT;
OL_CONF = $0400;
OL_IDLE = $0800;
OL_PIPES = $1000;
OL_START = $2000;
OL_MANAGER = $4000;
OL_OEP = $0001;
OLS_TYPE = 1;
OLS_EXTENSION = 2;
OLS_NAME = 3;
OL_SRV_ID4 = $0001;
type
GRECTPtr = ^GRECT;
GRECT = record
X,Y,W,H,
X1,Y1,X2,Y2: integer
end;
POLGAInfHeader = ^TOLGAInfHeader;
TOLGAInfHeader = record
Magic : array [0..3] of char;
Version,
Skip : word
end;
POLGABlockHeader = ^TOLGABlockHeader;
TOLGABlockHeader = record
ID : array [0..3] of char;
Length: longint
end;
PRGB = ^TRGB;
TRGB = record
Red,
Green,
Blue : integer
end;
POLGAColorTable = ^TOLGAColorTable;
TOLGAColorTable = record
Count : integer;
Colors: array [0..255] of TRGB
end;
POLGAObjectInfo = ^TOLGAObjectInfo;
TOLGAObjectInfo = record
Filename : PChar;
ClientGEMPB : AESPBPtr;
ClientData,
ServerData : longint;
CBLock,
CBCount : integer;
CBDraw : procedure(d1,d2: pointer; d3,d4,d5: longint;
objectinfo: POLGAObjectInfo;
outScreen,
outHandle,
outDevID : integer;
Size,
Clip : GRECTPtr);
CBUnembed : procedure(d1,d2: pointer; d3,d4,d5: longint;
objectinfo: POLGAObjectInfo);
CBXDraw : procedure(d1,d2: pointer; d3,d4,d5: longint;
objectinfo: POLGAObjectInfo;
outScreen,
outHandle,
outDevID : integer;
Size,
Clip : GRECTPtr;
Width_mm1000,
Height_mm1000,
Scale : longint);
cbColorTable: POLGAColorTable;
cbClientID,
cbServerID : integer
end;
Object Linking for GEM Applications OLGA Rev 1.5
Dateien
;Dies ist die OLGA-Manager-Konfigurationsdatei.
;Sie muß im Wurzelverzeichnis des Bootlaufwerks,
;in $HOME/defaults oder in $HOME stehen.
;ACHTUNG: Der Minimalmanager reagiert allergisch auf einen
;falschen Aufbau dieser Datei! Kommentare beginnen mit
;einem Semikolon am Zeilenanfang, Leerzeilen dürfen nur
;aus CR/LF bestehen. Alle Einträge müssen am Zeilenanfang
;stehen, zusätzliche Leerzeichen o.ä. sind _nicht_ erlaubt.
;Programmnamen sind immer absolut, d.h. mit Pfad und Lauf-
;werk.
[Extensions]
;Wildcards sind nicht erlaubt!
;Extensions sind (mit Punkt) maximal vier Zeichen lang
.TAD=$ARTWORX
.CWG=$ARTWORX
.GEM=$ARTWORX
.CVG=$ARTWORX
.AI=$ARTWORX
.SDB=$STELLA
.TXL=$TEXEL
.DIF=$TEXEL
.CSV=$TEXEL
.XLS=$TEXEL
.HTM=$CAB
.TXT=$QED
.ASC=$QED
.IMG=$PAPILLON
.TIF=$PAPILLON
.JPG=$PAPILLON
.GIF=$PAPILLON
[Objects]
;zu den folgenden Extensions existieren ID4-Server
;die Extensions müssen auch im vorigen Abschnitt definiert sein!
.CWG=ArtWorx-Dokument
.CVG=Calamus-Dokument
.GEM=GEM Metafile
.AI=Adobe Illustrator-Dokument
.TAD=Texel-Diagramm
[Types]
;XAcc-Typen, siehe OLGAPROT.TXT; sie sind _exakt_ zwei
;Zeichen lang (Groß-/Kleinschreibung beachten!)
SS=$TEXEL
VG=$ARTWORX
RG=$PAPILLON
GG=$STELLA
ED=$QED
[Applications]
;hier werden Aliase festgelegt, die als Abkürzungen (mit einem
;führenden $, s.o.) verwendet werden /können/ (nicht müssen).
;Verschachtelungen sind erlaubt, aber man muß selbst darauf
;achten, keine Endlosschleifen zu erzeugen.
;Groß-/Kleinschreibung wird beachtet!
TEXEL=C:\Programm\PP\PRGS\texel.app
STELLA=C:\Programm\STELLA\STELLA.APP
ARTWORX=C:\Programm\ArtWorx\ARTWORX.PRG
IDEALIST=C:\Tools\IdeaList\IDEALIST.PRG
CAB=C:\Programm\WWW\CAB\CAB.APP
QED=C:\Diverses\qed\qed.app
PAPILLON=C:\Programm\PAPILLON\PAPILLON.PRG
[Manager]
;wenn die letzte Zeile dieses Abschnitts nicht auskommentiert ist,
;testet der Manager *nicht* auf abgestürzte Applikationen; aus
;Sicherheitsgründen sollte diese Option daher immer an sein, die
;folgende Zeile also auskommentiert bleiben!
;NoCrashChecking