	public:
		Convert<#{OriginalTypeName}>::Type #{MethodName}(
			Convert<#{OriginalTypeName1}>::Type #{ValueName1} ,
			Convert<#{OriginalTypeName2}>::Type #{ValueName2} ,
			Convert<#{OriginalTypeName3}>::Type #{ValueName3} ,
			Convert<#{OriginalTypeName4}>::Type #{ValueName4} )
		{
			MMYGUI_CHECK_NATIVE(mNative);
			return Convert<#{OriginalTypeName}>::To(
				static_cast<ThisType*>(mNative)->#{OriginalMethodName}(
					Convert<#{OriginalTypeName1}>::From(#{ValueName1}) ,
					Convert<#{OriginalTypeName2}>::From(#{ValueName2}) ,
					Convert<#{OriginalTypeName3}>::From(#{ValueName3}) ,
					Convert<#{OriginalTypeName4}>::From(#{ValueName4}) ) );
		}

		Convert<#{OriginalTypeName}>::Type #{MethodName}(
			Convert<#{OriginalTypeName1}>::Type #{ValueName1} ,
			Convert<#{OriginalTypeName2}>::Type #{ValueName2} ,
			Convert<#{OriginalTypeName3}>::Type #{ValueName3} )
		{
			MMYGUI_CHECK_NATIVE(mNative);
			return Convert<#{OriginalTypeName}>::To(
				static_cast<ThisType*>(mNative)->#{OriginalMethodName}(
					Convert<#{OriginalTypeName1}>::From(#{ValueName1}) ,
					Convert<#{OriginalTypeName2}>::From(#{ValueName2}) ,
					Convert<#{OriginalTypeName3}>::From(#{ValueName3}) ) );
		}

		Convert<#{OriginalTypeName}>::Type #{MethodName}(
			Convert<#{OriginalTypeName1}>::Type #{ValueName1} ,
			Convert<#{OriginalTypeName2}>::Type #{ValueName2} )
		{
			MMYGUI_CHECK_NATIVE(mNative);
			return Convert<#{OriginalTypeName}>::To(
				static_cast<ThisType*>(mNative)->#{OriginalMethodName}(
					Convert<#{OriginalTypeName1}>::From(#{ValueName1}) ,
					Convert<#{OriginalTypeName2}>::From(#{ValueName2}) ) );
		}

		Convert<#{OriginalTypeName}>::Type #{MethodName}(
			Convert<#{OriginalTypeName1}>::Type #{ValueName1} )
		{
			MMYGUI_CHECK_NATIVE(mNative);
			return Convert<#{OriginalTypeName}>::To(
				static_cast<ThisType*>(mNative)->#{OriginalMethodName}(
					Convert<#{OriginalTypeName1}>::From(#{ValueName1}) ) );
		}
