reman3/Rayman_X/cpa/public/ITF/cpadllls.hpp

128 lines
3.6 KiB
C++

/*=========================================================================*/
/* CPADLLls.hpp : interface of the CPA_DLLList class and to the*/
/**/
/* This is a part of the CPA project.*/
/**/
/* Version 1.0*/
/* Creation date 10/06/96*/
/* Revision date*/
/**/
/* (c) Ubi Studio 1996*/
/**/
/* DO NOT MODIFY THAT FILE. IF SOMETHING NEEDS TO BE CHANGE, PLEASE CONTACT*/
/* VINCENT GRECO OR CHRISTOPHE BEAUDET.*/
/*=========================================================================*/
#ifndef __CPADLLLS_HPP__
#define __CPADLLLS_HPP__
#ifdef ACTIVE_EDITOR
/****************************************/
#ifndef CPA_EXPORT
#if defined(CPA_WANTS_IMPORT)
#define CPA_EXPORT __declspec(dllimport)
#elif defined(CPA_WANTS_EXPORT)
#define CPA_EXPORT __declspec(dllexport)
#else
#define CPA_EXPORT
#endif
#endif
/****************************************/
#include "geo.h"
#include "gli.h"
#include <afxtempl.h>
#include "CPADllb.hpp"
#include "DEVMulti.hpp"
/*=========================================================================*/
/* The list of all editors*/
/*=========================================================================*/
class CPA_EXPORT CPA_DLLList
{
private:
/* structure for loading DLL*/
typedef struct
{
CString csPath;
WIN32_FIND_DATA *p_stFileInfo;
BOOL bAlreadyLoaded;
} tdstDLLFiles;
CList<tdstDLLIdentity*,tdstDLLIdentity*> m_oListOfDLLIdentities;
CList<DEV_MultiDevice*,DEV_MultiDevice*> m_oListOfMultiDevices;
unsigned short m_uwCurrentRef;
long m_lObjectDLLCount;
long m_lToolDLLCount;
void LoadAllDLLsFromList(CList<tdstDLLFiles*,tdstDLLFiles*> *p_oListOfDLLFiles);
public:
CPA_DLLList();
~CPA_DLLList();
long GetDLLCount() {return (m_lObjectDLLCount + m_lToolDLLCount); }
void LoadAllDLL();
void DestroyADLL(CPA_DLLBase *p_oDLL);
void AddADLL(tdstDLLIdentity *p_stDLLIdentity);
CPA_DLLBase *GetANewDLL(tdeDLLType eType,CString csName, long lKey);
long GetAllNewDLL(tdeDLLType eType,CPA_DLLBase *ap_oDLL[], long lKey);
public:
tdstDLLIdentity *GetAllreadyRegisteredDLLId(tdstDLLIdentity *p_stDLLIdentity);
void CallRefreshDatas();
BOOL CallAcceptToRunEngine();
BOOL CallAcceptToExit();
void CallBeforeEngine();
void CallBeforeEditor();
void CallJustBeforeClosing();
void CallConstruct();
void CallJustAfterRegistered();
BOOL CallPreTranslateMessage(MSG *p_stMsg);
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/* Objects DLL specific functions*/
public:
long GetObjectDLLCount() {return m_lObjectDLLCount; }
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/* Tools DLL specific functions*/
public:
long GetToolDLLCount() {return m_lToolDLLCount; }
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/* MultiDevice specific functions*/
public:
long GetMultiDeviceCount() {return m_oListOfMultiDevices.GetCount();}
void RegisterNewMultiDevice(DEV_MultiDevice* p_oMultiDevice);
void RemoveAMultiDevice(DEV_MultiDevice *p_oMD);
};
/*///////////////////////////////////////////////////////////////////////////*/
#endif /* ACTIVE_EDITOR*/
#endif /* __CPADLLLS_HPP__*/