#ifndef __ICEDLLS_HPP #define __ICEDLLS_HPP #define BIFINCL_WINDOW #define BIFINCL_MODULE #include #include "chain.hpp" #include "ice.h" typedef int (* EXPENTRY pfnQueryExpectedICEVersion_t)(void); typedef BOOL (* EXPENTRY pfnInitializeICEDLL_t)(ICEAPILIST *api, void *notUsedYet); typedef SyntaxClassInfo * (* EXPENTRY pfnQuerySyntaxClasses_t)(void); typedef int (* EXPENTRY pfnClassifySyntax_t)(int,const char*,const char*,CONTEXT,SyntaxClass*, unsigned long,unsigned,unsigned long,unsigned, unsigned long *,unsigned *,unsigned long *,unsigned *, unsigned long ); typedef CommandInfo * (* EXPENTRY pfnQueryCommands_t)(void); typedef int (* EXPENTRY pfnProcessKeyboardEvent_t)(int,const char *,const char *,CONTEXT,int,QMSG *); typedef int (* EXPENTRY pfnReadFileIntoBuffer_t)(int,const char *,const char *,BUFFERHANDLE,CONTEXT,int *); typedef int (* EXPENTRY pfnWriteFileFromBuffer_t)(int,const char *,const char *, BUFFERHANDLE,CONTEXT, const char *,int * ); struct ICEDLL { char name[256]; FModule *module; pfnQuerySyntaxClasses_t pfnQuerySyntaxClasses; pfnClassifySyntax_t pfnClassifySyntax; pfnQueryCommands_t pfnQueryCommands; pfnProcessKeyboardEvent_t pfnProcessKeyboardEvent; pfnReadFileIntoBuffer_t pfnReadFileIntoBuffer; pfnWriteFileFromBuffer_t pfnWriteFileFromBuffer; }; class DLLChain : protected Chain { public: DLLChain(); ~DLLChain(); Chain::queryFirst; Chain::queryNext; Chain::queryPrevious; ICEDLL *Load(const char *name); int Unload(const char *name); void UnloadAll(); }; extern DLLChain DLLChain; #endif