/
EvilBeaver
/
OneScript
Обзор
Документация
Войти
/
EvilBeaver
/
OneScript
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
v1.7.0
tests/native-api/AddInNative.h
96 строк
3 KB
Kandrashin Denis
Поддержка NativeApi для Linux
24 июн 2021, 00:04
24 июн 2021, 00:04
d63cf5e
Код
Авторство
О чём код?
#ifndef __ADDINNATIVE_H__ #define __ADDINNATIVE_H__ #include "ComponentBase.h" #include "AddInDefBase.h" #include "IMemoryManager.h" #include <string> /////////////////////////////////////////////////////////////////////////////// // class CAddInNative class CAddInNative : public IComponentBase { public: enum Props { ePropIsEnabled = 0, ePropStringRW, ePropStringRO, ePropStringWO, ePropLast // Always last }; enum Methods { eMethEnable = 0, eMethDisable, eMethDefaultParam, eMethShowInStatusLine, eMethLoadPicture, eMethShowMsgBox, eMethExchange, eMethConcatenate, eMethLoopback, eMethLast // Always last }; CAddInNative(void); virtual ~CAddInNative(); // IInitDoneBase virtual bool ADDIN_API Init(void*); virtual bool ADDIN_API setMemManager(void* mem); virtual long ADDIN_API GetInfo(); virtual void ADDIN_API Done(); // ILanguageExtenderBase virtual bool ADDIN_API RegisterExtensionAs(WCHAR_T**); virtual long ADDIN_API GetNProps(); virtual long ADDIN_API FindProp(const WCHAR_T* wsPropName); virtual const WCHAR_T* ADDIN_API GetPropName(long lPropNum, long lPropAlias); virtual bool ADDIN_API GetPropVal(const long lPropNum, tVariant* pvarPropVal); virtual bool ADDIN_API SetPropVal(const long lPropNum, tVariant* pvarPropVal); virtual bool ADDIN_API IsPropReadable(const long lPropNum); virtual bool ADDIN_API IsPropWritable(const long lPropNum); virtual long ADDIN_API GetNMethods(); virtual long ADDIN_API FindMethod(const WCHAR_T* wsMethodName); virtual const WCHAR_T* ADDIN_API GetMethodName(const long lMethodNum, const long lMethodAlias); virtual long ADDIN_API GetNParams(const long lMethodNum); virtual bool ADDIN_API GetParamDefValue(const long lMethodNum, const long lParamNum, tVariant* pvarParamDefValue); virtual bool ADDIN_API HasRetVal(const long lMethodNum); virtual bool ADDIN_API CallAsProc(const long lMethodNum, tVariant* paParams, const long lSizeArray); virtual bool ADDIN_API CallAsFunc(const long lMethodNum, tVariant* pvarRetValue, tVariant* paParams, const long lSizeArray); // LocaleBase virtual void ADDIN_API SetLocale(const WCHAR_T* loc); private: long findName(const wchar_t* names[], const wchar_t* name, const uint32_t size) const; void addError(uint32_t wcode, const wchar_t* source, const wchar_t* descriptor, long code); IAddInDefBase* m_iConnect; IMemoryManager* m_iMemory; bool m_Enabled = false; std::wstring m_String; }; class WcharWrapper { public: #ifdef LINUX_OR_MACOS WcharWrapper(const WCHAR_T* str); #endif WcharWrapper(const wchar_t* str); ~WcharWrapper(); #ifdef LINUX_OR_MACOS operator const WCHAR_T* () { return m_str_WCHAR; } operator WCHAR_T* () { return m_str_WCHAR; } #endif operator const wchar_t* () { return m_str_wchar; } operator wchar_t* () { return m_str_wchar; } private: WcharWrapper& operator = (const WcharWrapper& other) { return *this; } WcharWrapper(const WcharWrapper& other) { } private: #ifdef LINUX_OR_MACOS WCHAR_T* m_str_WCHAR; #endif wchar_t* m_str_wchar; }; #endif //__ADDINNATIVE_H__