Home Inhaltsverzeichnis Extensions History
 Object Linking for GEM Applications OLGA Rev 1.5

E Dateien


 Object Linking for GEM Applications OLGA Rev 1.5
 Dateien

E.1 OLGA.H

/* 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

E.2 OLGA.INC

{* 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

E.3 OLGA.INF

;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


Home Inhaltsverzeichnis Extensions History