		#region Method #{MethodName}

		[DllImport(DllName.m_dllName, CallingConvention = CallingConvention.Cdecl)]
        #{ReturnValueMarshalAs}
		private static extern #{ReturnTypeName} Export#{ThisName}_#{MethodName}_#{ValueName1}_#{ValueName2}_#{ValueName3}(IntPtr _native,
			#{ValueMarshalAs1}#{ValueTypePrefix1}#{ValueTypeName1} #{ValueName1},
			#{ValueMarshalAs2}#{ValueTypePrefix2}#{ValueTypeName2} #{ValueName2},
			#{ValueMarshalAs3}#{ValueTypePrefix3}#{ValueTypeName3} #{ValueName3});

		public #{TypeName} #{MethodName}(
			#{TypeName1} #{ValueName1},
			#{TypeName2} #{ValueName2},
			#{TypeName3} #{ValueName3})
		{
			return #{ReturnConvertBefore}Export#{ThisName}_#{MethodName}_#{ValueName1}_#{ValueName2}_#{ValueName3}(Native,
				#{ConvertBefore1}#{ValueTypePrefix1}#{ValueName1}#{ConvertPost1},
				#{ConvertBefore2}#{ValueTypePrefix2}#{ValueName2}#{ConvertPost2},
				#{ConvertBefore3}#{ValueTypePrefix3}#{ValueName3}#{ConvertPost3})#{ReturnConvertPost};
		}

		#endregion
