1
#region Request #{DelegateName}
3
[DllImport(DllName.m_dllName, CallingConvention = CallingConvention.Cdecl)]
4
private static extern void Export#{ThisName}Event_Advise#{DelegateName}(IntPtr _native, bool _advise);
6
public delegate void Handle#{DelegateName}(
7
#{ValueTypePrefix1}#{TypeName1} #{ValueName1});
9
private Handle#{DelegateName} mEvent#{DelegateName};
10
public event Handle#{DelegateName} Request#{DelegateName}
14
if (ExportEvent#{DelegateName}.mDelegate == null)
16
ExportEvent#{DelegateName}.mDelegate = new ExportEvent#{DelegateName}.ExportHandle(OnExport#{DelegateName});
17
ExportEvent#{DelegateName}.Export#{ThisName}Event_Delegate#{DelegateName}(ExportEvent#{DelegateName}.mDelegate);
20
if (mEvent#{DelegateName} == null)
21
Export#{ThisName}Event_Advise#{DelegateName}(Native, true);
22
mEvent#{DelegateName} += value;
26
mEvent#{DelegateName} -= value;
27
if (mEvent#{DelegateName} == null)
28
Export#{ThisName}Event_Advise#{DelegateName}(Native, false);
32
private struct ExportEvent#{DelegateName}
34
[DllImport(DllName.m_dllName, CallingConvention = CallingConvention.Cdecl)]
35
public static extern void Export#{ThisName}Event_Delegate#{DelegateName}(ExportHandle _delegate);
36
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
37
public delegate void ExportHandle(
38
#{ValueMarshalAs1}#{ValueTypePrefix1}#{ValueTypeName1} #{ValueName1});
40
public static ExportHandle mDelegate;
43
private static void OnExport#{DelegateName}(
44
#{ValueTypePrefix1}#{ValueTypeName1} #{ValueName1})
46
#{ValueTypePrefix1}#{TypeName1} sender = (#{ValueTypePrefix1}#{TypeName1})BaseWidget.GetByNative(#{ValueName1});
48
if (sender.mEvent#{DelegateName} != null)
49
sender.mEvent#{DelegateName}(