mirror of
https://github.com/ptitSeb/Serious-Engine
synced 2024-12-25 23:24:51 +01:00
116 lines
3.5 KiB
C
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
|