#define PLUGINDLL_API extern "C" __declspec(dllexport)
#define typeVariableInt 0
#define typeVariableFloat 1
#define typeVariableString 2
#define MAX(x,y) (x>y?x:y)
#define MAX3(x,y,z) MAX(MAX(x,y),z)
#define MIN(x,y) (x>y?y:x)
#define MIN3(x,y,z) MIN(MIN(x,y),z)
// to have life easy, here are few defines of the commands
// TODO: fill the rest according the lab-Talk
#define MenuGetCount() (CALLSCRIPT("MenuGetCount"))
#define MenuGetCurSel() (CALLSCRIPT("MenuGetCurSel"))
#define MenuAdd(bIsVmg,sName,bOpen) (CALLSCRIPT2("MenuAdd",bIsVmg,sName,bOpen))
#define MenuDelete(nMenu) (CALLSCRIPT("MenuDelete",nMenu))
#define MenuActivate(nMenu) (CALLSCRIPT("MenuActivate",nMenu))
// etc
#define ObjectGetCount(nMenu) (CALLSCRIPT("ObjectGetCount",nMenu))
#define ObjectGetCurSel(nMenu) (CALLSCRIPT("ObjectGetCurSel",nMenu))
#define ObjectGetType(nMenu,nObject)(CALLSCRIPT("ObjectGetType",nMenu, nObject))
// etc..
#define ObjectGetXPos(nMenu,nObject)(CALLSCRIPT("ObjectGetXPos",nMenu, nObject))
#define ObjectGetYPos(nMenu,nObject)(CALLSCRIPT("ObjectGetYPos",nMenu, nObject))
#define ObjectGetWidth(nMenu,nObject)(CALLSCRIPT("ObjectGetWidth",nMenu, nObject))
#define ObjectGetHeight(nMenu,nObject)(CALLSCRIPT("ObjectGetHeight",nMenu, nObject))
#define ObjectSetSize(nMenu,nObject,nWidth,nHeight) (CALLSCRIPT("ObjectSetSize",nMenu, nObject,nWidth,nHeight))
#define ObjectSetPos(nMenu,nObject,nX,nY) (CALLSCRIPT("ObjectSetPos",nMenu, nObject,nX,nY))
// etc...
#define ImgGrabObject(imgNum,nMenu,nObject) (CALLSCRIPT("ImgGrabObject",imgNum,nMenu,nObject))
#define ImgSetToObject(imgNum,nMenu,nObject) (CALLSCRIPT("ImgSetToObject",imgNum,nMenu,nObject))
#define ImgInflate(imgNum,addW,addH) (CALLSCRIPT("ImgInflate",imgNum,addW,addH))
#define ImgBlurAlpha(imgNum,nBlur) (CALLSCRIPT("ImgBlurAlpha",imgNum,nBlur))
#define ImgGetWidth(imgNum) (CALLSCRIPT("ImgGetWidth",imgNum))
#define ImgGetHeight(imgNum) (CALLSCRIPT("ImgGetHeight",imgNum))
// etc...
// etc....
// One "secret" command that is not described in lab-talk (because it has no sense there)
// ImgGetRGBABuffer returns the pointer to the RGBA buffer
// be careful what you writing to it!
// the size of buffer is ImgGetWidth(imgNum)*ImgGetHeight(imgNum)*4
#define ImgGetRGBABuffer(imgNum) (CALLSCRIPT("ImgGetRGBABuffer",imgNum))
void RunScript();
struct _PLVariable
{
int m_nVariableType;
float m_fValue;
int m_nValue;
char* m_sValue;
};
typedef void (*PLCallBack)(char* sName, _PLVariable *result,_PLVariable *param1,_PLVariable *param2,_PLVariable *param3,_PLVariable *param4);
PLUGINDLL_API void PL_RunScript(PLCallBack pCallback,HWND hWnd);