static private MqErrorE FactoryCreate(IntPtr tmpl, MqFactoryE create, IntPtr data, ref IntPtr contextP) { try { contextP = ((IFactory)GCHandle.FromIntPtr(data).Target).Call().context; } catch (Exception ex) { return(MqErrorSet2(tmpl, ex)); } MqConfigDup(contextP, tmpl); return(MqErrorE.MQ_OK); }
/*****************************************************************************/ /* */ /* private */ /* */ /*****************************************************************************/ //struct MqFactoryItemS* const item, static private MqErrorE FactoryCreate(IntPtr tmpl, MqFactoryE create, IntPtr item, ref IntPtr contextP) { try { Object[] args = new Object[1]; args[0] = tmpl != IntPtr.Zero ? MqS.GetSelf(tmpl) : null; IntPtr data = MqFactoryItemGetCreateData(item); contextP = ((MqS)((ConstructorInfo)GCHandle.FromIntPtr(data).Target).Invoke(args)).context; } catch (Exception ex) { if (create == MqFactoryE.MQ_FACTORY_NEW_INIT) { return(MqErrorE.MQ_ERROR); } else { return(MqS.MqErrorSet2(tmpl, ex)); } } if (create != MqFactoryE.MQ_FACTORY_NEW_INIT) { MqSetupDup(contextP, tmpl); } return(MqErrorE.MQ_OK); }
private static MqErrorE FactoryCreate(IntPtr tmpl, MqFactoryE create, IntPtr data, ref IntPtr contextP) { try { contextP = ((IFactory)GCHandle.FromIntPtr(data).Target).Factory().context; } catch (Exception ex) { return MqErrorSet2 (tmpl, ex); } MqConfigDup (contextP, tmpl); MqSetupDup (contextP, tmpl); return MqErrorE.MQ_OK; }