public static Int32[] GetIntParam(IntPtr bar, String varName, String paramName, int paramCount = 0)
{
if (bar == IntPtr.Zero) {
throw new ArgumentOutOfRangeException("bar");
} else if (paramName == null) {
throw new ArgumentNullException("paramName");
}
var buffer = new Int32[paramCount == 0 ? 32 : paramCount];
int count = NativeMethods.TwGetParamInt(bar, varName, paramName, ParamValueType.Int32, (uint)buffer.Length, buffer);
if (count == 0) throw new AntTweakBarException("TwGetParam failed.");
if (paramCount == 0) {
var outBuf = new Int32[count];
Array.Copy(buffer, outBuf, count);
return outBuf;
} else {
return buffer;
}
}