public Int32 HNC_MacroVarSetValue(Int32 no, SDataUnion var) { Int32 ret = -1; IntPtr ptr = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(SDataUnion))); Marshal.StructureToPtr(var, ptr, true); ret = HncApi.HNC_MacroVarSetValue(no, ptr, _ClientNo); Marshal.FreeHGlobal(ptr); return(ret); }