BOOL StringConditionValue(PLUBECTX pCtx, PSTATEDESC pDesc) { char szBuf[c_nStrBufSize]; if (pCtx->ParseStringEmbed((char *)pDesc->pvData, szBuf) < 0) { return FALSE; } switch (pDesc->member) { case Member_Name: return NameConditionValue(pCtx, pDesc->object, szBuf); case Member_Type: return TypeConditionValue(pCtx, pDesc->object, szBuf); default: assert(TRUE == FALSE); return FALSE; } }
IMPL_STATEMENT(Func)(PLUBECTX pCtx, PSTATEDESC pDesc) { char szBuf[c_nStrBufSize]; PVOID pvArg; UserFn_t fn; if (pDesc->pvData) { if (pCtx->ParseStringEmbed((char *)pDesc->pvData, szBuf) < 0) { return LUBE_OK; } pvArg = (PVOID)szBuf; } else { pvArg = GetFunctionArg(pCtx, pDesc); if (!pvArg) return LUBE_OK; } fn = GetUserFunction(pDesc->dwExtra); return (*fn)(pCtx, pDesc, pvArg); }