Serious-Engine/Sources/LWSkaExporter/SDK/lwserver.h
2016-03-11 15:57:17 +02:00

116 lines
3.5 KiB
C

/*
* LWSDK Header File
* Copyright 1999, NewTek, Inc.
*
* LWSERVER.H -- LightWave Plug-in Server
*
* This header contains the basic declarations need to define the
* simplest LightWave plug-in server.
*/
#ifndef LWSDK_SERVER_H
#define LWSDK_SERVER_H
/*
* External Entry Points. All entry points which may be called from the
* host must be declared as XCALL types. The obsolete XCALL_INIT is
* still present but defined as nothing.
*/
#ifdef _WIN32
#define XCALL_(t) t
#endif
#ifdef _XGL
#define XCALL_(t) t
#endif
#ifdef _MACOS
#define XCALL_(t) t
#endif
#define XCALL_INIT
/*
* Global Function. The global function is a callback provided by the
* host taking the floowing form. A pointer for the given service name
* is returned for the given useage. The use codes are for services
* that will be used once or that will be used many times.
*/
typedef void * GlobalFunc (const char *serviceName, int useMode);
#define GFUSE_TRANSIENT 0
#define GFUSE_ACQUIRE 1
#define GFUSE_RELEASE 2
/*
* Activation Function. The server entry points are all functions of
* this kind, taking a version number, global function pointer, local
* (class-specific) data and module data. The return value indicates
* if the service could run and the reason for failure if it couldn't.
*/
typedef int ActivateFunc (long version,
GlobalFunc *global,
void *local,
void *serverData);
#define AFUNC_OK 0
#define AFUNC_BADVERSION 1
#define AFUNC_BADGLOBAL 2
#define AFUNC_BADLOCAL 3
#define AFUNC_BADAPP 4
/*
* This is a selection of some of the more useful language ID's,
* although this list is far from complete. Remaining codes can be
* found by searching the Microsoft Windows documentation for OLE
* LANGID codes. Japanese strings should be encoded as JIS on Windows
* and EUC on Unix.
*/
#define LANGID_GERMAN 0x0407
#define LANGID_USENGLISH 0x0409
#define LANGID_UKENGLISH 0x0809
#define LANGID_SPANISH 0x040a
#define LANGID_FRENCH 0x040c
#define LANGID_ITALIAN 0x0410
#define LANGID_JAPANESE 0x0411
#define LANGID_KOREAN 0x0412
#define LANGID_RUSSIAN 0x0419
#define LANGID_SWEDISH 0x041D
/*
* The each server can contain a list of tagged strings which declare
* some of the static information about that server. Tags are a bitwise
* OR of a SRVTAG code which selects the type of information, and a
* language ID word which selects the language for which the string is
* valid.
*/
#define SRVTAG_USERNAME 0x00000
#define SRVTAG_BUTTONNAME 0x10000
#define SRVTAG_CMDGROUP 0x20000
#define SRVTAG_MENU 0x30000
#define SRVTAG_DESCRIPTION 0x40000
#define SRVTAG_ENABLE 0x50000
typedef struct st_ServerTagInfo {
const char *string;
unsigned int tag;
} ServerTagInfo;
/*
* Server Definition Record. Each server record describes a single
* activation entry point in the plug-in module. Each has a class,
* a name, an activation function, and an array of tag info structs
* terminated with a zero tag code.
*/
typedef struct st_ServerRecord {
const char *className;
const char *name;
ActivateFunc *activate;
ServerTagInfo *tagInfo;
} ServerRecord;
#define ServerUserName ServerTagInfo
#endif