public static bool CheckStartupNotify(string binName, KService service, ref bool silent_arg, QByteArray wmclass_arg)
{
StackItem[] stack = new StackItem[5];
#if DEBUG
stack[1].s_class = (IntPtr) DebugGCHandle.Alloc(binName);
#else
stack[1].s_class = (IntPtr) GCHandle.Alloc(binName);
#endif
#if DEBUG
stack[2].s_class = (IntPtr) DebugGCHandle.Alloc(service);
#else
stack[2].s_class = (IntPtr) GCHandle.Alloc(service);
#endif
stack[3].s_bool = silent_arg;
#if DEBUG
stack[4].s_class = (IntPtr) DebugGCHandle.Alloc(wmclass_arg);
#else
stack[4].s_class = (IntPtr) GCHandle.Alloc(wmclass_arg);
#endif
staticInterceptor.Invoke("checkStartupNotify$#$#", "checkStartupNotify(const QString&, const KService*, bool*, QByteArray*)", stack);
#if DEBUG
DebugGCHandle.Free((GCHandle) stack[1].s_class);
#else
((GCHandle) stack[1].s_class).Free();
#endif
#if DEBUG
DebugGCHandle.Free((GCHandle) stack[2].s_class);
#else
((GCHandle) stack[2].s_class).Free();
#endif
silent_arg = stack[3].s_bool;
#if DEBUG
DebugGCHandle.Free((GCHandle) stack[4].s_class);
#else
((GCHandle) stack[4].s_class).Free();
#endif
return stack[0].s_bool;
}