13 #define PLANIDLL_VERSION 5 26 PLSI_CURRENTFILEVERSION,
27 PLSI_OLDESTFILEVERSION,
28 PLSI_LOADEDFILEVERSION,
30 PLSI_PAUSEAFTERADVANCE
93 #define PLDLLFN _declspec(dllexport) 130 ePL_FindDataObjectName,
134 ePL_ListFromDataObject,
135 ePL_GetNamedLabelList,
143 ePL_FindLabelAutoAdd,
163 ePL_GetBroadcastName,
165 ePL_SendBroadcastTuple,
166 ePL_RegisterBroadcastCallback,
175 ePL_RegisterPauseCallback,
178 ePL_WaitModelStarted,
199 typedef PLDLLFN
const char * tPL_AppVersion();
212 typedef PLDLLFN
int tPL_InitThread(HMODULE,
213 const char * the_args,
214 HWND the_owner_hwnd);
218 typedef PLDLLFN
int tPL_WaitThreadRunning();
222 typedef PLDLLFN
void tPL_TermThread();
227 typedef PLDLLFN
void * tPL_GetProc(
int);
237 typedef PLDLLFN
void tPL_SetInstance(HINSTANCE h);
245 typedef PLDLLFN PLRESULT tPL_Init(
const char * cmdline,
253 typedef PLDLLFN
void tPL_Term();
259 typedef PLDLLFN PLRESULT tPL_Process();
272 typedef PLDLLFN PLRESULT tPL_WaitModelStarted(
int timeout);
285 PLRUNCMD_StartPause = 3
288 typedef PLDLLFN PLRESULT tPL_Run(
int runcmd);
292 typedef PLDLLFN HWND tPL_GetWindow();
296 typedef PLDLLFN HWND tPL_GetOwnerWindow();
311 typedef PLDLLFN
void tPL_SuspendThread();
312 typedef PLDLLFN
void tPL_ResumeThread();
334 typedef PLDLLFN PLRESULT tPL_LoadModel(
const char * modelname,
const char * loadfile);
339 typedef PLDLLFN
double tPL_GetSystemInfo(
int sysinfoid);
340 typedef PLDLLFN PLRESULT tPL_SetSystemInfo(
int sysinfoid,
double v);
350 typedef PLDLLFN
int tPL_DataObjectCount();
351 typedef PLDLLFN PLDataObject * tPL_GetDataObject(
int w);
352 typedef PLDLLFN PLDataObject * tPL_FindDataObjectName(
const char *);
353 typedef PLDLLFN PLDataObject * tPL_FindDataObject(
long index);
354 typedef PLDLLFN
int tPL_DataObjectType(PLDataObject*);
355 typedef PLDLLFN
const char * tPL_DataObjectName(PLDataObject*);
362 typedef PLDLLFN PLLabelList * tPL_ListFromDataObject(PLDataObject *);
363 typedef PLDLLFN PLLabelList * tPL_GetNamedLabelList(
const char *);
367 typedef PLDLLFN
int tPL_LabelCount(PLLabelList *);
368 typedef PLDLLFN
const char * tPL_GetLabelName(PLLabelList *,
int w);
369 typedef PLDLLFN
long tPL_GetLabelIndex(PLLabelList *,
int w);
370 typedef PLDLLFN
int tPL_FindLabelName(PLLabelList *,
const char *);
371 typedef PLDLLFN
long tPL_LookUpLabel(PLLabelList *,
const char *);
372 typedef PLDLLFN
const char * tPL_LookUpLValue(PLLabelList *,
long v);
373 typedef PLDLLFN
const char * tPL_LookUpDValue(PLLabelList *,
double v);
374 typedef PLDLLFN
int tPL_FindLabelAutoAdd(PLLabelList *,
const char *);
381 typedef PLDLLFN
int tPL_GetAttFormat(PLDataObject *);
382 typedef PLDLLFN PLLabelList* tPL_GetAttLabels(PLDataObject *);
383 typedef PLDLLFN
double tPL_GetAttValue(PLDataObject *);
384 typedef PLDLLFN PLRESULT tPL_SetAttValue(PLDataObject *,
double data);
385 typedef PLDLLFN
const char * tPL_GetAttText(PLDataObject *);
386 typedef PLDLLFN PLRESULT tPL_SetAttText(PLDataObject *,
const char *);
393 typedef PLDLLFN
int tPL_Rows(PLDataObject *);
394 typedef PLDLLFN
int tPL_Columns(PLDataObject *);
395 typedef PLDLLFN
const char * tPL_ColumnName(PLDataObject *,
int column);
396 typedef PLDLLFN
int tPL_GetColumnFormat(PLDataObject *,
int column);
397 typedef PLDLLFN PLRESULT tPL_SetColumnFormat(PLDataObject *,
int column,
int format,PLLabelList *);
398 typedef PLDLLFN PLLabelList * tPL_GetColumnLabels(PLDataObject *,
int column);
399 typedef PLDLLFN
int tPL_FindColumn(PLDataObject *,
const char * col_name);
403 typedef PLDLLFN PLRESULT tPL_TableResize(PLDataObject *,
int r,
int c);
405 typedef PLDLLFN
double tPL_GetCell(PLDataObject *,
int row,
int col);
406 typedef PLDLLFN PLRESULT tPL_SetCell(PLDataObject *,
int row,
int col,
double data);
410 typedef PLDLLFN
const char * tPL_GetCellText(PLDataObject *,
int row,
int col);
411 typedef PLDLLFN PLRESULT tPL_SetCellText(PLDataObject *,
int row,
int col,
const char *);
415 typedef PLDLLFN PLRESULT tPL_GetColumn(PLDataObject *,
int col,
int rows,
double * into);
416 typedef PLDLLFN PLRESULT tPL_SetColumn(PLDataObject *,
int col,
int rows,
double * to);
418 typedef PLDLLFN PLRESULT tPL_InsertRow(PLDataObject *,
int at_row,
int count);
419 typedef PLDLLFN PLRESULT tPL_DeleteRow(PLDataObject *,
int at_row,
int count);
420 typedef PLDLLFN PLRESULT tPL_InsertColumn(PLDataObject *,
int at_row,
int count);
421 typedef PLDLLFN PLRESULT tPL_DeleteColumn(PLDataObject *,
int at_row,
int count);
429 typedef PLDLLFN
int tPL_BroadcastCount();
430 typedef PLDLLFN PLBroadcast * tPL_GetBroadcast(
int w);
431 typedef PLDLLFN PLBroadcast * tPL_GetBroadcastName(
const char * name);
443 typedef PLDLLFN PLRESULT tPL_SendBroadcast(PLBroadcast *);
444 typedef PLDLLFN PLRESULT tPL_SendBroadcastTuple(PLBroadcast *,
454 typedef PLDLLFN PLRESULT tPL_SendBroadcastBG(PLBroadcast *);
455 typedef PLDLLFN PLRESULT tPL_SendBroadcastTupleBG(PLBroadcast *,
472 typedef PLRESULT CALLBACK tPL_BroadcastCallback(PLBroadcast *,
480 typedef PLDLLFN PLRESULT tPL_RegisterBroadcastCallback(PLBroadcast *,
481 tPL_BroadcastCallback *,
496 SIMUL_EndTimeReached,
500 SIMUL_AdvanceTimeReached,
501 SIMUL_RunMemoryError,
505 typedef PLRESULT CALLBACK tPL_PauseCallback(
double the_time,
509 typedef PLDLLFN
void tPL_RegisterPauseCallback(tPL_PauseCallback * fn,
519 typedef PLDLLFN
int tPL_FormatModeCount();
520 typedef PLDLLFN
const char * tPL_FormatName(
int fmt);
521 typedef PLDLLFN PLRESULT tPL_StringToValue(
const char * s,
525 typedef PLDLLFN PLRESULT tPL_ValueToString(
double v,
536 inline long PL_NearestInt(
double v)
539 return (
long)(v + 0.5 - (v < 0.0));