Componentes.Terceros.RemObj.../internal/6.0.39.777/1/RemObjects SDK for Delphi/Source/CodeGen2/Templates/Templates.lrs
2010-01-18 15:15:59 +00:00

3442 lines
272 KiB
Plaintext

LazarusResources.Add('TEMPLATE_INTF_PAS','RCDATA',[
'unit %UNIT_NAME%;'#13#10#13#10'{--------------------------------------------'
+'--------------------------------}'#13#10'{ This unit was automatically gene'
+'rated by the RemObjects SDK after reading }'#13#10'{ the RODL file associa'
+'ted with this project . }'#13#10'{ '
+' }'#13#10'{'
+' Do not modify this unit manually, or your changes will be lost when this '
+' }'#13#10'{ unit is regenerated the next time you compile the project. '
+' }'#13#10'{-----------------------------------------------------'
+'-----------------------}'#13#10#13#10'{$I RemObjects.inc}'#13#10#13#10'inte'
+'rface'#13#10#13#10'uses'#13#10' {vcl:} Classes, TypInfo,'#13#10' // <%%% '
+'START REQUIRED_UNITS %%%>'#13#10' {Required:} %REQUIRED_UNIT_NAME%,'#13#10
+' // <%%% END REQUIRED_UNITS %%%>'#13#10' {RemObjects:} uROXMLIntf, uROCla'
+'sses, uROClient, uROTypes, uROClientIntf;'#13#10#13#10'const'#13#10' { Lib'
+'rary ID }'#13#10' LibraryUID = ''%LIBRARY_UID%'';'#13#10' TargetNamespace'
+' = ''%NAMESPACE_NAME%'';'#13#10#13#10' { Service Interface ID''s }'#13#10
+' // <%%% START SERVICES %%%>'#13#10' I%SERVICE_NAME%_IID : TGUID = ''%SER'
+'VICE_UID%'';'#13#10' // <%%% END SERVICES %%%>'#13#10' '#13#10' { Event '
+'ID''s }'#13#10' // <%%% START EVENT_SINKS %%%>'#13#10' EID_%EVENT_SINK_NA'
+'ME% = ''%EVENT_SINK_NAME%'';'#13#10' // <%%% END EVENT_SINKS %%%>'#13#10' '
+' '#13#10'type'#13#10' { Forward declarations }'#13#10' // <%%% START SERV'
+'ICES %%%>'#13#10' I%SERVICE_NAME% = interface;'#13#10' // <%%% END SERVIC'
+'ES %%%>'#13#10' // <%%% START ARRAYS %%%>'#13#10' %ARRAY_NAME% = class;'
+#13#10' // <%%% END ARRAYS %%%>'#13#10' // <%%% START STRUCTS %%%>'#13#10
+' %STRUCT_NAME% = class;'#13#10' // <%%% END STRUCTS %%%>'#13#10' // <%%%'
+' START EXCEPTIONS %%%>'#13#10' %EXCEPTION_NAME% = class;'#13#10' // <%%% '
+'END EXCEPTIONS %%%>'#13#10' // <%%% START EVENT_SINKS %%%>'#13#10' I%EVEN'
+'T_SINK_NAME% = interface;'#13#10' // <%%% END EVENT_SINKS %%%>'#13#10#13#10
+' { Enumerateds }'#13#10' // <%%% START ENUMS %%%>'#13#10' // <%%% START '
+'DOCUMENTATION %%%>'#13#10#13#10' { Description:'#13#10' %CONTENT% }'
+#13#10' // <%%% END DOCUMENTATION %%%>'#13#10' %ENUM_NAME% = ('#13#10' '
+' // <%%% START VALUES %%%>'#13#10' %VALUE_NAME%,'
+#13#10' // <%%% END VALUES %%%>'#13#10' );'#13
+#10#13#10' // <%%% END ENUMS %%%>'#13#10' // <%%% START STRUCTS %%%>'#13#10
+' { %STRUCT_NAME% }'#13#10' // <%%% START DOCUMENTATION %%%>'#13#10#13#10
+' { Description:'#13#10' %CONTENT% }'#13#10' // <%%% END DOCUMENTATIO'
+'N %%%>'#13#10' %STRUCT_NAME% = class(%STRUCT_ANCESTOR_NAME%)'#13#10' priv'
+'ate'#13#10' FDestroying: Boolean;'#13#10#13#10' // <%%% START FIELDS_'
+'NO_STRIP %%%>'#13#10' f%FIELD_NAME%: %FIELD_TYPE%;'#13#10' // <%%% EN'
+'D FIELDS_NO_STRIP %%%>'#13#10' // <%%% START FIELDS_NO_STRIP %%%>'#13#10
+' // <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#13#10' function Get%FIELD_'
+'NAME%: %FIELD_TYPE%;'#13#10' // <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#13
+#10' // <%%% END FIELDS_NO_STRIP %%%>'#13#10' public'#13#10' // <%%% '
+'START STRUCT_GENERATE_DEFAULT_VALUES %%%>'#13#10' constructor Create(aCo'
+'llection : TCollection); override;'#13#10' // <%%% END STRUCT_GENERATE_D'
+'EFAULT_VALUES %%%>'#13#10' procedure Assign(iSource: TPersistent); overr'
+'ide;'#13#10' destructor Destroy; override;'#13#10' // <%%% START IF_H'
+'AS_FIELDS %%%>'#13#10' procedure ReadComplex(ASerializer: TObject); over'
+'ride;'#13#10' procedure WriteComplex(ASerializer: TObject); override;'#13
+#10' // <%%% END IF_HAS_FIELDS %%%>'#13#10' published '#13#10' // Fie'
+'lds must be published for the ancestor destructor to find and destroy them.'
+#13#10' // <%%% START FIELDS_NO_STRIP %%%>'#13#10' // <%%% START IF_FI'
+'ELD_TYPE_SIMPLE %%%>'#13#10' property %FIELD_NAME%:%FIELD_TYPE% read f%F'
+'IELD_NAME% write f%FIELD_NAME%;'#13#10' // <%%% END IF_FIELD_TYPE_SIMPLE'
+' %%%>'#13#10' // <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#13#10' proper'
+'ty %FIELD_NAME%:%FIELD_TYPE% read Get%FIELD_NAME% write f%FIELD_NAME%;'#13
+#10' // <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#13#10' // <%%% END FIELDS'
+'_NO_STRIP %%%>'#13#10' end;'#13#10#13#10' { %STRUCT_COLLECTION_NAME% }'#13
+#10' %STRUCT_COLLECTION_NAME% = class(%STRUCT_ANCESTOR_COLLECTION_NAME%)'#13
+#10' protected'#13#10' constructor Create(aItemClass: TCollectionItemCla'
+'ss); overload;'#13#10' function GetItems(aIndex: integer): %STRUCT_NAME%'
+';'#13#10' procedure SetItems(aIndex: integer; const Value: %STRUCT_NAME%'
+');'#13#10' public'#13#10' constructor Create; overload;'#13#10' func'
+'tion Add: %STRUCT_NAME%; reintroduce;'#13#10' // <%%% START ARRAYS_IS_FO'
+'UND %%%>'#13#10' procedure SaveToArray(anArray: %ARRAY_NAME%); overload;'
,#13#10' procedure LoadFromArray(anArray: %ARRAY_NAME%); overload;'#13#10
+' // <%%% END ARRAYS_IS_FOUND %%%>'#13#10' property Items[Index: integ'
+'er]:%STRUCT_NAME% read GetItems write SetItems; default;'#13#10' end;'#13
+#10#13#10' // <%%% END STRUCTS %%%>'#13#10' // <%%% START ARRAYS %%%>'#13
+#10' { %ARRAY_NAME% }'#13#10' // <%%% START DOCUMENTATION %%%>'#13#10#13#10
+' { Description:'#13#10' %CONTENT% }'#13#10' // <%%% END DOCUMENTATIO'
+'N %%%>'#13#10' %ARRAY_NAME%_%ARRAY_TYPE% = array of %ARRAY_TYPE%;'#13#10' '
+' %ARRAY_NAME% = class(TROArray)'#13#10' private'#13#10' fCount: Integer'
+';'#13#10' fItems : %ARRAY_NAME%_%ARRAY_TYPE%;'#13#10' protected'#13#10
+' procedure Grow; virtual;'#13#10' function GetItems(aIndex: integer):'
+' %ARRAY_TYPE%;'#13#10' procedure SetItems(aIndex: integer; const Value: '
+'%ARRAY_TYPE%);'#13#10' function GetCount: integer; override;'#13#10' pu'
+'blic'#13#10' class function GetItemType: PTypeInfo; override;'#13#10' '
+' // <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' class function GetItem'
+'Class: TClass; override;'#13#10' // <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'
+#13#10' class function GetItemSize: integer; override;'#13#10#13#10' f'
+'unction GetItemRef(aIndex: integer): pointer; override;'#13#10' // <%%% '
+'START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' procedure SetItemRef(aIndex: in'
+'teger; Ref: pointer); override;'#13#10' // <%%% END IF_ARRAY_TYPE_COMPLE'
+'X %%%>'#13#10' procedure Clear; override;'#13#10' procedure Delete(aI'
+'ndex: integer); override;'#13#10' procedure Resize(ElementCount: integer'
+'); override;'#13#10#13#10' procedure Assign(iSource:TPersistent); overri'
+'de;'#13#10' procedure ReadComplex(ASerializer: TObject); override;'#13#10
+' procedure WriteComplex(ASerializer: TObject); override;'#13#10' // <'
+'%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' function Add: %ARRAY_TYPE%;'
+' overload;'#13#10' // <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' fun'
+'ction Add(const Value: %ARRAY_TYPE%):integer; overload;'#13#10' // <%%% '
+'START IF_ARRAY_TYPE_SIMPLE %%%>'#13#10' function GetIndex(const aPropert'
+'yName : string;'#13#10' const aPropertyValue : Variant'
+';'#13#10' StartFrom : integer = 0;'#13#10' '
+' Options : TROSearchOptions = [soIgnoreCase]) : integer; override;'
+#13#10' // <%%% END IF_ARRAY_TYPE_SIMPLE %%%>'#13#10#13#10' property C'
+'ount : integer read GetCount;'#13#10' property Items[Index: integer]:%AR'
+'RAY_TYPE% read GetItems write SetItems; default;'#13#10' property InnerA'
+'rray: %ARRAY_NAME%_%ARRAY_TYPE% read fItems;'#13#10' end;'#13#10#13#10' /'
+'/ <%%% END ARRAYS %%%>'#13#10' { Exceptions }'#13#10' // <%%% START EXCEP'
+'TIONS %%%>'#13#10' // <%%% START DOCUMENTATION %%%>'#13#10#13#10' { Descr'
+'iption:'#13#10' %CONTENT% }'#13#10' // <%%% END DOCUMENTATION %%%>'#13
+#10' %EXCEPTION_NAME% = class(%EXCEPTION_ANCESTOR_NAME%)'#13#10' private'
+#13#10' // <%%% START FIELDS_NO_STRIP %%%>'#13#10' f%FIELD_NAME%: %FIE'
+'LD_TYPE%;'#13#10' // <%%% END FIELDS_NO_STRIP %%%>'#13#10' public'#13#10
+' constructor Create(anExceptionMessage : string'#13#10' '
+' // <%%% START ANCESTOR_FIELDS %%%>'#13#10' ; a%'
+'FIELD_NAME%: %FIELD_TYPE%'#13#10' // <%%% END ANCESTO'
+'R_FIELDS %%%>'#13#10' // <%%% START FIELDS_NO_STRIP %'
+'%%>'#13#10' ; a%FIELD_NAME%: %FIELD_TYPE%'#13#10' '
+' // <%%% END FIELDS_NO_STRIP %%%>'#13#10' '
+' );'#13#10' // <%%% START IF_HAS_FIELDS %%%>'#13#10' procedure '
+'ReadException(ASerializer: TObject); override;'#13#10' procedure WriteEx'
+'ception(ASerializer: TObject); override;'#13#10' // <%%% END IF_HAS_FIEL'
+'DS %%%>'#13#10' published'#13#10' // <%%% START FIELDS_NO_STRIP %%%>'#13
+#10' property %FIELD_NAME%: %FIELD_TYPE% read f%FIELD_NAME% write f%FIELD'
+'_NAME%;'#13#10' // <%%% END FIELDS_NO_STRIP %%%>'#13#10' end;'#13#10#13
+#10' // <%%% END EXCEPTIONS %%%>'#13#10' // <%%% START SERVICES %%%>'#13#10
+' { I%SERVICE_NAME% }'#13#10' // <%%% START DOCUMENTATION %%%>'#13#10#13#10
+' { Description:'#13#10' %CONTENT% }'#13#10' // <%%% END DOCUMENTATIO'
+'N %%%>'#13#10' I%SERVICE_NAME% = interface%SERVICE_ANCESTOR_NAME%'#13#10' '
+' [''%SERVICE_UID%'']'#13#10' // <%%% START FUNCTION_OPERATIONS %%%>'#13
+#10' function %OPERATION_NAME%('#13#10' // <%%% START PARAM'
+'S %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_NAME%: %PARAM_TY'
+'PE%;'#13#10' // <%%% END PARAMS %%%>'#13#10' ):'
+' %OPERATION_RESULT%;'#13#10' // <%%% END FUNCTION_OPERATIONS %%%>'#13#10
+' // <%%% START PROCEDURE_OPERATIONS %%%>'#13#10' procedure %OPERATION'
+'_NAME%('#13#10' // <%%% START PARAMS %%%>'#13#10' '
,' %PARAM_FRONT_MODIFIER% %PARAM_NAME%: %PARAM_TYPE%;'#13#10' '
+' // <%%% END PARAMS %%%>'#13#10' );'#13#10' // <%%% EN'
+'D PROCEDURE_OPERATIONS %%%>'#13#10' end;'#13#10#13#10' { Co%SERVICE_NAME%'
+' }'#13#10' Co%SERVICE_NAME% = class'#13#10' class function Create(const'
+' aMessage: IROMessage; aTransportChannel: IROTransportChannel): I%SERVICE_N'
+'AME%;'#13#10' end;'#13#10#13#10' { T%SERVICE_NAME%_Proxy }'#13#10' T%SER'
+'VICE_NAME%_Proxy = class(%SERVICE_PROXY_ANCESTOR_NAME%, I%SERVICE_NAME%)'#13
+#10' protected'#13#10' function __GetInterfaceName:string; override;'#13
+#10#13#10' // <%%% START FUNCTION_OPERATIONS %%%>'#13#10' function %OP'
+'ERATION_NAME%('#13#10' // <%%% START PARAMS %%%>'#13#10' '
+' %PARAM_FRONT_MODIFIER% %PARAM_NAME%: %PARAM_TYPE%;'#13#10' '
+' // <%%% END PARAMS %%%>'#13#10' ): %OPERATION_RESULT%'
+';'#13#10' // <%%% END FUNCTION_OPERATIONS %%%>'#13#10' // <%%% START '
+'PROCEDURE_OPERATIONS %%%>'#13#10' procedure %OPERATION_NAME%('#13#10' '
+' // <%%% START PARAMS %%%>'#13#10' %PARAM_FRONT_'
+'MODIFIER% %PARAM_NAME%: %PARAM_TYPE%;'#13#10' // <%%% END PA'
+'RAMS %%%>'#13#10' );'#13#10' // <%%% END PROCEDURE_OPERAT'
+'IONS %%%>'#13#10' end;'#13#10#13#10' // <%%% END SERVICES %%%>'#13#10' /'
+'/ <%%% START EVENT_SINKS %%%>'#13#10' { I%EVENT_SINK_NAME% }'#13#10' // <'
+'%%% START DOCUMENTATION %%%>'#13#10#13#10' { Description:'#13#10' %CO'
+'NTENT% }'#13#10' // <%%% END DOCUMENTATION %%%>'#13#10' I%EVENT_SINK_NAME'
+'% = interface%EVENT_SINK_ANCESTOR_NAME%'#13#10' [''%EVENT_SINK_UID%'']'
+#13#10' // <%%% START OPERATIONS %%%>'#13#10' procedure %OPERATION_NAM'
+'E%('#13#10' // <%%% START PARAMS %%%>'#13#10' '
+' %PARAM_FRONT_MODIFIER% %PARAM_NAME%: %PARAM_TYPE%;'#13#10' '
+'// <%%% END PARAMS %%%>'#13#10' );'#13#10' // <%%% END OP'
+'ERATIONS %%%>'#13#10' end;'#13#10#13#10' { I%EVENT_SINK_NAME%_Writer }'#13
+#10' // <%%% START DOCUMENTATION %%%>'#13#10#13#10' { Description:'#13#10
+' %CONTENT% }'#13#10' // <%%% END DOCUMENTATION %%%>'#13#10' I%EVENT_'
+'SINK_NAME%_Writer = interface(I%EVENT_SINK_WRITER_ANCESTOR_NAME%)'#13#10' '
+' [''%EVENT_SINK_UID%'']'#13#10' // <%%% START OPERATIONS %%%>'#13#10' '
+' procedure %OPERATION_NAME%(const __Sender : TGUID'#13#10' '
+'// <%%% START PARAMS %%%>'#13#10' ; %PARAM_FRONT_MODIFIER% %'
+'PARAM_NAME%: %PARAM_TYPE%'#13#10' // <%%% END PARAMS %%%>'#13
+#10' );'#13#10' // <%%% END OPERATIONS %%%>'#13#10' end;'
+#13#10#13#10' // <%%% END EVENT_SINKS %%%>'#13#10'implementation'#13#10#13
+#10'uses'#13#10' {vcl:} SysUtils,'#13#10' {RemObjects:} uROEventRepository'
+', uROSerializer, uRORes;'#13#10#13#10'// <%%% START EXCEPTIONS %%%>'#13#10
+'{ %EXCEPTION_NAME% }'#13#10'constructor %EXCEPTION_NAME%.Create(anException'
+'Message : string'#13#10' // <%%% START ANCESTOR_FIELDS %%%>'#13#10' ; a%F'
+'IELD_NAME%: %FIELD_TYPE%'#13#10' // <%%% END ANCESTOR_FIELDS %%%>'#13#10' '
+' // <%%% START FIELDS_NO_STRIP %%%>'#13#10' ; a%FIELD_NAME%: %FIELD_TYPE%'
+#13#10' // <%%% END FIELDS_NO_STRIP %%%>'#13#10' );'#13#10'begin'#13#10' '
+'inherited Create(anExceptionMessage'#13#10' // <%%% START'
+' ANCESTOR_FIELDS %%%>'#13#10' , a%FIELD_NAME%'#13#10' '
+' // <%%% END ANCESTOR_FIELDS %%%>'#13#10' );'
+#13#10#13#10' // <%%% START FIELDS_NO_STRIP %%%>'#13#10' f%FIELD_NAME% := '
+'a%FIELD_NAME%;'#13#10' // <%%% END FIELDS_NO_STRIP %%%>'#13#10'end;'#13#10
+#13#10'// <%%% START IF_HAS_FIELDS %%%>'#13#10'procedure %EXCEPTION_NAME%.Re'
+'adException(ASerializer: TObject);'#13#10'var'#13#10' // <%%% START ENTIRE'
+'_HIERARCHY_FIELDS %%%>'#13#10' l_%FIELD_NAME%: %FIELD_TYPE%;'#13#10' // <'
+'%%% END ENTIRE_HIERARCHY_FIELDS %%%>'#13#10'begin'#13#10' if TROSerializer'
+'(ASerializer).RecordStrictOrder then begin'#13#10' // <%%% START IF_STRU'
+'CT_HAS_ANCESTOR %%%>'#13#10' inherited;'#13#10' // <%%% END IF_STRUCT'
+'_HAS_ANCESTOR %%%>'#13#10' // <%%% START FIELDS_NO_STRIP %%%>'#13#10' '
+' l_%FIELD_NAME% := %FIELD_NAME%;'#13#10' // <%%% START IF_FIELD_BINARY_T'
+'YPE %%%>'#13#10' TROSerializer(ASerializer).ReadBinary(''%FIELD_ORIGINAL'
+'NAME%'', l_%FIELD_NAME%);'#13#10' if %FIELD_NAME% <> l_%FIELD_NAME% then'
+' %FIELD_NAME%.Free;'#13#10' // <%%% END IF_FIELD_BINARY_TYPE %%%>'#13#10
+' // <%%% START IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' TROSerializer(ASeri'
+'alizer).ReadEnumerated(''%FIELD_ORIGINALNAME%'', TypeInfo(boolean), l_%FIEL'
+'D_NAME%);'#13#10' // <%%% END IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' // <'
+'%%% START IF_FIELD_CURRENCY_TYPE %%%>'#13#10' TROSerializer(ASerializer)'
+'.ReadDouble(''%FIELD_ORIGINALNAME%'', ftCurr, l_%FIELD_NAME%);'#13#10' /'
,'/ <%%% END IF_FIELD_CURRENCY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DA'
+'TETIME_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadDateTime(''%FIEL'
+'D_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DATETIM'
+'E_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DECIMAL_TYPE %%%>'#13#10' '
+'TROSerializer(ASerializer).ReadDecimal(''%FIELD_ORIGINALNAME%'', l_%FIELD_N'
+'AME%);'#13#10' // <%%% END IF_FIELD_DECIMAL_TYPE %%%>'#13#10' // <%%%'
+' START IF_FIELD_DOUBLE_TYPE %%%>'#13#10' TROSerializer(ASerializer).Read'
+'Double(''%FIELD_ORIGINALNAME%'', ftDouble, l_%FIELD_NAME%);'#13#10' // <'
+'%%% END IF_FIELD_DOUBLE_TYPE %%%>'#13#10' // <%%% START IF_FIELD_GUID_TY'
+'PE %%%>'#13#10' TROSerializer(ASerializer).ReadGuid(''%FIELD_ORIGINALNAM'
+'E%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_GUID_TYPE %%%>'#13#10
+' // <%%% START IF_FIELD_INT64_TYPE %%%>'#13#10' TROSerializer(ASerial'
+'izer).ReadInt64(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%'
+'%% END IF_FIELD_INT64_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INTEGER_T'
+'YPE %%%>'#13#10' TROSerializer(ASerializer).ReadInteger(''%FIELD_ORIGINA'
+'LNAME%'', otSLong, l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INTEGER'
+'_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' '
+' TROSerializer(ASerializer).ReadAnsiString(''%FIELD_ORIGINALNAME%'', l_%FI'
+'ELD_NAME%);'#13#10' // <%%% END IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' '
+' // <%%% START IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' TROSerializer(ASeri'
+'alizer).ReadUTF8String(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' '
+' // <%%% END IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' // <%%% START IF_FIE'
+'LD_VARIANT_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadVariant(''%F'
+'IELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_VARI'
+'ANT_TYPE %%%>'#13#10' // <%%% START IF_FIELD_WIDESTRING_TYPE %%%>'#13#10
+' TROSerializer(ASerializer).ReadWideString(''%FIELD_ORIGINALNAME%'', l_%'
+'FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' '
+' // <%%% START IF_FIELD_XML_TYPE %%%>'#13#10' TROSerializer(ASerialize'
+'r).ReadXml(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% EN'
+'D IF_FIELD_XML_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ARRAY_TYPE %%%>'
+#13#10' TROSerializer(ASerializer).ReadArray(''%FIELD_ORIGINALNAME%'', %F'
+'IELD_TYPE%, l_%FIELD_NAME%);'#13#10' if %FIELD_NAME% <> l_%FIELD_NAME% t'
+'hen %FIELD_NAME%.Free;'#13#10' // <%%% END IF_FIELD_ARRAY_TYPE %%%>'#13
+#10' // <%%% START IF_FIELD_ENUM_TYPE %%%>'#13#10' TROSerializer(ASeri'
+'alizer).ReadEnumerated(''%FIELD_ORIGINALNAME%'', TypeInfo(%FIELD_TYPE%), l_'
+'%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ENUM_TYPE %%%>'#13#10' //'
+' <%%% START IF_FIELD_STRUCT_TYPE %%%>'#13#10' TROSerializer(ASerializer)'
+'.ReadStruct(''%FIELD_ORIGINALNAME%'', %FIELD_TYPE%, l_%FIELD_NAME%);'#13#10
+' if %FIELD_NAME% <> l_%FIELD_NAME% then %FIELD_NAME%.Free;'#13#10' //'
+' <%%% END IF_FIELD_STRUCT_TYPE %%%>'#13#10' // <%%% START IF_FIELD_XSDAT'
+'ETIME_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadStruct(''%FIELD_O'
+'RIGINALNAME%'', %FIELD_TYPE%, l_%FIELD_NAME%);'#13#10' if %FIELD_NAME% <'
+'> l_%FIELD_NAME% then %FIELD_NAME%.Free;'#13#10' // <%%% END IF_FIELD_XS'
+'DATETIME_TYPE %%%>'#13#10' %FIELD_NAME% := l_%FIELD_NAME%;'#13#10' //'
+' <%%% END FIELDS_NO_STRIP %%%>'#13#10' end'#13#10' else begin'#13#10' '
+'// <%%% START ENTIRE_HIERARCHY_FIELDS %%%>'#13#10' l_%FIELD_NAME% := %FI'
+'ELD_NAME%;'#13#10' // <%%% START IF_FIELD_BINARY_TYPE %%%>'#13#10' TR'
+'OSerializer(ASerializer).ReadBinary(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME'
+'%);'#13#10' if %FIELD_NAME% <> l_%FIELD_NAME% then %FIELD_NAME%.Free;'#13
+#10' // <%%% END IF_FIELD_BINARY_TYPE %%%>'#13#10' // <%%% START IF_FI'
+'ELD_BOOLEAN_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadEnumerated('
+'''%FIELD_ORIGINALNAME%'', TypeInfo(boolean), l_%FIELD_NAME%);'#13#10' //'
+' <%%% END IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' // <%%% START IF_FIELD_CURR'
+'ENCY_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadDouble(''%FIELD_OR'
+'IGINALNAME%'', ftCurr, l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_CUR'
+'RENCY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DATETIME_TYPE %%%>'#13#10
+' TROSerializer(ASerializer).ReadDateTime(''%FIELD_ORIGINALNAME%'', l_%FI'
+'ELD_NAME%);'#13#10' // <%%% END IF_FIELD_DATETIME_TYPE %%%>'#13#10' /'
+'/ <%%% START IF_FIELD_DECIMAL_TYPE %%%>'#13#10' TROSerializer(ASerialize'
+'r).ReadDecimal(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%'
+'% END IF_FIELD_DECIMAL_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DOUBLE_T'
+'YPE %%%>'#13#10' TROSerializer(ASerializer).ReadDouble(''%FIELD_ORIGINAL'
+'NAME%'', ftDouble, l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DOUBLE_'
+'TYPE %%%>'#13#10' // <%%% START IF_FIELD_GUID_TYPE %%%>'#13#10' TROSe'
,'rializer(ASerializer).ReadGuid(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'
+#13#10' // <%%% END IF_FIELD_GUID_TYPE %%%>'#13#10' // <%%% START IF_F'
+'IELD_INT64_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadInt64(''%FIE'
+'LD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INT64_'
+'TYPE %%%>'#13#10' // <%%% START IF_FIELD_INTEGER_TYPE %%%>'#13#10' TR'
+'OSerializer(ASerializer).ReadInteger(''%FIELD_ORIGINALNAME%'', otSLong, l_%'
+'FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INTEGER_TYPE %%%>'#13#10' '
+'// <%%% START IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' TROSerializer(ASeria'
+'lizer).ReadAnsiString(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' '
+' // <%%% END IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' // <%%% START IF_FIEL'
+'D_UTF8STRING_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadUTF8String'
+'(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD'
+'_UTF8STRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_VARIANT_TYPE %%%>'
+#13#10' TROSerializer(ASerializer).ReadVariant(''%FIELD_ORIGINALNAME%'', '
+'l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_VARIANT_TYPE %%%>'#13#10' '
+' // <%%% START IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' TROSerializer(ASe'
+'rializer).ReadWideString(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10
+' // <%%% END IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' // <%%% START IF_F'
+'IELD_XML_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadXml(''%FIELD_O'
+'RIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_XML_TYPE %'
+'%%>'#13#10' // <%%% START IF_FIELD_ARRAY_TYPE %%%>'#13#10' TROSeriali'
+'zer(ASerializer).ReadArray(''%FIELD_ORIGINALNAME%'', %FIELD_TYPE%, l_%FIELD'
+'_NAME%);'#13#10' if %FIELD_NAME% <> l_%FIELD_NAME% then %FIELD_NAME%.Fre'
+'e;'#13#10' // <%%% END IF_FIELD_ARRAY_TYPE %%%>'#13#10' // <%%% START'
+' IF_FIELD_ENUM_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadEnumerat'
+'ed(''%FIELD_ORIGINALNAME%'', TypeInfo(%FIELD_TYPE%), l_%FIELD_NAME%);'#13#10
+' // <%%% END IF_FIELD_ENUM_TYPE %%%>'#13#10' // <%%% START IF_FIELD_S'
+'TRUCT_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadStruct(''%FIELD_O'
+'RIGINALNAME%'', %FIELD_TYPE%, l_%FIELD_NAME%);'#13#10' if %FIELD_NAME% <'
+'> l_%FIELD_NAME% then %FIELD_NAME%.Free;'#13#10' // <%%% END IF_FIELD_ST'
+'RUCT_TYPE %%%>'#13#10' // <%%% START IF_FIELD_XSDATETIME_TYPE %%%>'#13#10
+' TROSerializer(ASerializer).ReadStruct(''%FIELD_ORIGINALNAME%'', %FIELD_'
+'TYPE%, l_%FIELD_NAME%);'#13#10' if %FIELD_NAME% <> l_%FIELD_NAME% then %'
+'FIELD_NAME%.Free;'#13#10' // <%%% END IF_FIELD_XSDATETIME_TYPE %%%>'#13
+#10' %FIELD_NAME% := l_%FIELD_NAME%;'#13#10' // <%%% END ENTIRE_HIERAR'
+'CHY_FIELDS %%%>'#13#10' end;'#13#10'end;'#13#10#13#10'procedure %EXCEPTION'
+'_NAME%.WriteException(ASerializer: TObject);'#13#10'var'#13#10' // <%%% ST'
+'ART ENTIRE_HIERARCHY_FIELDS %%%>'#13#10' l_%FIELD_NAME%: %FIELD_TYPE%;'#13
+#10' // <%%% END ENTIRE_HIERARCHY_FIELDS %%%>'#13#10'begin'#13#10' if TROS'
+'erializer(ASerializer).RecordStrictOrder then begin'#13#10' // <%%% STAR'
+'T IF_STRUCT_HAS_ANCESTOR %%%>'#13#10' inherited;'#13#10' // <%%% END '
+'IF_STRUCT_HAS_ANCESTOR %%%>'#13#10' // <%%% START FIELDS_NO_STRIP %%%>'
+#13#10' l_%FIELD_NAME% := %FIELD_NAME%;'#13#10' // <%%% START IF_FIELD'
+'_BINARY_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteBinary(''%FIEL'
+'D_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_BINARY_'
+'TYPE %%%>'#13#10' // <%%% START IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' TR'
+'OSerializer(ASerializer).WriteEnumerated(''%FIELD_ORIGINALNAME%'', TypeInfo'
+'(boolean), l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_BOOLEAN_TYPE %%'
+'%>'#13#10' // <%%% START IF_FIELD_CURRENCY_TYPE %%%>'#13#10' TROSeria'
+'lizer(ASerializer).WriteDouble(''%FIELD_ORIGINALNAME%'', ftCurr, l_%FIELD_N'
+'AME%);'#13#10' // <%%% END IF_FIELD_CURRENCY_TYPE %%%>'#13#10' // <%%'
+'% START IF_FIELD_DATETIME_TYPE %%%>'#13#10' TROSerializer(ASerializer).W'
+'riteDateTime(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% '
+'END IF_FIELD_DATETIME_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DECIMAL_T'
+'YPE %%%>'#13#10' TROSerializer(ASerializer).WriteDecimal(''%FIELD_ORIGIN'
+'ALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DECIMAL_TYPE %%'
+'%>'#13#10' // <%%% START IF_FIELD_DOUBLE_TYPE %%%>'#13#10' TROSeriali'
+'zer(ASerializer).WriteDouble(''%FIELD_ORIGINALNAME%'', ftDouble, l_%FIELD_N'
+'AME%);'#13#10' // <%%% END IF_FIELD_DOUBLE_TYPE %%%>'#13#10' // <%%% '
+'START IF_FIELD_GUID_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteGu'
+'id(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIE'
+'LD_GUID_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INT64_TYPE %%%>'#13#10
+' TROSerializer(ASerializer).WriteInt64(''%FIELD_ORIGINALNAME%'', l_%FIEL'
+'D_NAME%);'#13#10' // <%%% END IF_FIELD_INT64_TYPE %%%>'#13#10' // <%%'
,'% START IF_FIELD_INTEGER_TYPE %%%>'#13#10' TROSerializer(ASerializer).Wr'
+'iteInteger(''%FIELD_ORIGINALNAME%'', otSLong, l_%FIELD_NAME%);'#13#10' /'
+'/ <%%% END IF_FIELD_INTEGER_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ANS'
+'ISTRING_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteAnsiString(''%'
+'FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ANS'
+'ISTRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_UTF8STRING_TYPE %%%>'#13
+#10' TROSerializer(ASerializer).WriteUTF8String(''%FIELD_ORIGINALNAME%'','
+' l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_UTF8STRING_TYPE %%%>'#13
+#10' // <%%% START IF_FIELD_VARIANT_TYPE %%%>'#13#10' TROSerializer(AS'
+'erializer).WriteVariant(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' '
+' // <%%% END IF_FIELD_VARIANT_TYPE %%%>'#13#10' // <%%% START IF_FIELD'
+'_WIDESTRING_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteWideString'
+'(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD'
+'_WIDESTRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_XML_TYPE %%%>'#13#10
+' TROSerializer(ASerializer).WriteXml(''%FIELD_ORIGINALNAME%'', l_%FIELD_'
+'NAME%);'#13#10' // <%%% END IF_FIELD_XML_TYPE %%%>'#13#10' // <%%% ST'
+'ART IF_FIELD_ARRAY_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteArr'
+'ay(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%, %FIELD_TYPE%);'#13#10' // <'
+'%%% END IF_FIELD_ARRAY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ENUM_TYP'
+'E %%%>'#13#10' TROSerializer(ASerializer).WriteEnumerated(''%FIELD_ORIGI'
+'NALNAME%'', TypeInfo(%FIELD_TYPE%), l_%FIELD_NAME%);'#13#10' // <%%% END'
+' IF_FIELD_ENUM_TYPE %%%>'#13#10' // <%%% START IF_FIELD_STRUCT_TYPE %%%>'
+#13#10' TROSerializer(ASerializer).WriteStruct(''%FIELD_ORIGINALNAME%'', '
+'l_%FIELD_NAME%, %FIELD_TYPE%);'#13#10' // <%%% END IF_FIELD_STRUCT_TYPE '
+'%%%>'#13#10' // <%%% START IF_FIELD_XSDATETIME_TYPE %%%>'#13#10' TROS'
+'erializer(ASerializer).WriteStruct(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%'
+', %FIELD_TYPE%);'#13#10' // <%%% END IF_FIELD_XSDATETIME_TYPE %%%>'#13#10
+' // <%%% END FIELDS_NO_STRIP %%%>'#13#10' end'#13#10' else begin'#13#10
+' // <%%% START ENTIRE_HIERARCHY_FIELDS %%%>'#13#10' l_%FIELD_NAME% :='
+' %FIELD_NAME%;'#13#10' // <%%% START IF_FIELD_BINARY_TYPE %%%>'#13#10' '
+' TROSerializer(ASerializer).WriteBinary(''%FIELD_ORIGINALNAME%'', l_%FIELD'
+'_NAME%);'#13#10' // <%%% END IF_FIELD_BINARY_TYPE %%%>'#13#10' // <%%'
+'% START IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' TROSerializer(ASerializer).Wr'
+'iteEnumerated(''%FIELD_ORIGINALNAME%'', TypeInfo(boolean), l_%FIELD_NAME%);'
+#13#10' // <%%% END IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' // <%%% START I'
+'F_FIELD_CURRENCY_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteDoubl'
+'e(''%FIELD_ORIGINALNAME%'', ftCurr, l_%FIELD_NAME%);'#13#10' // <%%% END'
+' IF_FIELD_CURRENCY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DATETIME_TYP'
+'E %%%>'#13#10' TROSerializer(ASerializer).WriteDateTime(''%FIELD_ORIGINA'
+'LNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DATETIME_TYPE %%'
+'%>'#13#10' // <%%% START IF_FIELD_DECIMAL_TYPE %%%>'#13#10' TROSerial'
+'izer(ASerializer).WriteDecimal(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'
+#13#10' // <%%% END IF_FIELD_DECIMAL_TYPE %%%>'#13#10' // <%%% START I'
+'F_FIELD_DOUBLE_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteDouble('
+'''%FIELD_ORIGINALNAME%'', ftDouble, l_%FIELD_NAME%);'#13#10' // <%%% END'
+' IF_FIELD_DOUBLE_TYPE %%%>'#13#10' // <%%% START IF_FIELD_GUID_TYPE %%%>'
+#13#10' TROSerializer(ASerializer).WriteGuid(''%FIELD_ORIGINALNAME%'', l_'
+'%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_GUID_TYPE %%%>'#13#10' //'
+' <%%% START IF_FIELD_INT64_TYPE %%%>'#13#10' TROSerializer(ASerializer).'
+'WriteInt64(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% EN'
+'D IF_FIELD_INT64_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INTEGER_TYPE %'
+'%%>'#13#10' TROSerializer(ASerializer).WriteInteger(''%FIELD_ORIGINALNAM'
+'E%'', otSLong, l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INTEGER_TYP'
+'E %%%>'#13#10' // <%%% START IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' TR'
+'OSerializer(ASerializer).WriteAnsiString(''%FIELD_ORIGINALNAME%'', l_%FIELD'
+'_NAME%);'#13#10' // <%%% END IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' //'
+' <%%% START IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' TROSerializer(ASeriali'
+'zer).WriteUTF8String(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' '
+'// <%%% END IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD'
+'_VARIANT_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteVariant(''%FI'
+'ELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_VARIA'
+'NT_TYPE %%%>'#13#10' // <%%% START IF_FIELD_WIDESTRING_TYPE %%%>'#13#10
+' TROSerializer(ASerializer).WriteWideString(''%FIELD_ORIGINALNAME%'', l_'
+'%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_WIDESTRING_TYPE %%%>'#13#10
,' // <%%% START IF_FIELD_XML_TYPE %%%>'#13#10' TROSerializer(ASerializ'
+'er).WriteXml(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% '
+'END IF_FIELD_XML_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ARRAY_TYPE %%%'
+'>'#13#10' TROSerializer(ASerializer).WriteArray(''%FIELD_ORIGINALNAME%'''
+', l_%FIELD_NAME%, %FIELD_TYPE%);'#13#10' // <%%% END IF_FIELD_ARRAY_TYPE'
+' %%%>'#13#10' // <%%% START IF_FIELD_ENUM_TYPE %%%>'#13#10' TROSerial'
+'izer(ASerializer).WriteEnumerated(''%FIELD_ORIGINALNAME%'', TypeInfo(%FIELD'
+'_TYPE%), l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ENUM_TYPE %%%>'#13
+#10' // <%%% START IF_FIELD_STRUCT_TYPE %%%>'#13#10' TROSerializer(ASe'
+'rializer).WriteStruct(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%, %FIELD_TYPE'
+'%);'#13#10' // <%%% END IF_FIELD_STRUCT_TYPE %%%>'#13#10' // <%%% STA'
+'RT IF_FIELD_XSDATETIME_TYPE %%%>'#13#10' TROSerializer(ASerializer).Writ'
+'eStruct(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%, %FIELD_TYPE%);'#13#10' '
+' // <%%% END IF_FIELD_XSDATETIME_TYPE %%%>'#13#10' // <%%% END ENTIRE_HI'
+'ERARCHY_FIELDS %%%>'#13#10' end;'#13#10'end;'#13#10#13#10'// <%%% END IF_H'
+'AS_FIELDS %%%>'#13#10'// <%%% END EXCEPTIONS %%%>'#13#10'// <%%% START ARRA'
+'YS %%%>'#13#10'{ %ARRAY_NAME% }'#13#10#13#10'procedure %ARRAY_NAME%.Assign('
+'iSource: TPersistent);'#13#10'var lSource:%ARRAY_NAME%;'#13#10' i:intege'
+'r;'#13#10'begin'#13#10' if (iSource is %ARRAY_NAME%) then begin'#13#10' '
+' lSource := %ARRAY_NAME%(iSource);'#13#10' Clear();'#13#10' Resize(lS'
+'ource.Count);'#13#10' '#13#10' for i := 0 to Count-1 do begin'#13#10
+' // <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' if Assigned(lSo'
+'urce.Items[i]) then begin'#13#10' Items[i].Assign(lSource.Items[i]);'
+#13#10' end;'#13#10' // <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#13#10
+' // <%%% START IF_ARRAY_TYPE_SIMPLE %%%>'#13#10' Items[i] := lSou'
+'rce.Items[i];'#13#10' // <%%% END IF_ARRAY_TYPE_SIMPLE %%%>'#13#10' '
+' end;'#13#10' end'#13#10' else begin'#13#10' inherited Assign(iSource)'
+';'#13#10' end;'#13#10'end;'#13#10#13#10'class function %ARRAY_NAME%.GetIte'
+'mType: PTypeInfo;'#13#10'begin'#13#10' result := TypeInfo(%ARRAY_TYPE%);'
+#13#10'end;'#13#10#13#10'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10'cla'
+'ss function %ARRAY_NAME%.GetItemClass: TClass;'#13#10'begin'#13#10' result'
+' := %ARRAY_TYPE%;'#13#10'end;'#13#10'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'
+#13#10#13#10'class function %ARRAY_NAME%.GetItemSize: integer;'#13#10'begin'
+#13#10' result := SizeOf(%ARRAY_TYPE%);'#13#10'end;'#13#10#13#10'function %'
+'ARRAY_NAME%.GetItems(aIndex: integer): %ARRAY_TYPE%;'#13#10'begin'#13#10' '
+'if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBou'
+'nds,[aIndex]);'#13#10' result := fItems[aIndex];'#13#10'end;'#13#10#13#10
+'function %ARRAY_NAME%.GetItemRef(aIndex: integer): pointer;'#13#10'begin'#13
+#10' if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOut'
+'OfBounds,[aIndex]);'#13#10' // <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10
+' result := fItems[aIndex];'#13#10' // <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'
+#13#10' // <%%% START IF_ARRAY_TYPE_SIMPLE %%%>'#13#10' result := @fItems['
+'aIndex];'#13#10' // <%%% END IF_ARRAY_TYPE_SIMPLE %%%>'#13#10'end;'#13#10
+#13#10'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10'procedure %ARRAY_NAME'
+'%.SetItemRef(aIndex: integer; Ref: pointer);'#13#10'begin'#13#10' if (aInd'
+'ex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIn'
+'dex]);'#13#10' if Ref <> fItems[aIndex] then begin'#13#10' if fItems[aI'
+'ndex] <> nil then fItems[aIndex].Free;'#13#10' fItems[aIndex] := Ref;'#13
+#10' end;'#13#10'end;'#13#10'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#13#10
+#13#10'procedure %ARRAY_NAME%.Clear;'#13#10'// <%%% START IF_ARRAY_TYPE_COMP'
+'LEX %%%>'#13#10'var i: integer;'#13#10'// <%%% END IF_ARRAY_TYPE_COMPLEX %%'
+'%>'#13#10'begin'#13#10' // <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' '
+'for i := 0 to (Count-1) do fItems[i].Free();'#13#10' // <%%% END IF_ARRAY_'
+'TYPE_COMPLEX %%%>'#13#10' SetLength(fItems, 0);'#13#10' FCount := 0;'#13
+#10'end;'#13#10#13#10'procedure %ARRAY_NAME%.Delete(aIndex: integer);'#13#10
+'var i: integer;'#13#10'begin'#13#10' if (aIndex>=Count) then RaiseError(er'
+'r_InvalidIndex, [aIndex]);'#13#10#13#10' // <%%% START IF_ARRAY_TYPE_COMPL'
+'EX %%%>'#13#10' fItems[aIndex].Free();'#13#10' // <%%% END IF_ARRAY_TYPE_'
+'COMPLEX %%%>'#13#10' '#13#10' if (aIndex<Count-1) then'#13#10' for i :'
+'= aIndex to Count-2 do fItems[i] := fItems[i+1];'#13#10#13#10' SetLength(f'
+'Items, Count-1);'#13#10' Dec(FCount);'#13#10'end;'#13#10#13#10'procedure %'
+'ARRAY_NAME%.SetItems(aIndex: integer; const Value: %ARRAY_TYPE%);'#13#10'be'
+'gin'#13#10' if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_Array'
+'IndexOutOfBounds,[aIndex]);'#13#10' // <%%% START IF_ARRAY_TYPE_COMPLEX %%'
,'%> '#13#10' if fItems[aIndex] <> Value then begin'#13#10' fItems[aInde'
+'x].Free; '#13#10' fItems[aIndex] := Value;'#13#10' end;'#13#10' // '
+'<%%% END IF_ARRAY_TYPE_COMPLEX %%%> '#13#10' // <%%% START IF_ARRAY_TYPE_'
+'SIMPLE %%%>'#13#10' fItems[aIndex] := Value; '#13#10' // <%%% END IF_ARR'
+'AY_TYPE_SIMPLE %%%> '#13#10'end;'#13#10#13#10'procedure %ARRAY_NAME%.Resiz'
+'e(ElementCount: integer);'#13#10'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'
+#13#10'var i: Integer;'#13#10'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#13#10
+'begin'#13#10' if fCount = ElementCount then Exit;'#13#10'// <%%% START IF_'
+'ARRAY_TYPE_COMPLEX %%%>'#13#10' for i := FCount -1 downto ElementCount do'
+#13#10' FItems[i].Free;'#13#10'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#13
+#10' SetLength(fItems, ElementCount);'#13#10'// <%%% START IF_ARRAY_TYPE_CO'
+'MPLEX %%%>'#13#10' for i := FCount to ElementCount -1 do'#13#10' FItems'
+'[i] := %ARRAY_TYPE%.Create;'#13#10'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'
+#13#10' FCount := ElementCount;'#13#10'end;'#13#10#13#10'function %ARRAY_NA'
+'ME%.GetCount: integer;'#13#10'begin'#13#10' result := FCount;'#13#10'end;'
+#13#10#13#10'procedure %ARRAY_NAME%.Grow;'#13#10'var'#13#10' Delta, Capacit'
+'y: Integer;'#13#10'begin'#13#10' Capacity := Length(fItems);'#13#10' if C'
+'apacity > 64 then'#13#10' Delta := Capacity div 4'#13#10' else'#13#10' '
+' if Capacity > 8 then'#13#10' Delta := 16'#13#10' else'#13#10' '
+' Delta := 4;'#13#10' SetLength(fItems, Capacity + Delta);'#13#10'end;'#13
+#10#13#10'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10'function %ARRAY_NA'
+'ME%.Add: %ARRAY_TYPE%;'#13#10'begin'#13#10' result := %ARRAY_TYPE%.Create;'
+#13#10' Add(Result);'#13#10'end;'#13#10'// <%%% END IF_ARRAY_TYPE_COMPLEX %'
+'%%>'#13#10#13#10'function %ARRAY_NAME%.Add(const Value:%ARRAY_TYPE%): integ'
+'er;'#13#10'begin'#13#10' Result := Count;'#13#10' if Length(fItems) = Res'
+'ult then'#13#10' Grow;'#13#10' fItems[result] := Value;'#13#10' Inc(fC'
+'ount);'#13#10'end;'#13#10#13#10'// <%%% START IF_ARRAY_TYPE_SIMPLE %%%>'#13
+#10'function %ARRAY_NAME%.GetIndex(const aPropertyName : string;'#13#10' co'
+'nst aPropertyValue : Variant; StartFrom : integer;'#13#10' Options : TROSe'
+'archOptions) : integer;'#13#10'begin'#13#10' result := -1;'#13#10'end;'#13
+#10'// <%%% END IF_ARRAY_TYPE_SIMPLE %%%>'#13#10#13#10'procedure %ARRAY_NAME'
+'%.ReadComplex(ASerializer: TObject);'#13#10'var'#13#10' lval: %ARRAY_TYPE%'
+';'#13#10' i: integer;'#13#10'begin'#13#10' for i := 0 to Count-1 do begin'
+#13#10' with TROSerializer(ASerializer) do'#13#10' // <%%% START IF_'
+'ARRAY_BINARY_TYPE %%%>'#13#10' ReadBinary(GetArrayElementName(GetItemT'
+'ype, GetItemRef(i)), lval, i);'#13#10' // <%%% END IF_ARRAY_BINARY_TYP'
+'E %%%>'#13#10' // <%%% START IF_ARRAY_BOOLEAN_TYPE %%%>'#13#10' R'
+'eadEnumerated(GetArrayElementName(GetItemType, GetItemRef(i)), TypeInfo(boo'
+'lean), lval, i);'#13#10' // <%%% END IF_ARRAY_BOOLEAN_TYPE %%%>'#13#10
+' // <%%% START IF_ARRAY_CURRENCY_TYPE %%%>'#13#10' ReadDouble(Get'
+'ArrayElementName(GetItemType, GetItemRef(i)), ftCurr, lval, i);'#13#10' '
+' // <%%% END IF_ARRAY_CURRENCY_TYPE %%%>'#13#10' // <%%% START IF_ARR'
+'AY_DATETIME_TYPE %%%>'#13#10' ReadDateTime(GetArrayElementName(GetItem'
+'Type, GetItemRef(i)), lval, i);'#13#10' // <%%% END IF_ARRAY_DATETIME_'
+'TYPE %%%>'#13#10' // <%%% START IF_ARRAY_DECIMAL_TYPE %%%>'#13#10' '
+' ReadDecimal(GetArrayElementName(GetItemType, GetItemRef(i)), lval, i);'#13
+#10' // <%%% END IF_ARRAY_DECIMAL_TYPE %%%>'#13#10' // <%%% START '
+'IF_ARRAY_DOUBLE_TYPE %%%>'#13#10' ReadDouble(GetArrayElementName(GetIt'
+'emType, GetItemRef(i)), ftDouble, lval, i);'#13#10' // <%%% END IF_ARR'
+'AY_DOUBLE_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_GUID_TYPE %%%>'#13
+#10' ReadGuid(GetArrayElementName(GetItemType, GetItemRef(i)), lval, i)'
+';'#13#10' // <%%% END IF_ARRAY_GUID_TYPE %%%>'#13#10' // <%%% STA'
+'RT IF_ARRAY_INT64_TYPE %%%>'#13#10' ReadInt64(GetArrayElementName(GetI'
+'temType, GetItemRef(i)), lval, i);'#13#10' // <%%% END IF_ARRAY_INT64_'
+'TYPE %%%>'#13#10' // <%%% START IF_ARRAY_INTEGER_TYPE %%%>'#13#10' '
+' ReadInteger(GetArrayElementName(GetItemType, GetItemRef(i)), otSLong, lva'
+'l, i);'#13#10' // <%%% END IF_ARRAY_INTEGER_TYPE %%%>'#13#10' // '
+'<%%% START IF_ARRAY_ANSISTRING_TYPE %%%>'#13#10' ReadUTF8String(GetArr'
+'ayElementName(GetItemType, GetItemRef(i)), lval, i);'#13#10' // <%%% E'
+'ND IF_ARRAY_ANSISTRING_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_UTF8ST'
+'RING_TYPE %%%>'#13#10' ReadUTF8String(GetArrayElementName(GetItemType,'
+' GetItemRef(i)), lval, i);'#13#10' // <%%% END IF_ARRAY_UTF8STRING_TYP'
+'E %%%>'#13#10' // <%%% START IF_ARRAY_VARIANT_TYPE %%%>'#13#10' R'
+'eadVariant(GetArrayElementName(GetItemType, GetItemRef(i)), lval, i);'#13#10
,' // <%%% END IF_ARRAY_VARIANT_TYPE %%%>'#13#10' // <%%% START IF_'
+'ARRAY_WIDESTRING_TYPE %%%>'#13#10' ReadWideString(GetArrayElementName('
+'GetItemType, GetItemRef(i)), lval, i);'#13#10' // <%%% END IF_ARRAY_WI'
+'DESTRING_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_XML_TYPE %%%>'#13#10
+' ReadXml(GetArrayElementName(GetItemType, GetItemRef(i)), lval, i);'#13
+#10' // <%%% END IF_ARRAY_XML_TYPE %%%>'#13#10' // <%%% START IF_A'
+'RRAY_ARRAY_TYPE %%%>'#13#10' ReadArray(GetArrayElementName(GetItemType'
+', GetItemRef(i)), %ARRAY_TYPE%, lval, i);'#13#10' // <%%% END IF_ARRAY'
+'_ARRAY_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_ENUM_TYPE %%%>'#13#10
+' ReadEnumerated(GetArrayElementName(GetItemType, GetItemRef(i)), TypeI'
+'nfo(%ARRAY_TYPE%), lval, i);'#13#10' // <%%% END IF_ARRAY_ENUM_TYPE %%'
+'%>'#13#10' // <%%% START IF_ARRAY_STRUCT_TYPE %%%>'#13#10' ReadSt'
+'ruct(GetArrayElementName(GetItemType, GetItemRef(i)), %ARRAY_TYPE%, lval, i'
+');'#13#10' // <%%% END IF_ARRAY_STRUCT_TYPE %%%>'#13#10' Items[i] :'
+'= lval;'#13#10' end;'#13#10'end;'#13#10#13#10'procedure %ARRAY_NAME%.Write'
+'Complex(ASerializer: TObject);'#13#10'var'#13#10' i: integer;'#13#10'begin'
+#13#10' for i := 0 to Count-1 do'#13#10' with TROSerializer(ASerializer)'
+' do'#13#10' // <%%% START IF_ARRAY_BINARY_TYPE %%%>'#13#10' Write'
+'Binary(GetArrayElementName(GetItemType, GetItemRef(i)), fItems[i], i);'#13
+#10' // <%%% END IF_ARRAY_BINARY_TYPE %%%>'#13#10' // <%%% START I'
+'F_ARRAY_BOOLEAN_TYPE %%%>'#13#10' WriteEnumerated(GetArrayElementName('
+'GetItemType, GetItemRef(i)), TypeInfo(boolean), fItems[i], i);'#13#10' '
+' // <%%% END IF_ARRAY_BOOLEAN_TYPE %%%>'#13#10' // <%%% START IF_ARRAY'
+'_CURRENCY_TYPE %%%>'#13#10' WriteDouble(GetArrayElementName(GetItemTyp'
+'e, GetItemRef(i)), ftCurr, fItems[i], i);'#13#10' // <%%% END IF_ARRAY'
+'_CURRENCY_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_DATETIME_TYPE %%%>'
+#13#10' WriteDateTime(GetArrayElementName(GetItemType, GetItemRef(i)), '
+'fItems[i], i);'#13#10' // <%%% END IF_ARRAY_DATETIME_TYPE %%%>'#13#10
+' // <%%% START IF_ARRAY_DECIMAL_TYPE %%%>'#13#10' WriteDecimal(Ge'
+'tArrayElementName(GetItemType, GetItemRef(i)), fItems[i], i);'#13#10' '
+'// <%%% END IF_ARRAY_DECIMAL_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_'
+'DOUBLE_TYPE %%%>'#13#10' WriteDouble(GetArrayElementName(GetItemType, '
+'GetItemRef(i)), ftDouble, fItems[i], i);'#13#10' // <%%% END IF_ARRAY_'
+'DOUBLE_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_GUID_TYPE %%%>'#13#10
+' WriteGuid(GetArrayElementName(GetItemType, GetItemRef(i)), fItems[i],'
+' i);'#13#10' // <%%% END IF_ARRAY_GUID_TYPE %%%>'#13#10' // <%%% '
+'START IF_ARRAY_INT64_TYPE %%%>'#13#10' WriteInt64(GetArrayElementName('
+'GetItemType, GetItemRef(i)), fItems[i], i);'#13#10' // <%%% END IF_ARR'
+'AY_INT64_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_INTEGER_TYPE %%%>'#13
+#10' WriteInteger(GetArrayElementName(GetItemType, GetItemRef(i)), otSL'
+'ong, fItems[i], i);'#13#10' // <%%% END IF_ARRAY_INTEGER_TYPE %%%>'#13
+#10' // <%%% START IF_ARRAY_ANSISTRING_TYPE %%%>'#13#10' WriteUTF8'
+'String(GetArrayElementName(GetItemType, GetItemRef(i)), fItems[i], i);'#13
+#10' // <%%% END IF_ARRAY_ANSISTRING_TYPE %%%>'#13#10' // <%%% STA'
+'RT IF_ARRAY_UTF8STRING_TYPE %%%>'#13#10' WriteUTF8String(GetArrayEleme'
+'ntName(GetItemType, GetItemRef(i)), fItems[i], i);'#13#10' // <%%% END'
+' IF_ARRAY_UTF8STRING_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_VARIANT_'
+'TYPE %%%>'#13#10' WriteVariant(GetArrayElementName(GetItemType, GetIte'
+'mRef(i)), fItems[i], i);'#13#10' // <%%% END IF_ARRAY_VARIANT_TYPE %%%'
+'>'#13#10' // <%%% START IF_ARRAY_WIDESTRING_TYPE %%%>'#13#10' Wri'
+'teWideString(GetArrayElementName(GetItemType, GetItemRef(i)), fItems[i], i)'
+';'#13#10' // <%%% END IF_ARRAY_WIDESTRING_TYPE %%%>'#13#10' // <%'
+'%% START IF_ARRAY_XML_TYPE %%%>'#13#10' WriteXml(GetArrayElementName(G'
+'etItemType, GetItemRef(i)), fItems[i], i);'#13#10' // <%%% END IF_ARRA'
+'Y_XML_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_ARRAY_TYPE %%%>'#13#10
+' WriteArray(GetArrayElementName(GetItemType, GetItemRef(i)), fItems[i]'
+', , %ARRAY_TYPE%, i);'#13#10' // <%%% END IF_ARRAY_ARRAY_TYPE %%%>'#13
+#10' // <%%% START IF_ARRAY_ENUM_TYPE %%%>'#13#10' WriteEnumerated'
+'(GetArrayElementName(GetItemType, GetItemRef(i)), TypeInfo(%ARRAY_TYPE%), f'
+'Items[i], i);'#13#10' // <%%% END IF_ARRAY_ENUM_TYPE %%%>'#13#10' '
+' // <%%% START IF_ARRAY_STRUCT_TYPE %%%>'#13#10' WriteStruct(GetArrayE'
+'lementName(GetItemType, GetItemRef(i)), fItems[i], %ARRAY_TYPE%, i);'#13#10
+' // <%%% END IF_ARRAY_STRUCT_TYPE %%%>'#13#10'end;'#13#10#13#10'// <%%'
+'% END ARRAYS %%%>'#13#10'// <%%% START STRUCTS %%%>'#13#10'{ %STRUCT_NAME% '
,'}'#13#10#13#10'procedure %STRUCT_NAME%.Assign(iSource: TPersistent);'#13#10
+'// <%%% START IF_HAS_FIELDS %%%>'#13#10'var'#13#10' lSource: %STRUCT_NAME%'
+';'#13#10'// <%%% END IF_HAS_FIELDS %%%>'#13#10'begin'#13#10' inherited Ass'
+'ign(iSource);'#13#10' // <%%% START IF_HAS_FIELDS %%%>'#13#10' if (iSourc'
+'e is %STRUCT_NAME%) then begin'#13#10' lSource := %STRUCT_NAME%(iSource)'
+';'#13#10#13#10' // <%%% END IF_HAS_FIELDS %%%>'#13#10' // <%%% START FI'
+'ELDS_NO_STRIP %%%>'#13#10' // <%%% START IF_FIELD_TYPE_SIMPLE %%%>'#13#10
+' %FIELD_NAME% := lSource.%FIELD_NAME%;'#13#10' // <%%% END IF_FIELD_T'
+'YPE_SIMPLE %%%>'#13#10' // <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#13#10
+' // <%%% START IF_NOT_AUTO_CREATE_FIELDS %%%>'#13#10' if Assigned(f%F'
+'IELD_NAME%) then begin'#13#10' if Assigned(lSource.%FIELD_NAME%) then'
+#13#10' %FIELD_NAME%.Assign(lSource.%FIELD_NAME%)'#13#10' else'
+#13#10' FreeAndNil(f%FIELD_NAME%);'#13#10' end;'#13#10' // <%%%'
+' END IF_NOT_AUTO_CREATE_FIELDS %%%>'#13#10' // <%%% START IF_AUTO_CREATE'
+'_FIELDS %%%>'#13#10' %FIELD_NAME%.Assign(lSource.%FIELD_NAME%);'#13#10' '
+' // <%%% END IF_AUTO_CREATE_FIELDS %%%>'#13#10' // <%%% END IF_FIELD_T'
+'YPE_COMPLEX %%%>'#13#10' // <%%% END FIELDS_NO_STRIP %%%>'#13#10' // <%'
+'%% START IF_HAS_FIELDS %%%>'#13#10' end;'#13#10' // <%%% END IF_HAS_FIELD'
+'S %%%>'#13#10'end;'#13#10#13#10'// <%%% START STRUCT_GENERATE_DEFAULT_VALUE'
+'S %%%>'#13#10'constructor %STRUCT_NAME%.Create(aCollection : TCollection);'
+#13#10'begin'#13#10' inherited Create(aCollection);'#13#10' // <%%% START '
+'FIELDS_NO_STRIP %%%>'#13#10' // <%%% START IF_FIELD_HAS_DEFAULT_VALUE %%%>'
+#13#10' // <%%% START IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' f%FIELD_NAME% := '
+'%DEFAULT_VALUE%;'#13#10' // <%%% END IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' /'
+'/ <%%% START IF_FIELD_CURRENCY_TYPE %%%>'#13#10' f%FIELD_NAME% := %DEFAULT'
+'_VALUE%;'#13#10' // <%%% END IF_FIELD_CURRENCY_TYPE %%%>'#13#10' // <%%% '
+'START IF_FIELD_DATETIME_TYPE %%%>'#13#10' f%FIELD_NAME% := StrToDateTimeDe'
+'f(''%DEFAULT_VALUE%'',0);'#13#10' // <%%% END IF_FIELD_DATETIME_TYPE %%%>'
+#13#10' // <%%% START IF_FIELD_DECIMAL_TYPE %%%>'#13#10' f%FIELD_NAME% := '
+'%DEFAULT_VALUE%;'#13#10' // <%%% END IF_FIELD_DECIMAL_TYPE %%%>'#13#10' /'
+'/ <%%% START IF_FIELD_DOUBLE_TYPE %%%>'#13#10' f%FIELD_NAME% := %DEFAULT_V'
+'ALUE%;'#13#10' // <%%% END IF_FIELD_DOUBLE_TYPE %%%>'#13#10' // <%%% STAR'
+'T IF_FIELD_GUID_TYPE %%%>'#13#10' f%FIELD_NAME% := ''%DEFAULT_VALUE%'';'#13
+#10' // <%%% END IF_FIELD_GUID_TYPE %%%>'#13#10' // <%%% START IF_FIELD_IN'
+'T64_TYPE %%%>'#13#10' f%FIELD_NAME% := %DEFAULT_VALUE%;'#13#10' // <%%% E'
+'ND IF_FIELD_INT64_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INTEGER_TYPE %%'
+'%>'#13#10' f%FIELD_NAME% := %DEFAULT_VALUE%;'#13#10' // <%%% END IF_FIELD'
+'_INTEGER_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ANSISTRING_TYPE %%%>'#13
+#10' f%FIELD_NAME% := ''%DEFAULT_VALUE%'';'#13#10' // <%%% END IF_FIELD_AN'
+'SISTRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_UTF8STRING_TYPE %%%>'#13
+#10' f%FIELD_NAME% := ''%DEFAULT_VALUE%'';'#13#10' // <%%% END IF_FIELD_UT'
+'F8STRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_VARIANT_TYPE %%%>'#13#10
+' f%FIELD_NAME% := ''%DEFAULT_VALUE%'';'#13#10' // <%%% END IF_FIELD_VARIA'
+'NT_TYPE %%%>'#13#10' // <%%% START IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' '
+'f%FIELD_NAME% := ''%DEFAULT_VALUE%'';'#13#10' // <%%% END IF_FIELD_WIDESTR'
+'ING_TYPE %%%>'#13#10' // <%%% END IF_FIELD_HAS_DEFAULT_VALUE %%%>'#13#10' '
+' // <%%% END FIELDS_NO_STRIP %%%>'#13#10'end;'#13#10'// <%%% END STRUCT_GEN'
+'ERATE_DEFAULT_VALUES %%%>'#13#10#13#10'destructor %STRUCT_NAME%.Destroy;'#13
+#10'begin'#13#10' FDestroying := True;'#13#10' try'#13#10' inherited De'
+'stroy;'#13#10' finally'#13#10' FDestroying := False;'#13#10' end;'#13
+#10'end;'#13#10#13#10'// <%%% START FIELDS_NO_STRIP %%%>'#13#10'// <%%% STAR'
+'T IF_FIELD_TYPE_COMPLEX %%%>'#13#10'function %STRUCT_NAME%.Get%FIELD_NAME%:'
+' %FIELD_TYPE%;'#13#10'begin'#13#10' // <%%% START IF_AUTO_CREATE_FIELDS %%'
+'%>'#13#10' if not Assigned(f%FIELD_NAME%) and not FDestroying then'#13#10
+' f%FIELD_NAME% := %FIELD_TYPE%.Create();'#13#10' // <%%% END IF_AUTO_CR'
+'EATE_FIELDS %%%>'#13#10' Result := f%FIELD_NAME%;'#13#10'end;'#13#10'// <%'
+'%% END IF_FIELD_TYPE_COMPLEX %%%>'#13#10'// <%%% END FIELDS_NO_STRIP %%%>'
+#13#10#13#10'// <%%% START IF_HAS_FIELDS %%%>'#13#10'procedure %STRUCT_NAME%'
+'.ReadComplex(ASerializer: TObject);'#13#10'var'#13#10' // <%%% START ENTIR'
+'E_HIERARCHY_FIELDS %%%>'#13#10' l_%FIELD_NAME%: %FIELD_TYPE%;'#13#10' // '
+'<%%% END ENTIRE_HIERARCHY_FIELDS %%%>'#13#10'begin'#13#10' if TROSerialize'
+'r(ASerializer).RecordStrictOrder then begin'#13#10' // <%%% START IF_STR'
+'UCT_HAS_ANCESTOR %%%>'#13#10' inherited;'#13#10' // <%%% END IF_STRUC'
+'T_HAS_ANCESTOR %%%>'#13#10' // <%%% START FIELDS_NO_STRIP %%%>'#13#10' '
,' l_%FIELD_NAME% := %FIELD_NAME%;'#13#10' // <%%% START IF_FIELD_BINARY_'
+'TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadBinary(''%FIELD_ORIGINA'
+'LNAME%'', l_%FIELD_NAME%);'#13#10' if %FIELD_NAME% <> l_%FIELD_NAME% the'
+'n %FIELD_NAME%.Free;'#13#10' // <%%% END IF_FIELD_BINARY_TYPE %%%>'#13#10
+' // <%%% START IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' TROSerializer(ASeri'
+'alizer).ReadEnumerated(''%FIELD_ORIGINALNAME%'', TypeInfo(boolean), l_%FIEL'
+'D_NAME%);'#13#10' // <%%% END IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' // <'
+'%%% START IF_FIELD_CURRENCY_TYPE %%%>'#13#10' TROSerializer(ASerializer)'
+'.ReadDouble(''%FIELD_ORIGINALNAME%'', ftCurr, l_%FIELD_NAME%);'#13#10' /'
+'/ <%%% END IF_FIELD_CURRENCY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DA'
+'TETIME_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadDateTime(''%FIEL'
+'D_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DATETIM'
+'E_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DECIMAL_TYPE %%%>'#13#10' '
+'TROSerializer(ASerializer).ReadDecimal(''%FIELD_ORIGINALNAME%'', l_%FIELD_N'
+'AME%);'#13#10' // <%%% END IF_FIELD_DECIMAL_TYPE %%%>'#13#10' // <%%%'
+' START IF_FIELD_DOUBLE_TYPE %%%>'#13#10' TROSerializer(ASerializer).Read'
+'Double(''%FIELD_ORIGINALNAME%'', ftDouble, l_%FIELD_NAME%);'#13#10' // <'
+'%%% END IF_FIELD_DOUBLE_TYPE %%%>'#13#10' // <%%% START IF_FIELD_GUID_TY'
+'PE %%%>'#13#10' TROSerializer(ASerializer).ReadGuid(''%FIELD_ORIGINALNAM'
+'E%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_GUID_TYPE %%%>'#13#10
+' // <%%% START IF_FIELD_INT64_TYPE %%%>'#13#10' TROSerializer(ASerial'
+'izer).ReadInt64(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%'
+'%% END IF_FIELD_INT64_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INTEGER_T'
+'YPE %%%>'#13#10' TROSerializer(ASerializer).ReadInteger(''%FIELD_ORIGINA'
+'LNAME%'', otSLong, l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INTEGER'
+'_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' '
+' TROSerializer(ASerializer).ReadAnsiString(''%FIELD_ORIGINALNAME%'', l_%FI'
+'ELD_NAME%);'#13#10' // <%%% END IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' '
+' // <%%% START IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' TROSerializer(ASeri'
+'alizer).ReadUTF8String(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' '
+' // <%%% END IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' // <%%% START IF_FIE'
+'LD_VARIANT_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadVariant(''%F'
+'IELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_VARI'
+'ANT_TYPE %%%>'#13#10' // <%%% START IF_FIELD_WIDESTRING_TYPE %%%>'#13#10
+' TROSerializer(ASerializer).ReadWideString(''%FIELD_ORIGINALNAME%'', l_%'
+'FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' '
+' // <%%% START IF_FIELD_XML_TYPE %%%>'#13#10' TROSerializer(ASerialize'
+'r).ReadXml(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% EN'
+'D IF_FIELD_XML_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ARRAY_TYPE %%%>'
+#13#10' TROSerializer(ASerializer).ReadArray(''%FIELD_ORIGINALNAME%'', %F'
+'IELD_TYPE%, l_%FIELD_NAME%);'#13#10' if %FIELD_NAME% <> l_%FIELD_NAME% t'
+'hen %FIELD_NAME%.Free;'#13#10' // <%%% END IF_FIELD_ARRAY_TYPE %%%>'#13
+#10' // <%%% START IF_FIELD_ENUM_TYPE %%%>'#13#10' TROSerializer(ASeri'
+'alizer).ReadEnumerated(''%FIELD_ORIGINALNAME%'', TypeInfo(%FIELD_TYPE%), l_'
+'%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ENUM_TYPE %%%>'#13#10' //'
+' <%%% START IF_FIELD_STRUCT_TYPE %%%>'#13#10' TROSerializer(ASerializer)'
+'.ReadStruct(''%FIELD_ORIGINALNAME%'', %FIELD_TYPE%, l_%FIELD_NAME%);'#13#10
+' if %FIELD_NAME% <> l_%FIELD_NAME% then %FIELD_NAME%.Free;'#13#10' //'
+' <%%% END IF_FIELD_STRUCT_TYPE %%%>'#13#10' // <%%% START IF_FIELD_XSDAT'
+'ETIME_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadStruct(''%FIELD_O'
+'RIGINALNAME%'', %FIELD_TYPE%, l_%FIELD_NAME%);'#13#10' if %FIELD_NAME% <'
+'> l_%FIELD_NAME% then %FIELD_NAME%.Free;'#13#10' // <%%% END IF_FIELD_XS'
+'DATETIME_TYPE %%%>'#13#10' %FIELD_NAME% := l_%FIELD_NAME%;'#13#10' //'
+' <%%% END FIELDS_NO_STRIP %%%>'#13#10' end'#13#10' else begin'#13#10' '
+'// <%%% START ENTIRE_HIERARCHY_FIELDS %%%>'#13#10' l_%FIELD_NAME% := %FI'
+'ELD_NAME%;'#13#10' // <%%% START IF_FIELD_BINARY_TYPE %%%>'#13#10' TR'
+'OSerializer(ASerializer).ReadBinary(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME'
+'%);'#13#10' if %FIELD_NAME% <> l_%FIELD_NAME% then %FIELD_NAME%.Free;'#13
+#10' // <%%% END IF_FIELD_BINARY_TYPE %%%>'#13#10' // <%%% START IF_FI'
+'ELD_BOOLEAN_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadEnumerated('
+'''%FIELD_ORIGINALNAME%'', TypeInfo(boolean), l_%FIELD_NAME%);'#13#10' //'
+' <%%% END IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' // <%%% START IF_FIELD_CURR'
+'ENCY_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadDouble(''%FIELD_OR'
+'IGINALNAME%'', ftCurr, l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_CUR'
,'RENCY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DATETIME_TYPE %%%>'#13#10
+' TROSerializer(ASerializer).ReadDateTime(''%FIELD_ORIGINALNAME%'', l_%FI'
+'ELD_NAME%);'#13#10' // <%%% END IF_FIELD_DATETIME_TYPE %%%>'#13#10' /'
+'/ <%%% START IF_FIELD_DECIMAL_TYPE %%%>'#13#10' TROSerializer(ASerialize'
+'r).ReadDecimal(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%'
+'% END IF_FIELD_DECIMAL_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DOUBLE_T'
+'YPE %%%>'#13#10' TROSerializer(ASerializer).ReadDouble(''%FIELD_ORIGINAL'
+'NAME%'', ftDouble, l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DOUBLE_'
+'TYPE %%%>'#13#10' // <%%% START IF_FIELD_GUID_TYPE %%%>'#13#10' TROSe'
+'rializer(ASerializer).ReadGuid(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'
+#13#10' // <%%% END IF_FIELD_GUID_TYPE %%%>'#13#10' // <%%% START IF_F'
+'IELD_INT64_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadInt64(''%FIE'
+'LD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INT64_'
+'TYPE %%%>'#13#10' // <%%% START IF_FIELD_INTEGER_TYPE %%%>'#13#10' TR'
+'OSerializer(ASerializer).ReadInteger(''%FIELD_ORIGINALNAME%'', otSLong, l_%'
+'FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INTEGER_TYPE %%%>'#13#10' '
+'// <%%% START IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' TROSerializer(ASeria'
+'lizer).ReadAnsiString(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' '
+' // <%%% END IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' // <%%% START IF_FIEL'
+'D_UTF8STRING_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadUTF8String'
+'(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD'
+'_UTF8STRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_VARIANT_TYPE %%%>'
+#13#10' TROSerializer(ASerializer).ReadVariant(''%FIELD_ORIGINALNAME%'', '
+'l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_VARIANT_TYPE %%%>'#13#10' '
+' // <%%% START IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' TROSerializer(ASe'
+'rializer).ReadWideString(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10
+' // <%%% END IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' // <%%% START IF_F'
+'IELD_XML_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadXml(''%FIELD_O'
+'RIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_XML_TYPE %'
+'%%>'#13#10' // <%%% START IF_FIELD_ARRAY_TYPE %%%>'#13#10' TROSeriali'
+'zer(ASerializer).ReadArray(''%FIELD_ORIGINALNAME%'', %FIELD_TYPE%, l_%FIELD'
+'_NAME%);'#13#10' if %FIELD_NAME% <> l_%FIELD_NAME% then %FIELD_NAME%.Fre'
+'e;'#13#10' // <%%% END IF_FIELD_ARRAY_TYPE %%%>'#13#10' // <%%% START'
+' IF_FIELD_ENUM_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadEnumerat'
+'ed(''%FIELD_ORIGINALNAME%'', TypeInfo(%FIELD_TYPE%), l_%FIELD_NAME%);'#13#10
+' // <%%% END IF_FIELD_ENUM_TYPE %%%>'#13#10' // <%%% START IF_FIELD_S'
+'TRUCT_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadStruct(''%FIELD_O'
+'RIGINALNAME%'', %FIELD_TYPE%, l_%FIELD_NAME%);'#13#10' if %FIELD_NAME% <'
+'> l_%FIELD_NAME% then %FIELD_NAME%.Free;'#13#10' // <%%% END IF_FIELD_ST'
+'RUCT_TYPE %%%>'#13#10' // <%%% START IF_FIELD_XSDATETIME_TYPE %%%>'#13#10
+' TROSerializer(ASerializer).ReadStruct(''%FIELD_ORIGINALNAME%'', %FIELD_'
+'TYPE%, l_%FIELD_NAME%);'#13#10' if %FIELD_NAME% <> l_%FIELD_NAME% then %'
+'FIELD_NAME%.Free;'#13#10' // <%%% END IF_FIELD_XSDATETIME_TYPE %%%>'#13
+#10' %FIELD_NAME% := l_%FIELD_NAME%;'#13#10' // <%%% END ENTIRE_HIERAR'
+'CHY_FIELDS %%%>'#13#10' end;'#13#10'end;'#13#10#13#10'procedure %STRUCT_NA'
+'ME%.WriteComplex(ASerializer: TObject);'#13#10'var'#13#10' // <%%% START E'
+'NTIRE_HIERARCHY_FIELDS %%%>'#13#10' l_%FIELD_NAME%: %FIELD_TYPE%;'#13#10' '
+' // <%%% END ENTIRE_HIERARCHY_FIELDS %%%>'#13#10'begin'#13#10' if TROSeria'
+'lizer(ASerializer).RecordStrictOrder then begin'#13#10' // <%%% START IF'
+'_STRUCT_HAS_ANCESTOR %%%>'#13#10' inherited;'#13#10' // <%%% END IF_S'
+'TRUCT_HAS_ANCESTOR %%%>'#13#10' TROSerializer(ASerializer).ChangeClass(%'
+'STRUCT_NAME%);'#13#10' // <%%% START FIELDS_NO_STRIP %%%>'#13#10' l_%'
+'FIELD_NAME% := %FIELD_NAME%;'#13#10' // <%%% START IF_FIELD_BINARY_TYPE '
+'%%%>'#13#10' TROSerializer(ASerializer).WriteBinary(''%FIELD_ORIGINALNAM'
+'E%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_BINARY_TYPE %%%>'#13
+#10' // <%%% START IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' TROSerializer(AS'
+'erializer).WriteEnumerated(''%FIELD_ORIGINALNAME%'', TypeInfo(boolean), l_%'
+'FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' '
+'// <%%% START IF_FIELD_CURRENCY_TYPE %%%>'#13#10' TROSerializer(ASeriali'
+'zer).WriteDouble(''%FIELD_ORIGINALNAME%'', ftCurr, l_%FIELD_NAME%);'#13#10
+' // <%%% END IF_FIELD_CURRENCY_TYPE %%%>'#13#10' // <%%% START IF_FIE'
+'LD_DATETIME_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteDateTime('
+'''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_'
+'DATETIME_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DECIMAL_TYPE %%%>'#13
,#10' TROSerializer(ASerializer).WriteDecimal(''%FIELD_ORIGINALNAME%'', l_'
+'%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DECIMAL_TYPE %%%>'#13#10' '
+' // <%%% START IF_FIELD_DOUBLE_TYPE %%%>'#13#10' TROSerializer(ASerializ'
+'er).WriteDouble(''%FIELD_ORIGINALNAME%'', ftDouble, l_%FIELD_NAME%);'#13#10
+' // <%%% END IF_FIELD_DOUBLE_TYPE %%%>'#13#10' // <%%% START IF_FIELD'
+'_GUID_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteGuid(''%FIELD_OR'
+'IGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_GUID_TYPE %'
+'%%>'#13#10' // <%%% START IF_FIELD_INT64_TYPE %%%>'#13#10' TROSeriali'
+'zer(ASerializer).WriteInt64(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13
+#10' // <%%% END IF_FIELD_INT64_TYPE %%%>'#13#10' // <%%% START IF_FIE'
+'LD_INTEGER_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteInteger(''%'
+'FIELD_ORIGINALNAME%'', otSLong, l_%FIELD_NAME%);'#13#10' // <%%% END IF_'
+'FIELD_INTEGER_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ANSISTRING_TYPE %'
+'%%>'#13#10' TROSerializer(ASerializer).WriteAnsiString(''%FIELD_ORIGINAL'
+'NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ANSISTRING_TYPE %'
+'%%>'#13#10' // <%%% START IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' TROSe'
+'rializer(ASerializer).WriteUTF8String(''%FIELD_ORIGINALNAME%'', l_%FIELD_NA'
+'ME%);'#13#10' // <%%% END IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' // <%'
+'%% START IF_FIELD_VARIANT_TYPE %%%>'#13#10' TROSerializer(ASerializer).W'
+'riteVariant(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% E'
+'ND IF_FIELD_VARIANT_TYPE %%%>'#13#10' // <%%% START IF_FIELD_WIDESTRING_'
+'TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteWideString(''%FIELD_OR'
+'IGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_WIDESTRING_'
+'TYPE %%%>'#13#10' // <%%% START IF_FIELD_XML_TYPE %%%>'#13#10' TROSer'
+'ializer(ASerializer).WriteXml(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13
+#10' // <%%% END IF_FIELD_XML_TYPE %%%>'#13#10' // <%%% START IF_FIELD'
+'_ARRAY_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteArray(''%FIELD_'
+'ORIGINALNAME%'', l_%FIELD_NAME%, %FIELD_TYPE%);'#13#10' // <%%% END IF_F'
+'IELD_ARRAY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ENUM_TYPE %%%>'#13#10
+' TROSerializer(ASerializer).WriteEnumerated(''%FIELD_ORIGINALNAME%'', Ty'
+'peInfo(%FIELD_TYPE%), l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ENUM'
+'_TYPE %%%>'#13#10' // <%%% START IF_FIELD_STRUCT_TYPE %%%>'#13#10' TR'
+'OSerializer(ASerializer).WriteStruct(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAM'
+'E%, %FIELD_TYPE%);'#13#10' // <%%% END IF_FIELD_STRUCT_TYPE %%%>'#13#10
+' // <%%% START IF_FIELD_XSDATETIME_TYPE %%%>'#13#10' TROSerializer(AS'
+'erializer).WriteStruct(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%, %FIELD_TYP'
+'E%);'#13#10' // <%%% END IF_FIELD_XSDATETIME_TYPE %%%>'#13#10' // <%%'
+'% END FIELDS_NO_STRIP %%%>'#13#10' end'#13#10' else begin'#13#10' // <'
+'%%% START ENTIRE_HIERARCHY_FIELDS %%%>'#13#10' l_%FIELD_NAME% := %FIELD_'
+'NAME%;'#13#10' // <%%% START IF_FIELD_BINARY_TYPE %%%>'#13#10' TROSer'
+'ializer(ASerializer).WriteBinary(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'
+#13#10' // <%%% END IF_FIELD_BINARY_TYPE %%%>'#13#10' // <%%% START IF'
+'_FIELD_BOOLEAN_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteEnumera'
+'ted(''%FIELD_ORIGINALNAME%'', TypeInfo(boolean), l_%FIELD_NAME%);'#13#10' '
+' // <%%% END IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' // <%%% START IF_FIELD_'
+'CURRENCY_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteDouble(''%FIE'
+'LD_ORIGINALNAME%'', ftCurr, l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIEL'
+'D_CURRENCY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DATETIME_TYPE %%%>'
+#13#10' TROSerializer(ASerializer).WriteDateTime(''%FIELD_ORIGINALNAME%'''
+', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DATETIME_TYPE %%%>'#13#10
+' // <%%% START IF_FIELD_DECIMAL_TYPE %%%>'#13#10' TROSerializer(ASeri'
+'alizer).WriteDecimal(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' '
+'// <%%% END IF_FIELD_DECIMAL_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DO'
+'UBLE_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteDouble(''%FIELD_O'
+'RIGINALNAME%'', ftDouble, l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_'
+'DOUBLE_TYPE %%%>'#13#10' // <%%% START IF_FIELD_GUID_TYPE %%%>'#13#10' '
+' TROSerializer(ASerializer).WriteGuid(''%FIELD_ORIGINALNAME%'', l_%FIELD_N'
+'AME%);'#13#10' // <%%% END IF_FIELD_GUID_TYPE %%%>'#13#10' // <%%% ST'
+'ART IF_FIELD_INT64_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteInt'
+'64(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIE'
+'LD_INT64_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INTEGER_TYPE %%%>'#13
+#10' TROSerializer(ASerializer).WriteInteger(''%FIELD_ORIGINALNAME%'', ot'
+'SLong, l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INTEGER_TYPE %%%>'
+#13#10' // <%%% START IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' TROSeriali'
,'zer(ASerializer).WriteAnsiString(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'
+#13#10' // <%%% END IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' // <%%% STAR'
+'T IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' TROSerializer(ASerializer).Write'
+'UTF8String(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% EN'
+'D IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_VARIANT_T'
+'YPE %%%>'#13#10' TROSerializer(ASerializer).WriteVariant(''%FIELD_ORIGIN'
+'ALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_VARIANT_TYPE %%'
+'%>'#13#10' // <%%% START IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' TROSer'
+'ializer(ASerializer).WriteWideString(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAM'
+'E%);'#13#10' // <%%% END IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' // <%%'
+'% START IF_FIELD_XML_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteX'
+'ml(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIE'
+'LD_XML_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ARRAY_TYPE %%%>'#13#10' '
+' TROSerializer(ASerializer).WriteArray(''%FIELD_ORIGINALNAME%'', l_%FIELD'
+'_NAME%, %FIELD_TYPE%);'#13#10' // <%%% END IF_FIELD_ARRAY_TYPE %%%>'#13
+#10' // <%%% START IF_FIELD_ENUM_TYPE %%%>'#13#10' TROSerializer(ASeri'
+'alizer).WriteEnumerated(''%FIELD_ORIGINALNAME%'', TypeInfo(%FIELD_TYPE%), l'
+'_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ENUM_TYPE %%%>'#13#10' /'
+'/ <%%% START IF_FIELD_STRUCT_TYPE %%%>'#13#10' TROSerializer(ASerializer'
+').WriteStruct(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%, %FIELD_TYPE%);'#13
+#10' // <%%% END IF_FIELD_STRUCT_TYPE %%%>'#13#10' // <%%% START IF_FI'
+'ELD_XSDATETIME_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteStruct('
+'''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%, %FIELD_TYPE%);'#13#10' // <%%%'
+' END IF_FIELD_XSDATETIME_TYPE %%%>'#13#10' // <%%% END ENTIRE_HIERARCHY_'
+'FIELDS %%%>'#13#10' end;'#13#10'end;'#13#10#13#10'// <%%% END IF_HAS_FIELD'
+'S %%%>'#13#10'{ %STRUCT_COLLECTION_NAME% }'#13#10'constructor %STRUCT_COLLE'
+'CTION_NAME%.Create;'#13#10'begin'#13#10' inherited Create(%STRUCT_NAME%);'
+#13#10'end;'#13#10#13#10'constructor %STRUCT_COLLECTION_NAME%.Create(aItemCl'
+'ass: TCollectionItemClass);'#13#10'begin'#13#10' inherited Create(aItemCla'
+'ss);'#13#10'end;'#13#10#13#10'function %STRUCT_COLLECTION_NAME%.Add: %STRUC'
+'T_NAME%;'#13#10'begin'#13#10' result := %STRUCT_NAME%(inherited Add);'#13
+#10'end;'#13#10#13#10'function %STRUCT_COLLECTION_NAME%.GetItems(aIndex: int'
+'eger): %STRUCT_NAME%;'#13#10'begin'#13#10' result := %STRUCT_NAME%(inherit'
+'ed Items[aIndex]);'#13#10'end;'#13#10#13#10'// <%%% START ARRAYS_IS_FOUND %'
+'%%>'#13#10'procedure %STRUCT_COLLECTION_NAME%.LoadFromArray(anArray: %ARRAY'
+'_NAME%);'#13#10'var'#13#10' i : integer;'#13#10'begin'#13#10' Clear;'#13
+#10' for i := 0 to (anArray.Count-1) do'#13#10' Add.Assign(anArray[i]);'
+#13#10'end;'#13#10#13#10'procedure %STRUCT_COLLECTION_NAME%.SaveToArray(anAr'
+'ray: %ARRAY_NAME%);'#13#10'var'#13#10' i : integer;'#13#10'begin'#13#10' '
+'anArray.Clear;'#13#10' anArray.Resize(Count);'#13#10' for i := 0 to (Coun'
+'t-1) do begin'#13#10' anArray[i] := %STRUCT_NAME%.Create;'#13#10' anA'
+'rray[i].Assign(Items[i]);'#13#10' end;'#13#10'end;'#13#10#13#10'// <%%% EN'
+'D ARRAYS_IS_FOUND %%%>'#13#10#13#10'procedure %STRUCT_COLLECTION_NAME%.SetI'
+'tems(aIndex: integer; const Value: %STRUCT_NAME%);'#13#10'begin'#13#10' %S'
+'TRUCT_NAME%(inherited Items[aIndex]).Assign(Value);'#13#10'end;'#13#10#13#10
+'// <%%% END STRUCTS %%%>'#13#10'// <%%% START SERVICES %%%>'#13#10'{ Co%SER'
+'VICE_NAME% }'#13#10#13#10'class function Co%SERVICE_NAME%.Create(const aMes'
+'sage: IROMessage; aTransportChannel: IROTransportChannel): I%SERVICE_NAME%;'
+#13#10'begin'#13#10' result := T%SERVICE_NAME%_Proxy.Create(aMessage, aTran'
+'sportChannel);'#13#10'end;'#13#10#13#10'{ T%SERVICE_NAME%_Proxy }'#13#10#13
+#10'function T%SERVICE_NAME%_Proxy.__GetInterfaceName:string;'#13#10'begin'
+#13#10' result := ''%SERVICE_NAME%'';'#13#10'end;'#13#10#13#10'// <%%% STAR'
+'T FUNCTION_OPERATIONS %%%>'#13#10'function T%SERVICE_NAME%_Proxy.%OPERATION'
+'_NAME%('#13#10' // <%%% START PARAMS %%%>'#13#10' %PARA'
+'M_FRONT_MODIFIER% %PARAM_NAME%: %PARAM_TYPE%;'#13#10' // <%%% END'
+' PARAMS %%%>'#13#10' ): %OPERATION_RESULT%;'#13#10'begin'#13#10' '
+' // <%%% START OUT_PARAMS_NO_STRIP %%%>'#13#10' // <%%% START IF_PARAM_TYP'
+'E_COMPLEX %%%>'#13#10' %PARAM_NAME% := nil;'#13#10' // <%%% END IF_PARAM_'
+'TYPE_COMPLEX %%%>'#13#10' // <%%% END OUT_PARAMS_NO_STRIP %%%>'#13#10' //'
+' <%%% START IF_RESULT_COMPLEX %%%>'#13#10' Result := nil;'#13#10' // <%%%'
+' END IF_RESULT_COMPLEX %%%>'#13#10' try'#13#10' __Message.InitializeReq'
+'uestMessage(__TransportChannel, ''%LIBRARY_NAME%'', __InterfaceName, ''%OPE'
+'RATION_NAME%'');'#13#10' // <%%% START IN_PARAMS_NO_STRIP %%%>'#13#10' '
+' __Message.Write(''%PARAM_NAME%'', TypeInfo(%PARAM_TYPE%), %PARAM_NAME%, ['
,'%PARAM_ATTRIBUTE%]);'#13#10' // <%%% END IN_PARAMS_NO_STRIP %%%>'#13#10
+' __Message.Finalize;'#13#10#13#10' __TransportChannel.Dispatch(__Mess'
+'age);'#13#10#13#10' // <%%% START IN_PARAMS_NO_STRIP %%%>'#13#10' // '
+'<%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' %PARAM_NAME%.Free;'#13#10
+' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%% END IN_PARAMS'
+'_NO_STRIP %%%>'#13#10#13#10' __Message.Read(''Result'', TypeInfo(%OPERAT'
+'ION_RESULT%), result, [%OPERATION_RESULT_ATTRIBUTE%]);'#13#10' // <%%% S'
+'TART OUT_PARAMS_NO_STRIP %%%>'#13#10' __Message.Read(''%PARAM_NAME%'', T'
+'ypeInfo(%PARAM_TYPE%), %PARAM_NAME%, [%PARAM_ATTRIBUTE%]);'#13#10' // <%'
+'%% END OUT_PARAMS_NO_STRIP %%%>'#13#10' finally'#13#10' __Message.FreeS'
+'tream;'#13#10' end'#13#10'end;'#13#10#13#10'// <%%% END FUNCTION_OPERATION'
+'S %%%>'#13#10'// <%%% START PROCEDURE_OPERATIONS %%%>'#13#10'procedure T%SE'
+'RVICE_NAME%_Proxy.%OPERATION_NAME%('#13#10' // <%%% START PARAMS '
+'%%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_NAME%: %PARAM_TYPE%;'
+#13#10' // <%%% END PARAMS %%%>'#13#10' );'#13#10'begin'
+#13#10' // <%%% START OUT_PARAMS_NO_STRIP %%%>'#13#10' // <%%% START IF_PA'
+'RAM_TYPE_COMPLEX %%%>'#13#10' %PARAM_NAME% := nil;'#13#10' // <%%% END IF'
+'_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%% END OUT_PARAMS_NO_STRIP %%%>'#13
+#10' try'#13#10' __Message.InitializeRequestMessage(__TransportChannel, '
+'''%LIBRARY_NAME%'', __InterfaceName, ''%OPERATION_NAME%'');'#13#10' // <'
+'%%% START IN_PARAMS_NO_STRIP %%%>'#13#10' __Message.Write(''%PARAM_NAME%'
+''', TypeInfo(%PARAM_TYPE%), %PARAM_NAME%, [%PARAM_ATTRIBUTE%]);'#13#10' '
+'// <%%% END IN_PARAMS_NO_STRIP %%%>'#13#10' __Message.Finalize;'#13#10#13
+#10' __TransportChannel.Dispatch(__Message);'#13#10#13#10' // <%%% STA'
+'RT IN_PARAMS_NO_STRIP %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %'
+'%%>'#13#10' %PARAM_NAME%.Free;'#13#10' // <%%% END IF_PARAM_TYPE_COMP'
+'LEX %%%>'#13#10' // <%%% END IN_PARAMS_NO_STRIP %%%>'#13#10#13#10' //'
+' <%%% START OUT_PARAMS_NO_STRIP %%%>'#13#10' __Message.Read(''%PARAM_NAM'
+'E%'', TypeInfo(%PARAM_TYPE%), %PARAM_NAME%, [%PARAM_ATTRIBUTE%]);'#13#10' '
+' // <%%% END OUT_PARAMS_NO_STRIP %%%>'#13#10' finally'#13#10' __Messag'
+'e.FreeStream;'#13#10' end'#13#10'end;'#13#10#13#10'// <%%% END PROCEDURE_O'
+'PERATIONS %%%>'#13#10'// <%%% END SERVICES %%%>'#13#10'// <%%% START EVENT_'
+'SINKS %%%>'#13#10'type'#13#10' { T%EVENT_SINK_NAME%_Writer }'#13#10' T%EV'
+'ENT_SINK_NAME%_Writer = class(T%EVENT_SINK_WRITER_ANCESTOR_NAME%, I%EVENT_S'
+'INK_NAME%_Writer)'#13#10' protected'#13#10' // <%%% START OPERATIONS %%'
+'%>'#13#10' procedure %OPERATION_NAME%(const __Sender : TGUID'#13#10' '
+' // <%%% START PARAMS %%%>'#13#10' ; %PARAM_FRONT'
+'_MODIFIER% %PARAM_NAME%: %PARAM_TYPE%'#13#10' // <%%% END PA'
+'RAMS %%%>'#13#10' );'#13#10' // <%%% END OPERATIONS %%%>'
+#13#10' end;'#13#10#13#10'// <%%% START OPERATIONS %%%>'#13#10'procedure T%'
+'EVENT_SINK_NAME%_Writer.%OPERATION_NAME%(const __Sender : TGUID'#13#10' //'
+' <%%% START PARAMS %%%>'#13#10' ; %PARAM_FRONT_MODIFIER% %PARAM_NAME%: %PA'
+'RAM_TYPE%'#13#10' // <%%% END PARAMS %%%>'#13#10' );'#13#10'var __eventda'
+'ta : Binary;'#13#10'begin'#13#10' __eventdata := Binary.Create;'#13#10' t'
+'ry'#13#10' __Message.InitializeEventMessage(NIL, ''%LIBRARY_NAME%'', EID'
+'_%EVENT_SINK_NAME%, ''%OPERATION_NAME%'');'#13#10' // <%%% START PARAMS_'
+'NO_STRIP %%%>'#13#10' __Message.Write(''%PARAM_NAME%'', TypeInfo(%PARAM_'
+'TYPE%), %PARAM_NAME%, [%PARAM_ATTRIBUTE%]);'#13#10' // <%%% END PARAMS_N'
+'O_STRIP %%%>'#13#10' __Message.Finalize;'#13#10#13#10' __Message.Writ'
+'eToStream(__eventdata);'#13#10#13#10' Repository.StoreEventData(__Sender'
+', __eventdata, ExcludeSender, ExcludeSessionList, SessionList.CommaText);'
+#13#10' finally'#13#10' __eventdata.Free;'#13#10' end;'#13#10'end;'#13
+#10#13#10'// <%%% END OPERATIONS %%%>'#13#10'type'#13#10' { T%EVENT_SINK_NA'
+'ME%_Invoker }'#13#10' T%EVENT_SINK_NAME%_Invoker = class(T%EVENT_SINK_INVO'
+'KER_ANCESTOR_NAME%)'#13#10' published'#13#10' // <%%% START OPERATIONS '
+'%%%>'#13#10' procedure Invoke_%OPERATION_NAME%(__EventReceiver : TROEven'
+'tReceiver; const __Message : IROMessage; const __Target : IUnknown);'#13#10
+' // <%%% END OPERATIONS %%%>'#13#10' end;'#13#10#13#10'// <%%% START OP'
+'ERATIONS %%%>'#13#10'procedure T%EVENT_SINK_NAME%_Invoker.Invoke_%OPERATION'
+'_NAME%(__EventReceiver : TROEventReceiver; const __Message : IROMessage; co'
+'nst __Target : IUnknown);'#13#10'var'#13#10' // <%%% START PARAMS_NO_STRIP'
+' %%%>'#13#10' %PARAM_NAME%: %PARAM_TYPE%;'#13#10' // <%%% END PARAMS_NO_S'
+'TRIP %%%>'#13#10' // <%%% START IF_HAS_COMPLEX_TYPE %%%>'#13#10' __lObjec'
+'tDisposer: TROObjectDisposer;'#13#10' // <%%% END IF_HAS_COMPLEX_TYPE %%%>'
,#13#10' __%EVENT_SINK_NAME%Instance: I%EVENT_SINK_NAME%;'#13#10'begin'#13#10
+' // <%%% START PARAMS_NO_STRIP %%%>'#13#10' // <%%% START IF_PARAM_TYPE_C'
+'OMPLEX %%%>'#13#10' %PARAM_NAME% := nil;'#13#10' // <%%% END IF_PARAM_TYP'
+'E_COMPLEX %%%>'#13#10' // <%%% END PARAMS_NO_STRIP %%%>'#13#10' try'#13#10
+' // <%%% START PARAMS_NO_STRIP %%%>'#13#10' __Message.Read(''%PARAM_N'
+'AME%'', TypeInfo(%PARAM_TYPE%), %PARAM_NAME%, [%PARAM_ATTRIBUTE%]);'#13#10
+' // <%%% END PARAMS_NO_STRIP %%%>'#13#10#13#10' __%EVENT_SINK_NAME%In'
+'stance := (__Target as I%EVENT_SINK_NAME%);'#13#10' __%EVENT_SINK_NAME%I'
+'nstance.%OPERATION_NAME%('#13#10' // <%%% '
+'START PARAMS %%%>'#13#10' %PARAM_NAME%,'#13
+#10' // <%%% END PARAMS %%%>'#13#10' '
+' );'#13#10#13#10' finally'#13#10' // <%%% STA'
+'RT IF_HAS_COMPLEX_TYPE %%%>'#13#10' __lObjectDisposer := TROObjectDispos'
+'er.Create(__EventReceiver);'#13#10' try'#13#10' // <%%% START PARAM'
+'S_NO_STRIP %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10
+' __lObjectDisposer.Add(%PARAM_NAME%);'#13#10' // <%%% END IF_PARA'
+'M_TYPE_COMPLEX %%%>'#13#10' // <%%% END PARAMS_NO_STRIP %%%>'#13#10' '
+' finally'#13#10' __lObjectDisposer.Free();'#13#10' end;'#13#10' '
+' // <%%% END IF_HAS_COMPLEX_TYPE %%%>'#13#10' end'#13#10'end;'#13#10#13#10
+'// <%%% END OPERATIONS %%%>'#13#10'// <%%% END EVENT_SINKS %%%>'#13#10'init'
+'ialization'#13#10' // <%%% START STRUCTS %%%>'#13#10' RegisterROClass(%ST'
+'RUCT_NAME%);'#13#10' // <%%% END STRUCTS %%%>'#13#10' // <%%% START ARRAY'
+'S %%%>'#13#10' RegisterROClass(%ARRAY_NAME%);'#13#10' // <%%% END ARRAYS '
+'%%%>'#13#10' // <%%% START EXCEPTIONS %%%>'#13#10' RegisterExceptionClass'
+'(%EXCEPTION_NAME%);'#13#10' // <%%% END EXCEPTIONS %%%>'#13#10' // <%%% S'
+'TART SERVICES %%%>'#13#10' RegisterProxyClass(I%SERVICE_NAME%_IID, T%SERVI'
+'CE_NAME%_Proxy);'#13#10' // <%%% END SERVICES %%%> '#13#10' // <%%% S'
+'TART EVENT_SINKS %%%>'#13#10' RegisterEventWriterClass(I%EVENT_SINK_NAME%_'
+'Writer, T%EVENT_SINK_NAME%_Writer);'#13#10' RegisterEventInvokerClass(EID_'
+'%EVENT_SINK_NAME%, T%EVENT_SINK_NAME%_Invoker);'#13#10' // <%%% END EVENT_'
+'SINKS %%%> '#13#10#13#10'finalization'#13#10' // <%%% START STRUCTS %%'
+'%>'#13#10' UnregisterROClass(%STRUCT_NAME%);'#13#10' // <%%% END STRUCTS '
+'%%%>'#13#10' // <%%% START ARRAYS %%%>'#13#10' UnregisterROClass(%ARRAY_N'
+'AME%);'#13#10' // <%%% END ARRAYS %%%>'#13#10' // <%%% START EXCEPTIONS %'
+'%%>'#13#10' UnregisterExceptionClass(%EXCEPTION_NAME%);'#13#10' // <%%% E'
+'ND EXCEPTIONS %%%>'#13#10' // <%%% START SERVICES %%%>'#13#10' Unregister'
+'ProxyClass(I%SERVICE_NAME%_IID);'#13#10' // <%%% END SERVICES %%%>'#13#10
+' // <%%% START EVENT_SINKS %%%>'#13#10' UnregisterEventWriterClass(I%EVEN'
+'T_SINK_NAME%_Writer);'#13#10' UnregisterEventInvokerClass(EID_%EVENT_SINK_'
+'NAME%);'#13#10' // <%%% END EVENT_SINKS %%%> '#13#10#13#10'end.'#13#10
]);
LazarusResources.Add('TEMPLATE_INVK_PAS','RCDATA',[
'unit %UNIT_NAME%;'#13#10#13#10'{--------------------------------------------'
+'--------------------------------}'#13#10'{ This unit was automatically gene'
+'rated by the RemObjects SDK after reading }'#13#10'{ the RODL file associa'
+'ted with this project . }'#13#10'{ '
+' }'#13#10'{'
+' Do not modify this unit manually, or your changes will be lost when this '
+' }'#13#10'{ unit is regenerated the next time you compile the project. '
+' }'#13#10'{-----------------------------------------------------'
+'-----------------------}'#13#10#13#10'{$I RemObjects.inc}'#13#10#13#10'inte'
+'rface'#13#10#13#10'uses'#13#10' {vcl:} Classes,'#13#10' {RemObjects:} uRO'
+'XMLIntf, uROServer, uROServerIntf, uROTypes, uROClientIntf,'#13#10' // <%%'
+'% START REQUIRED_UNITS %%%>'#13#10' {Required:} %REQUIRED_UNIT_NAME%,'#13
+#10' // <%%% END REQUIRED_UNITS %%%>'#13#10' {Generated:} %LIBRARY_NAME%_I'
+'ntf;'#13#10#13#10'type'#13#10' TSeekOrigin = Classes.TSeekOrigin; // fake '
+'declaration'#13#10#13#10' // <%%% START SERVICES %%%>'#13#10' T%SERVICE_N'
+'AME%_Invoker = class(T%SERVICE_INVOKER_ANCESTOR_NAME%)'#13#10' private'#13
+#10' protected'#13#10' constructor Create; override;'#13#10' published'
+#13#10' // <%%% START FUNCTION_OPERATIONS %%%>'#13#10' procedure Invok'
+'e_%OPERATION_NAME%(const __Instance:IInterface; const __Message:IROMessage;'
+' const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions)'
+';'#13#10' // <%%% END FUNCTION_OPERATIONS %%%>'#13#10' // <%%% START '
+'PROCEDURE_OPERATIONS %%%>'#13#10' procedure Invoke_%OPERATION_NAME%(cons'
+'t __Instance:IInterface; const __Message:IROMessage; const __Transport:IROT'
+'ransport; out __oResponseOptions:TROResponseOptions);'#13#10' // <%%% EN'
+'D PROCEDURE_OPERATIONS %%%>'#13#10' end;'#13#10#13#10' // <%%% END SERVIC'
+'ES %%%>'#13#10'implementation'#13#10#13#10'uses'#13#10' {RemObjects:} uROR'
+'es, uROClient;'#13#10#13#10'// <%%% START SERVICES %%%>'#13#10'{ T%SERVICE_'
+'NAME%_Invoker }'#13#10#13#10'constructor T%SERVICE_NAME%_Invoker.Create;'#13
+#10'begin'#13#10' inherited Create;'#13#10' FAbstract := %IS_ABSTRACT%;'#13
+#10'end;'#13#10#13#10'// <%%% START FUNCTION_OPERATIONS %%%>'#13#10'procedur'
+'e T%SERVICE_NAME%_Invoker.Invoke_%OPERATION_NAME%(const __Instance:IInterfa'
+'ce; const __Message:IROMessage; const __Transport:IROTransport; out __oResp'
+'onseOptions:TROResponseOptions);'#13#10'{ function %OPERATION_NAME%('#13#10
+' // <%%% START PARAMS %%%>'#13#10' %PARAM_FRONT_M'
+'ODIFIER% %PARAM_NAME%: %PARAM_TYPE%;'#13#10' // <%%% END PARAM'
+'S %%%>'#13#10' ): %OPERATION_RESULT%; }'#13#10'var'#13#10' //'
+' <%%% START PARAMS_NO_STRIP %%%>'#13#10' %PARAM_NAME%: %PARAM_TYPE%;'#13#10
+' // <%%% END PARAMS_NO_STRIP %%%>'#13#10' lResult: %OPERATION_RESULT%;'#13
+#10' // <%%% START IF_HAS_COMPLEX_TYPE %%%>'#13#10' __lObjectDisposer: TRO'
+'ObjectDisposer;'#13#10' // <%%% END IF_HAS_COMPLEX_TYPE %%%>'#13#10' __%S'
+'ERVICE_NAME%Instance: I%SERVICE_NAME%;'#13#10'begin'#13#10' // <%%% START '
+'PARAMS_NO_STRIP %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13
+#10' %PARAM_NAME% := nil;'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'
+#13#10' // <%%% END PARAMS_NO_STRIP %%%>'#13#10' // <%%% START IF_RESULT_C'
+'OMPLEX %%%>'#13#10' lResult := nil;'#13#10' // <%%% END IF_RESULT_COMPLEX'
+' %%%>'#13#10' try'#13#10' // <%%% START IN_PARAMS_NO_STRIP %%%>'#13#10
+' __Message.Read(''%PARAM_NAME%'', TypeInfo(%PARAM_TYPE%), %PARAM_NAME%, '
+'[%PARAM_ATTRIBUTE%]);'#13#10' // <%%% END IN_PARAMS_NO_STRIP %%%>'#13#10
+#13#10' __%SERVICE_NAME%Instance := __Instance as I%SERVICE_NAME%; '#13#10
+' lResult := __%SERVICE_NAME%Instance.%OPERATION_NAME%('#13#10' '
+' // <%%% START PARAMS %%%>'#13#10' '
+' %PARAM_NAME%,'#13#10' '
+' // <%%% END PARAMS %%%>'#13#10' '
+' );'#13#10#13#10' __Message.InitializeResponseMessage(_'
+'_Transport, ''%LIBRARY_NAME%'', ''%SERVICE_NAME%'', ''%OPERATION_NAME%Respo'
+'nse'');'#13#10' __Message.Write(''Result'', TypeInfo(%OPERATION_RESULT%)'
+', lResult, [%OPERATION_RESULT_ATTRIBUTE%]);'#13#10' // <%%% START OUT_PA'
+'RAMS_NO_STRIP %%%>'#13#10' __Message.Write(''%PARAM_NAME%'', TypeInfo(%P'
+'ARAM_TYPE%), %PARAM_NAME%, [%PARAM_ATTRIBUTE%]);'#13#10' // <%%% END OUT'
+'_PARAMS_NO_STRIP %%%>'#13#10' __Message.Finalize;'#13#10' __Message.U'
+'nsetAttributes(__Transport);'#13#10' '#13#10' finally'#13#10' // <%%'
+'% START IF_HAS_COMPLEX_TYPE %%%>'#13#10' __lObjectDisposer := TROObjectD'
+'isposer.Create(__Instance);'#13#10' try'#13#10' // <%%% START PARAM'
+'S_NO_STRIP %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10
,' __lObjectDisposer.Add(%PARAM_NAME%);'#13#10' // <%%% END IF_PARA'
+'M_TYPE_COMPLEX %%%>'#13#10' // <%%% END PARAMS_NO_STRIP %%%>'#13#10' '
+' // <%%% START IF_RESULT_COMPLEX %%%>'#13#10' __lObjectDisposer.Add'
+'(lResult);'#13#10' // <%%% END IF_RESULT_COMPLEX %%%>'#13#10' final'
+'ly'#13#10' __lObjectDisposer.Free();'#13#10' end;'#13#10' // <%%'
+'% END IF_HAS_COMPLEX_TYPE %%%>'#13#10' end;'#13#10'end;'#13#10#13#10'// <%'
+'%% END FUNCTION_OPERATIONS %%%>'#13#10'// <%%% START PROCEDURE_OPERATIONS %'
+'%%>'#13#10'procedure T%SERVICE_NAME%_Invoker.Invoke_%OPERATION_NAME%(const '
+'__Instance:IInterface; const __Message:IROMessage; const __Transport:IROTra'
+'nsport; out __oResponseOptions:TROResponseOptions);'#13#10'{ procedure %OPE'
+'RATION_NAME%('#13#10' // <%%% START PARAMS %%%>'#13#10' '
+' %PARAM_FRONT_MODIFIER% %PARAM_NAME%: %PARAM_TYPE%;'#13#10' '
+' // <%%% END PARAMS %%%>'#13#10' ); }'#13#10'var'#13#10' /'
+'/ <%%% START PARAMS_NO_STRIP %%%>'#13#10' %PARAM_NAME%: %PARAM_TYPE%;'#13
+#10' // <%%% END PARAMS_NO_STRIP %%%>'#13#10' // <%%% START IF_HAS_COMPLEX'
+'_TYPE %%%>'#13#10' __lObjectDisposer: TROObjectDisposer;'#13#10' // <%%% '
+'END IF_HAS_COMPLEX_TYPE %%%>'#13#10' __%SERVICE_NAME%Instance: I%SERVICE_N'
+'AME%;'#13#10'begin'#13#10' // <%%% START PARAMS_NO_STRIP %%%>'#13#10' // '
+'<%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' %PARAM_NAME% := nil;'#13#10
+' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%% END PARAMS_NO_STR'
+'IP %%%>'#13#10' try'#13#10' // <%%% START IN_PARAMS_NO_STRIP %%%>'#13#10
+' __Message.Read(''%PARAM_NAME%'', TypeInfo(%PARAM_TYPE%), %PARAM_NAME%, '
+'[%PARAM_ATTRIBUTE%]);'#13#10' // <%%% END IN_PARAMS_NO_STRIP %%%>'#13#10
+#13#10' __%SERVICE_NAME%Instance := __Instance as I%SERVICE_NAME%; '#13#10
+' __%SERVICE_NAME%Instance.%OPERATION_NAME%('#13#10' '
+' // <%%% START PARAMS %%%>'#13#10' %'
+'PARAM_NAME%,'#13#10' // <%%% END PARAMS %%%>'
+#13#10' );'#13#10#13#10' __Message.Initiali'
+'zeResponseMessage(__Transport, ''%LIBRARY_NAME%'', ''%SERVICE_NAME%'', ''%O'
+'PERATION_NAME%Response'');'#13#10' // <%%% START OUT_PARAMS_NO_STRIP %%%'
+'>'#13#10' __Message.Write(''%PARAM_NAME%'', TypeInfo(%PARAM_TYPE%), %PAR'
+'AM_NAME%, [%PARAM_ATTRIBUTE%]);'#13#10' // <%%% END OUT_PARAMS_NO_STRIP '
+'%%%>'#13#10' __Message.Finalize;'#13#10' __Message.UnsetAttributes(__'
+'Transport);'#13#10' '#13#10' // <%%% START IF_NO_OUT_PARAMS %%%>'#13
+#10' __oResponseOptions := [roNoResponse];'#13#10#13#10' // <%%% END I'
+'F_NO_OUT_PARAMS %%%>'#13#10' finally'#13#10' // <%%% START IF_HAS_COMPL'
+'EX_TYPE %%%>'#13#10' __lObjectDisposer := TROObjectDisposer.Create(__Ins'
+'tance);'#13#10' try'#13#10' // <%%% START PARAMS_NO_STRIP %%%>'#13
+#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' __lObjectDis'
+'poser.Add(%PARAM_NAME%);'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%'
+'>'#13#10' // <%%% END PARAMS_NO_STRIP %%%>'#13#10' finally'#13#10' '
+' __lObjectDisposer.Free();'#13#10' end;'#13#10' // <%%% END IF_HA'
+'S_COMPLEX_TYPE %%%>'#13#10' end;'#13#10'end;'#13#10#13#10'// <%%% END PROC'
+'EDURE_OPERATIONS %%%>'#13#10'// <%%% END SERVICES %%%>'#13#10'end.'#13#10
]);
LazarusResources.Add('TEMPLATE_IMPL_PAS','RCDATA',[
'unit %UNIT_NAME%;'#13#10#13#10'{--------------------------------------------'
+'--------------------------------}'#13#10'{ This unit was automatically gene'
+'rated by the RemObjects SDK after reading }'#13#10'{ the RODL file associa'
+'ted with this project . }'#13#10'{ '
+' }'#13#10'{'
+' This is where you are supposed to code the implementation of your objects.'
+' }'#13#10'{----------------------------------------------------------------'
+'------------}'#13#10#13#10'{$I RemObjects.inc}'#13#10#13#10'interface'#13#10
+#13#10'uses'#13#10' {vcl:} Classes, SysUtils,'#13#10' {RemObjects:} uROXML'
+'Intf, uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions,'#13#10
+' // <%%% START REQUIRED_UNITS %%%>'#13#10' {Required:} %REQUIRED_UNIT_NAM'
+'E%,'#13#10' // <%%% END REQUIRED_UNITS %%%>'#13#10' {Generated:} %LIBRARY'
+'_NAME%_Intf;'#13#10#13#10'// <%%% START SERVICES %%%>'#13#10'type'#13#10' '
+'{ T%SERVICE_NAME% }'#13#10' T%SERVICE_NAME% = class(%SERVICE_ANCESTOR_NAME'
+'%, I%SERVICE_NAME%)'#13#10' private'#13#10' protected'#13#10' { I%SERV'
+'ICE_NAME% methods }'#13#10' // <%%% START FUNCTION_OPERATIONS %%%>'#13#10
+' function %OPERATION_NAME%('#13#10' // <%%% START PARAMS %'
+'%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_NAME%: %PARAM_TYPE%'
+';'#13#10' // <%%% END PARAMS %%%>'#13#10' ): %O'
+'PERATION_RESULT%;'#13#10' // <%%% END FUNCTION_OPERATIONS %%%>'#13#10' '
+' // <%%% START PROCEDURE_OPERATIONS %%%>'#13#10' procedure %OPERATION_N'
+'AME%('#13#10' // <%%% START PARAMS %%%>'#13#10' '
+' %PARAM_FRONT_MODIFIER% %PARAM_NAME%: %PARAM_TYPE%;'#13#10' /'
+'/ <%%% END PARAMS %%%>'#13#10' );'#13#10' // <%%% END PROC'
+'EDURE_OPERATIONS %%%>'#13#10' end;'#13#10'// <%%% END SERVICES %%%>'#13#10
+#13#10'implementation'#13#10#13#10'// <%%% START IF_DATA_MODULE %%%>'#13#10
+'{$R *.dfm}'#13#10#13#10'// <%%% END IF_DATA_MODULE %%%>'#13#10'uses'#13#10
+' {Generated:} %LIBRARY_NAME%_Invk;'#13#10#13#10'// <%%% START SERVICES %%%'
+'>'#13#10'procedure Create_%SERVICE_NAME%(out anInstance : IUnknown);'#13#10
+'begin'#13#10' anInstance := T%SERVICE_NAME%.Create('#13#10' // <%%% STA'
+'RT IF_DATA_MODULE %%%>'#13#10' nil'#13#10' // <%%% END IF_DATA_MODULE'
+' %%%>'#13#10' );'#13#10'end;'#13#10#13#10'{ %SERVICE_NAME% }'#13#10'// <'
+'%%% START FUNCTION_OPERATIONS %%%>'#13#10'function T%SERVICE_NAME%.%OPERATI'
+'ON_NAME%('#13#10' // <%%% START PARAMS %%%>'#13#10' %PA'
+'RAM_FRONT_MODIFIER% %PARAM_NAME%: %PARAM_TYPE%;'#13#10' // <%%% E'
+'ND PARAMS %%%>'#13#10' ): %OPERATION_RESULT%;'#13#10'begin'#13#10
+'end;'#13#10#13#10'// <%%% END FUNCTION_OPERATIONS %%%>'#13#10'// <%%% START'
+' PROCEDURE_OPERATIONS %%%>'#13#10'procedure T%SERVICE_NAME%.%OPERATION_NAME'
+'%('#13#10' // <%%% START PARAMS %%%>'#13#10' %PARAM_FRO'
+'NT_MODIFIER% %PARAM_NAME%: %PARAM_TYPE%;'#13#10' // <%%% END PARA'
+'MS %%%>'#13#10' );'#13#10'begin'#13#10'end;'#13#10#13#10'// <%%% '
+'END PROCEDURE_OPERATIONS %%%>'#13#10'initialization'#13#10' TROClassFactor'
+'y.Create(''%SERVICE_NAME%'', Create_%SERVICE_NAME%, T%SERVICE_NAME%_Invoker'
+');'#13#10#13#10'finalization'#13#10#13#10'// <%%% END SERVICES %%%>'#13#10
+'end.'#13#10
]);
LazarusResources.Add('TEMPLATE_ASYNC_PAS','RCDATA',[
'unit %UNIT_NAME%;'#13#10#13#10'{--------------------------------------------'
+'--------------------------------}'#13#10'{ This unit was automatically gene'
+'rated by the RemObjects SDK after reading }'#13#10'{ the RODL file associa'
+'ted with this project . }'#13#10'{ '
+' }'#13#10'{'
+' Do not modify this unit manually, or your changes will be lost when this '
+' }'#13#10'{ unit is regenerated the next time you compile the project. '
+' }'#13#10'{-----------------------------------------------------'
+'-----------------------}'#13#10#13#10'{$I RemObjects.inc}'#13#10#13#10'inte'
+'rface'#13#10#13#10'uses'#13#10' {vcl:} Classes, TypInfo,'#13#10' {RemObje'
+'cts:} uROXMLIntf, uROClasses, uROClient, uROTypes, uROClientIntf, uROAsync'
+#13#10' // <%%% START REQUIRED_UNITS %%%>'#13#10' {Required:} %REQUIRED_UN'
+'IT_NAME%,'#13#10' // <%%% END REQUIRED_UNITS %%%>'#13#10' {Generated:} %L'
+'IBRARY_NAME%_Intf;'#13#10#13#10'type'#13#10' { Forward declarations }'#13
+#10' // <%%% START SERVICES %%%>'#13#10' I%SERVICE_NAME%_Async = interface'
+';'#13#10' Co%SERVICE_NAME%_Async = class;'#13#10' T%SERVICE_NAME%_AsyncPr'
+'oxy = class;'#13#10' // <%%% END SERVICES %%%>'#13#10#13#10' // <%%% STAR'
+'T SERVICES %%%>'#13#10' { I%SERVICE_NAME%_Async }'#13#10' // <%%% START D'
+'OCUMENTATION %%%>'#13#10#13#10' { Description:'#13#10' %CONTENT% }'#13
+#10' // <%%% END DOCUMENTATION %%%>'#13#10' I%SERVICE_NAME%_Async = interf'
+'ace%SERVICE_ANCESTOR_NAME%'#13#10' [''%ASYNC_SERVICE_UID%'']'#13#10' '
+'// <%%% START FUNCTION_OPERATIONS %%%>'#13#10' procedure Invoke_%OPERATI'
+'ON_NAME%('#13#10' // <%%% START IN_PARAMS %%%>'#13#10' '
+' %PARAM_FRONT_MODIFIER% %PARAM_NAME%: %PARAM_TYPE%;'#13#10' '
+' // <%%% END IN_PARAMS %%%>'#13#10' );'#13#10' functi'
+'on Retrieve_%OPERATION_NAME%('#13#10' // <%%% START OUT_PARAM'
+'S %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_NAME%: %PARAM_TY'
+'PE%;'#13#10' // <%%% END OUT_PARAMS %%%>'#13#10' '
+' ): %OPERATION_RESULT%;'#13#10' // <%%% END FUNCTION_OPERATIONS %%%>'#13
+#10' // <%%% START PROCEDURE_OPERATIONS %%%>'#13#10' procedure Invoke_'
+'%OPERATION_NAME%('#13#10' // <%%% START IN_PARAMS %%%>'#13#10
+' %PARAM_FRONT_MODIFIER% %PARAM_NAME%: %PARAM_TYPE%;'#13#10' '
+' // <%%% END IN_PARAMS %%%>'#13#10' );'#13#10
+' // <%%% START IF_OUT_PARAMS %%%>'#13#10' procedure Retrieve_%OPERATI'
+'ON_NAME%('#13#10' // <%%% START OUT_PARAMS %%%>'#13#10' '
+' %PARAM_FRONT_MODIFIER% %PARAM_NAME%: %PARAM_TYPE%;'#13#10' '
+' // <%%% END OUT_PARAMS %%%>'#13#10' );'#13#10' // <'
+'%%% END IF_OUT_PARAMS %%%>'#13#10' // <%%% END PROCEDURE_OPERATIONS %%%>'
+#13#10' end;'#13#10#13#10' { Co%SERVICE_NAME%_Async }'#13#10' Co%SERVICE_'
+'NAME%_Async = class'#13#10' class function Create(const aMessage: IROMes'
+'sage; aTransportChannel: IROTransportChannel): I%SERVICE_NAME%_Async;'#13#10
+' end;'#13#10#13#10' { T%SERVICE_NAME%_Proxy }'#13#10' T%SERVICE_NAME%_As'
+'yncProxy = class(%SERVICE_PROXY_ANCESTOR_NAME%, I%SERVICE_NAME%_Async)'#13
+#10' protected'#13#10' function __GetInterfaceName:string; override;'#13
+#10#13#10' // <%%% START FUNCTION_OPERATIONS %%%>'#13#10' procedure In'
+'voke_%OPERATION_NAME%('#13#10' // <%%% START IN_PARAMS %%%>'
+#13#10' %PARAM_FRONT_MODIFIER% %PARAM_NAME%: %PARAM_TYPE%;'#13
+#10' // <%%% END IN_PARAMS %%%>'#13#10' );'#13#10
+' function Retrieve_%OPERATION_NAME%('#13#10' // <%%% START'
+' OUT_PARAMS %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_NAME%:'
+' %PARAM_TYPE%;'#13#10' // <%%% END OUT_PARAMS %%%>'#13#10' '
+' ): %OPERATION_RESULT%;'#13#10' // <%%% END FUNCTION_OPERATIO'
+'NS %%%>'#13#10' // <%%% START PROCEDURE_OPERATIONS %%%>'#13#10' proce'
+'dure Invoke_%OPERATION_NAME%('#13#10' // <%%% START IN_PARAM'
+'S %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_NAME%: %PARAM_T'
+'YPE%;'#13#10' // <%%% END IN_PARAMS %%%>'#13#10' '
+' );'#13#10' // <%%% START IF_OUT_PARAMS %%%>'#13#10' procedure Ret'
+'rieve_%OPERATION_NAME%('#13#10' // <%%% START OUT_PARAMS %%%>'
+#13#10' %PARAM_FRONT_MODIFIER% %PARAM_NAME%: %PARAM_TYPE%;'#13
+#10' // <%%% END OUT_PARAMS %%%>'#13#10' );'#13
+#10' // <%%% END IF_OUT_PARAMS %%%>'#13#10' // <%%% END PROCEDURE_OPER'
+'ATIONS %%%>'#13#10' end;'#13#10#13#10' // <%%% END SERVICES %%%>'#13#10'i'
+'mplementation'#13#10#13#10'uses'#13#10' {vcl:} SysUtils,'#13#10' {RemObje'
+'cts:} uROEventRepository, uRORes;'#13#10#13#10'// <%%% START SERVICES %%%>'
,#13#10'{ Co%SERVICE_NAME%_Async }'#13#10#13#10'class function Co%SERVICE_NAM'
+'E%_Async.Create(const aMessage: IROMessage; aTransportChannel: IROTransport'
+'Channel): I%SERVICE_NAME%_Async;'#13#10'begin'#13#10' result := T%SERVICE_'
+'NAME%_AsyncProxy.Create(aMessage, aTransportChannel);'#13#10'end;'#13#10#13
+#10'{ T%SERVICE_NAME%_AsyncProxy }'#13#10#13#10'function T%SERVICE_NAME%_Asy'
+'ncProxy.__GetInterfaceName:string;'#13#10'begin'#13#10' result := ''%SERVI'
+'CE_NAME%'';'#13#10'end;'#13#10#13#10'// <%%% START FUNCTION_OPERATIONS %%%>'
+#13#10'procedure T%SERVICE_NAME%_AsyncProxy.Invoke_%OPERATION_NAME%('#13#10
+' // <%%% START IN_PARAMS %%%>'#13#10' %PARAM_FRONT_MODI'
+'FIER% %PARAM_NAME%: %PARAM_TYPE%;'#13#10' // <%%% END IN_PARAMS %'
+'%%>'#13#10' );'#13#10'begin'#13#10' __AssertProxyNotBusy(''%OPER'
+'ATION_NAME%'');'#13#10#13#10' __Message.InitializeRequestMessage(__Transpo'
+'rtChannel, ''%LIBRARY_NAME%'', __InterfaceName, ''%OPERATION_NAME%'');'#13
+#10' // <%%% START IN_PARAMS_NO_STRIP %%%>'#13#10' __Message.Write(''%PARA'
+'M_NAME%'', TypeInfo(%PARAM_TYPE%), %PARAM_NAME%, [%PARAM_ATTRIBUTE%]);'#13
+#10' // <%%% END IN_PARAMS_NO_STRIP %%%>'#13#10#13#10' __DispatchAsyncRequ'
+'est(''%OPERATION_NAME%'',__Message);'#13#10'end;'#13#10#13#10'function T%SE'
+'RVICE_NAME%_AsyncProxy.Retrieve_%OPERATION_NAME%('#13#10' // <%%%'
+' START OUT_PARAMS %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_NAME'
+'%: %PARAM_TYPE%;'#13#10' // <%%% END OUT_PARAMS %%%>'#13#10' '
+' ): %OPERATION_RESULT%;'#13#10'var'#13#10' __response:TStream;'#13#10
+'begin'#13#10' // <%%% START OUT_PARAMS_NO_STRIP %%%>'#13#10' // <%%% STAR'
+'T IF_PARAM_TYPE_COMPLEX %%%>'#13#10' %PARAM_NAME% := nil;'#13#10' // <%%%'
+' END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%% END OUT_PARAMS_NO_STRIP %%'
+'%>'#13#10' // <%%% START IF_RESULT_COMPLEX %%%>'#13#10' Result := nil;'#13
+#10' // <%%% END IF_RESULT_COMPLEX %%%>'#13#10#13#10' __response := __Retr'
+'ieveAsyncResponse(''%OPERATION_NAME%'');'#13#10' __Message.ReadFromStream('
+'__response);'#13#10#13#10' __Message.Read(''Result'', TypeInfo(%OPERATION_'
+'RESULT%), Result, [%OPERATION_RESULT_ATTRIBUTE%]);'#13#10' // <%%% START O'
+'UT_PARAMS_NO_STRIP %%%>'#13#10' __Message.Read(''%PARAM_NAME%'', TypeInfo('
+'%PARAM_TYPE%), %PARAM_NAME%, [%PARAM_ATTRIBUTE%]);'#13#10' // <%%% END OUT'
+'_PARAMS_NO_STRIP %%%>'#13#10#13#10' __response.Free();'#13#10'end;'#13#10
+#13#10'// <%%% END FUNCTION_OPERATIONS %%%>'#13#10'// <%%% START PROCEDURE_O'
+'PERATIONS %%%>'#13#10'procedure T%SERVICE_NAME%_AsyncProxy.Invoke_%OPERATIO'
+'N_NAME%('#13#10' // <%%% START IN_PARAMS %%%>'#13#10' %'
+'PARAM_FRONT_MODIFIER% %PARAM_NAME%: %PARAM_TYPE%;'#13#10' // <%%%'
+' END IN_PARAMS %%%>'#13#10' );'#13#10'var'#13#10' __request:TStr'
+'eam;'#13#10'begin'#13#10' __AssertProxyNotBusy(''%OPERATION_NAME%'');'#13
+#10' __request := TMemoryStream.Create;'#13#10#13#10' __Message.Initialize'
+'RequestMessage(__TransportChannel, ''%LIBRARY_NAME%'', __InterfaceName, ''%'
+'OPERATION_NAME%'');'#13#10' // <%%% START IN_PARAMS_NO_STRIP %%%>'#13#10' '
+' __Message.Write(''%PARAM_NAME%'', TypeInfo(%PARAM_TYPE%), %PARAM_NAME%, [%'
+'PARAM_ATTRIBUTE%]);'#13#10' // <%%% END IN_PARAMS_NO_STRIP %%%>'#13#10' _'
+'_Message.Finalize;'#13#10#13#10' __Message.WriteToStream(__request);'#13#10
+' __DispatchAsyncRequest(''%OPERATION_NAME%'', __request, False);'#13#10'en'
+'d;'#13#10#13#10'// <%%% START IF_OUT_PARAMS %%%>'#13#10'procedure T%SERVICE'
+'_NAME%_AsyncProxy.Retrieve_%OPERATION_NAME%('#13#10' // <%%% STAR'
+'T OUT_PARAMS %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_NAME%: %P'
+'ARAM_TYPE%;'#13#10' // <%%% END OUT_PARAMS %%%>'#13#10' '
+' );'#13#10'var'#13#10' __response:TStream;'#13#10'begin'#13#10' // <%%% S'
+'TART OUT_PARAMS_NO_STRIP %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX '
+'%%%>'#13#10' %PARAM_NAME% := nil;'#13#10' // <%%% END IF_PARAM_TYPE_COMPL'
+'EX %%%>'#13#10' // <%%% END OUT_PARAMS_NO_STRIP %%%>'#13#10#13#10' __resp'
+'onse := __RetrieveAsyncResponse(''%OPERATION_NAME%'');'#13#10' __Message.R'
+'eadFromStream(__response);'#13#10#13#10' // <%%% START OUT_PARAMS_NO_STRIP'
+' %%%>'#13#10' __Message.Read(''%PARAM_NAME%'', TypeInfo(%PARAM_TYPE%), %PA'
+'RAM_NAME%, [%PARAM_ATTRIBUTE%]);'#13#10' // <%%% END OUT_PARAMS_NO_STRIP %'
+'%%>'#13#10#13#10' __response.Free();'#13#10'end;'#13#10#13#10'// <%%% END '
+'IF_OUT_PARAMS %%%>'#13#10'// <%%% END PROCEDURE_OPERATIONS %%%>'#13#10'// <'
+'%%% END SERVICES %%%>'#13#10'initialization'#13#10#13#10'finalization'#13#10
+#13#10'end.'#13#10
]);
LazarusResources.Add('TEMPLATE_WRAPPER_INTF_PAS','RCDATA',[
'unit %UNIT_NAME%;'#13#10#13#10'{--------------------------------------------'
+'--------------------------------}'#13#10'{ This unit was automatically gene'
+'rated by the RemObjects SDK after reading }'#13#10'{ the RODL file associa'
+'ted with this project . }'#13#10'{ '
+' }'#13#10'{'
+' Do not modify this unit manually, or your changes will be lost when this '
+' }'#13#10'{ unit is regenerated the next time you compile the project. '
+' }'#13#10'{-----------------------------------------------------'
+'-----------------------}'#13#10#13#10'interface'#13#10#13#10'uses'#13#10' '
+'// <%%% START USES %%%>'#13#10' %USED_UNIT_NAME%,'#13#10' // <%%% END USE'
+'S %%%>'#13#10' ;'#13#10#13#10'type'#13#10' // <%%% START TYPES %%%>'#13#10
+' %TYPE_NAME% = %TYPE_UNIT_NAME%.%TYPE_NAME%;'#13#10' // <%%% END TYPES %%'
+'%>'#13#10' '#13#10'implementation'#13#10#13#10'end.'#13#10
]);
LazarusResources.Add('TEMPLATE_WRAPPER_INVK_PAS','RCDATA',[
'unit %UNIT_NAME%;'#13#10#13#10'{--------------------------------------------'
+'--------------------------------}'#13#10'{ This unit was automatically gene'
+'rated by the RemObjects SDK after reading }'#13#10'{ the RODL file associa'
+'ted with this project . }'#13#10'{ '
+' }'#13#10'{'
+' Do not modify this unit manually, or your changes will be lost when this '
+' }'#13#10'{ unit is regenerated the next time you compile the project. '
+' }'#13#10'{-----------------------------------------------------'
+'-----------------------}'#13#10#13#10'interface'#13#10#13#10'uses'#13#10' '
+'// <%%% START USES %%%>'#13#10' %USED_UNIT_NAME%,'#13#10' // <%%% END USE'
+'S %%%>'#13#10' ;'#13#10#13#10'type'#13#10' // <%%% START TYPES %%%>'#13#10
+' %TYPE_NAME%_Invoker = %TYPE_UNIT_NAME%.%TYPE_NAME%_Invoker;'#13#10' // <'
+'%%% END TYPES %%%>'#13#10' '#13#10'implementation'#13#10#13#10'end.'#13#10
]);
LazarusResources.Add('TEMPLATE_WRAPPER_ASYNC_PAS','RCDATA',[
'unit %UNIT_NAME%;'#13#10#13#10'{--------------------------------------------'
+'--------------------------------}'#13#10'{ This unit was automatically gene'
+'rated by the RemObjects SDK after reading }'#13#10'{ the RODL file associa'
+'ted with this project . }'#13#10'{ '
+' }'#13#10'{'
+' Do not modify this unit manually, or your changes will be lost when this '
+' }'#13#10'{ unit is regenerated the next time you compile the project. '
+' }'#13#10'{-----------------------------------------------------'
+'-----------------------}'#13#10#13#10'interface'#13#10#13#10'uses'#13#10' '
+'// <%%% START USES %%%>'#13#10' %USED_UNIT_NAME%,'#13#10' // <%%% END USE'
+'S %%%>'#13#10' ;'#13#10#13#10'type'#13#10' // <%%% START TYPES %%%>'#13#10
+' %TYPE_NAME% = %TYPE_UNIT_NAME%.%TYPE_NAME%;'#13#10' // <%%% END TYPES %%'
+'%>'#13#10' '#13#10'implementation'#13#10#13#10'end.'#13#10
]);
LazarusResources.Add('TEMPLATE_IMPL_DFM','RCDATA',[
'// <%%% START SERVICES %%%>'#13#10'object %SERVICE_NAME%: T%SERVICE_NAME%'#13
+#10' OldCreateOrder = False'#13#10' Height = 150'#13#10' Width = 150'#13
+#10'end'#13#10'// <%%% END SERVICES %%%>'#13#10
]);
LazarusResources.Add('TEMPLATE_INTF_CPP','RCDATA',[
'// %UNIT_NAME%'#13#10'//'#13#10'/*------------------------------------------'
+'---------------------------------}'#13#10'{ This unit was automatically gen'
+'erated by the RemObjects SDK after reading }'#13#10'{ the RODL file associ'
+'ated with this project. }'#13#10'{ '
+' }'#13#10
+'{ Do not modify this unit manually, or your changes will be lost when this '
+' }'#13#10'{ unit is regenerated the next time you compile the project. '
+' }'#13#10'{----------------------------------------------------'
+'-----------------------*/'#13#10#13#10'void __initialization_%UNIT_NAME%();'
+#13#10'void __finalization_%UNIT_NAME%();'#13#10#13#10'#pragma startup __ini'
+'tialization_%UNIT_NAME%'#13#10'#pragma exit __finalization_%UNIT_NAME%'
+#13#10#13#10'#include "%LIBRARY_NAME%_Intf.h"'#13#10'#include <uROEventRepos'
+'itory.hpp>'#13#10'#include <uRORes.hpp>'#13#10#13#10'// Implementation of %'
+'UNIT_NAME%'#13#10#13#10'// <%%% START ARRAYS %%%>'#13#10'// %ARRAY_NAME%'#13
+#10'void __fastcall %ARRAY_NAME%::Assign(Classes::TPersistent* iSource)'#13
+#10'{'#13#10' %ARRAY_NAME%* lSource = dynamic_cast<%ARRAY_NAME%*>(iSource);'
+#13#10' if (lSource)'#13#10' {'#13#10' Clear();'#13#10' Resize(lSour'
+'ce->Count);'#13#10' for (int i = 0 ; i < Count ; i++)'#13#10' {'#13#10
+' // <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' if (lSource->It'
+'ems[i] != NULL)'#13#10' {'#13#10' Items[i]->Assign(lSource->Ite'
+'ms[i]);'#13#10' }'#13#10' // <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'
+#13#10' // <%%% START IF_ARRAY_TYPE_SIMPLE %%%>'#13#10' Items[i] ='
+' lSource->Items[i];'#13#10' // <%%% END IF_ARRAY_TYPE_SIMPLE %%%>'#13
+#10' }'#13#10' }'#13#10' else'#13#10' {'#13#10' inherited::Assign(i'
+'Source);'#13#10' }'#13#10'}'#13#10#13#10'void __fastcall %ARRAY_NAME%::Rea'
+'dComplex(TObject* ASerializer)'#13#10'{'#13#10' // <%%% START IF_ARRAY_TYP'
+'E_SIMPLE %%%>'#13#10' %ARRAY_TYPE% lval;'#13#10' // <%%% END IF_ARRAY_TYP'
+'E_SIMPLE %%%>'#13#10' // <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' %A'
+'RRAY_TYPE%* lval;'#13#10' // <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' '
+'TROSerializer* Serializer = dynamic_cast<TROSerializer*>(ASerializer);'#13
+#10' for (int i = 0; i < Count; i++)'#13#10' {'#13#10' // <%%% START IF'
+'_ARRAY_BINARY_TYPE %%%>'#13#10' Serializer->ReadBinary(Serializer->GetAr'
+'rayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), &lval,'
+' i);'#13#10' // <%%% END IF_ARRAY_BINARY_TYPE %%%>'#13#10' // <%%% ST'
+'ART IF_ARRAY_BOOLEAN_TYPE %%%>'#13#10' Serializer->ReadEnumerated(Serial'
+'izer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef('
+'i)), __GetboolInfo, &lval, i);'#13#10' // <%%% END IF_ARRAY_BOOLEAN_TYPE'
+' %%%>'#13#10' // <%%% START IF_ARRAY_CURRENCY_TYPE %%%>'#13#10' Seria'
+'lizer->ReadDouble(Serializer->GetArrayElementName(GetItemType(__classid(%AR'
+'RAY_NAME%)), GetItemRef(i)), ftCurr, &lval, i);'#13#10' // <%%% END IF_A'
+'RRAY_CURRENCY_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_DATETIME_TYPE %%%'
+'>'#13#10' Serializer->ReadDateTime(Serializer->GetArrayElementName(GetIt'
+'emType(__classid(%ARRAY_NAME%)), GetItemRef(i)), &lval, i);'#13#10' // <'
+'%%% END IF_ARRAY_DATETIME_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_DECIM'
+'AL_TYPE %%%>'#13#10' Serializer->ReadDecimal(Serializer->GetArrayElement'
+'Name(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), &lval, i);'#13#10
+' // <%%% END IF_ARRAY_DECIMAL_TYPE %%%>'#13#10' // <%%% START IF_ARRA'
+'Y_DOUBLE_TYPE %%%>'#13#10' Serializer->ReadDouble(Serializer->GetArrayEl'
+'ementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), ftDouble, &'
+'lval, i);'#13#10' // <%%% END IF_ARRAY_DOUBLE_TYPE %%%>'#13#10' // <%'
+'%% START IF_ARRAY_GUID_TYPE %%%>'#13#10' Serializer->ReadGuid(Serializer'
+'->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)),'
+' &lval, i);'#13#10' // <%%% END IF_ARRAY_GUID_TYPE %%%>'#13#10' // <%'
+'%% START IF_ARRAY_INT64_TYPE %%%>'#13#10' Serializer->ReadInt64(Serializ'
+'er->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)'
+'), &lval, i);'#13#10' // <%%% END IF_ARRAY_INT64_TYPE %%%>'#13#10' //'
+' <%%% START IF_ARRAY_INTEGER_TYPE %%%>'#13#10' Serializer->ReadInteger(S'
+'erializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetIte'
+'mRef(i)), otSLong, &lval, i);'#13#10' // <%%% END IF_ARRAY_INTEGER_TYPE '
+'%%%>'#13#10' // <%%% START IF_ARRAY_ANSISTRING_TYPE %%%>'#13#10' Seri'
+'alizer->ReadUTF8String(Serializer->GetArrayElementName(GetItemType(__classi'
+'d(%ARRAY_NAME%)), GetItemRef(i)), &lval, i);'#13#10' // <%%% END IF_ARRA'
+'Y_ANSISTRING_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_UTF8STRING_TYPE %%'
+'%>'#13#10' Serializer->ReadUTF8String(Serializer->GetArrayElementName(Ge'
,'tItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), &lval, i);'#13#10' /'
+'/ <%%% END IF_ARRAY_UTF8STRING_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_'
+'VARIANT_TYPE %%%>'#13#10' Serializer->ReadVariant(Serializer->GetArrayEl'
+'ementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), &lval, i);'
+#13#10' // <%%% END IF_ARRAY_VARIANT_TYPE %%%>'#13#10' // <%%% START I'
+'F_ARRAY_WIDESTRING_TYPE %%%>'#13#10' Serializer->ReadWideString(Serializ'
+'er->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)'
+'), &lval, i);'#13#10' // <%%% END IF_ARRAY_WIDESTRING_TYPE %%%>'#13#10' '
+' // <%%% START IF_ARRAY_XML_TYPE %%%>'#13#10' Serializer->ReadXml(Seri'
+'alizer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRe'
+'f(i)), &lval, i);'#13#10' // <%%% END IF_ARRAY_XML_TYPE %%%>'#13#10' '
+'// <%%% START IF_ARRAY_ARRAY_TYPE %%%>'#13#10' Serializer->ReadArray(Ser'
+'ializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemR'
+'ef(i)), __classid(%ARRAY_TYPE%), &lval, i);'#13#10' // <%%% END IF_ARRAY'
+'_ARRAY_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_ENUM_TYPE %%%>'#13#10' '
+' Serializer->ReadEnumerated(Serializer->GetArrayElementName(GetItemType(__'
+'classid(%ARRAY_NAME%)), GetItemRef(i)), __Get%ARRAY_TYPE%Info, &lval, i);'
+#13#10' // <%%% END IF_ARRAY_ENUM_TYPE %%%>'#13#10' // <%%% START IF_A'
+'RRAY_STRUCT_TYPE %%%>'#13#10' Serializer->ReadStruct(Serializer->GetArra'
+'yElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), __classi'
+'d(%ARRAY_TYPE%), &lval, i);'#13#10' // <%%% END IF_ARRAY_STRUCT_TYPE %%%'
+'>'#13#10' Items[i] = lval;'#13#10' }'#13#10'}'#13#10#13#10'void __fastc'
+'all %ARRAY_NAME%::WriteComplex(TObject* ASerializer)'#13#10'{'#13#10' TRO'
+'Serializer* Serializer = dynamic_cast<TROSerializer*>(ASerializer);'#13#10
+' for(int i = 0; i < Count; i++)'#13#10' // <%%% START IF_ARRAY_BINARY_T'
+'YPE %%%>'#13#10' Serializer->WriteBinary(Serializer->GetArrayElementName'
+'(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), &(fItems[i]), i);'#13
+#10' // <%%% END IF_ARRAY_BINARY_TYPE %%%>'#13#10' // <%%% START IF_AR'
+'RAY_BOOLEAN_TYPE %%%>'#13#10' Serializer->WriteEnumerated(Serializer->Ge'
+'tArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), __G'
+'etboolInfo, &(fItems[i]), i);'#13#10' // <%%% END IF_ARRAY_BOOLEAN_TYPE '
+'%%%>'#13#10' // <%%% START IF_ARRAY_CURRENCY_TYPE %%%>'#13#10' Serial'
+'izer->WriteDouble(Serializer->GetArrayElementName(GetItemType(__classid(%AR'
+'RAY_NAME%)), GetItemRef(i)), ftCurr, &(fItems[i]), i);'#13#10' // <%%% E'
+'ND IF_ARRAY_CURRENCY_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_DATETIME_T'
+'YPE %%%>'#13#10' Serializer->WriteDateTime(Serializer->GetArrayElementNa'
+'me(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), &(fItems[i]), i);'
+#13#10' // <%%% END IF_ARRAY_DATETIME_TYPE %%%>'#13#10' // <%%% START '
+'IF_ARRAY_DECIMAL_TYPE %%%>'#13#10' Serializer->WriteDecimal(Serializer->'
+'GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), &'
+'(fItems[i]), i);'#13#10' // <%%% END IF_ARRAY_DECIMAL_TYPE %%%>'#13#10' '
+' // <%%% START IF_ARRAY_DOUBLE_TYPE %%%>'#13#10' Serializer->WriteDoub'
+'le(Serializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), Ge'
+'tItemRef(i)), ftDouble, &(fItems[i]), i);'#13#10' // <%%% END IF_ARRAY_D'
+'OUBLE_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_GUID_TYPE %%%>'#13#10' '
+' Serializer->WriteGuid(Serializer->GetArrayElementName(GetItemType(__classi'
+'d(%ARRAY_NAME%)), GetItemRef(i)), &(fItems[i]), i);'#13#10' // <%%% END '
+'IF_ARRAY_GUID_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_INT64_TYPE %%%>'
+#13#10' Serializer->WriteInt64(Serializer->GetArrayElementName(GetItemTyp'
+'e(__classid(%ARRAY_NAME%)), GetItemRef(i)), &(fItems[i]), i);'#13#10' //'
+' <%%% END IF_ARRAY_INT64_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_INTEGE'
+'R_TYPE %%%>'#13#10' Serializer->WriteInteger(Serializer->GetArrayElement'
+'Name(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), otSLong, &(fItem'
+'s[i]), i);'#13#10' // <%%% END IF_ARRAY_INTEGER_TYPE %%%>'#13#10' // '
+'<%%% START IF_ARRAY_ANSISTRING_TYPE %%%>'#13#10' Serializer->WriteUTF8St'
+'ring(Serializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), '
+'GetItemRef(i)), &(fItems[i]), i);'#13#10' // <%%% END IF_ARRAY_ANSISTRIN'
+'G_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_UTF8STRING_TYPE %%%>'#13#10' '
+' Serializer->WriteUTF8String(Serializer->GetArrayElementName(GetItemType('
+'__classid(%ARRAY_NAME%)), GetItemRef(i)), &(fItems[i]), i);'#13#10' // <'
+'%%% END IF_ARRAY_UTF8STRING_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_VAR'
+'IANT_TYPE %%%>'#13#10' Serializer->WriteVariant(Serializer->GetArrayElem'
+'entName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), &(fItems[i]),'
+' i);'#13#10' // <%%% END IF_ARRAY_VARIANT_TYPE %%%>'#13#10' // <%%% S'
,'TART IF_ARRAY_WIDESTRING_TYPE %%%>'#13#10' Serializer->WriteWideString(S'
+'erializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetIte'
+'mRef(i)), &(fItems[i]), i);'#13#10' // <%%% END IF_ARRAY_WIDESTRING_TYPE'
+' %%%>'#13#10' // <%%% START IF_ARRAY_XML_TYPE %%%>'#13#10' Serializer'
+'->WriteXml(Serializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAM'
+'E%)), GetItemRef(i)), &(fItems[i]), i);'#13#10' // <%%% END IF_ARRAY_XML'
+'_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_ARRAY_TYPE %%%>'#13#10' Ser'
+'ializer->WriteArray(Serializer->GetArrayElementName(GetItemType(__classid(%'
+'ARRAY_NAME%)), GetItemRef(i)), &(fItems[i]), i);'#13#10' // <%%% END IF_'
+'ARRAY_ARRAY_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_ENUM_TYPE %%%>'#13
+#10' Serializer->WriteEnumerated(Serializer->GetArrayElementName(GetItemT'
+'ype(__classid(%ARRAY_NAME%)), GetItemRef(i)), __Get%ARRAY_TYPE%Info, &(fIte'
+'ms[i]), i);'#13#10' // <%%% END IF_ARRAY_ENUM_TYPE %%%>'#13#10' // <%'
+'%% START IF_ARRAY_STRUCT_TYPE %%%>'#13#10' Serializer->WriteStruct(Seria'
+'lizer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef'
+'(i)), &(fItems[i]), __classid(%ARRAY_TYPE%), i);'#13#10' // <%%% END IF_'
+'ARRAY_STRUCT_TYPE %%%>'#13#10'}'#13#10#13#10'void __fastcall %ARRAY_NAME%::'
+'Grow()'#13#10'{'#13#10' int Delta;'#13#10' int Capacity = fItems.Length;'
+#13#10' if (Capacity > 64) '#13#10' {'#13#10' Delta = Capacity / 4;'#13
+#10' }'#13#10' else'#13#10' {'#13#10' if (Capacity > 8) '#13#10' '
+'Delta = 16;'#13#10' else'#13#10' Delta = 4;'#13#10' }'#13#10' fIt'
+'ems.set_length(Capacity + Delta);'#13#10'}'#13#10#13#10'// <%%% START IF_AR'
+'RAY_TYPE_COMPLEX %%%>'#13#10'%ARRAY_TYPE%* __fastcall %ARRAY_NAME%::GetItem'
+'s(const int Index)'#13#10'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#13#10'// '
+'<%%% START IF_ARRAY_TYPE_SIMPLE %%%>'#13#10'%ARRAY_TYPE% __fastcall %ARRAY_'
+'NAME%::GetItems(const int Index)'#13#10'// <%%% END IF_ARRAY_TYPE_SIMPLE %%'
+'%>'#13#10'{'#13#10' if ((Index < 0) || (Index >= Count))'#13#10' {'#13#10
+' RaiseError(LoadResourceString(&_err_ArrayIndexOutOfBounds), ARRAYOFCONS'
+'T((Index)));'#13#10' }'#13#10' return fItems[Index];'#13#10'}'#13#10#13#10
+'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10'void __fastcall %ARRAY_NAME'
+'%::SetItems(const int Index, %ARRAY_TYPE%* Value)'#13#10'// <%%% END IF_ARR'
+'AY_TYPE_COMPLEX %%%>'#13#10'// <%%% START IF_ARRAY_TYPE_SIMPLE %%%>'#13#10
+'void __fastcall %ARRAY_NAME%::SetItems(const int Index, %ARRAY_TYPE% Value)'
+#13#10'// <%%% END IF_ARRAY_TYPE_SIMPLE %%%>'#13#10'{'#13#10' if ((Index < '
+'0) || (Index >= Count))'#13#10' {'#13#10' RaiseError(LoadResourceString'
+'(&_err_ArrayIndexOutOfBounds), ARRAYOFCONST((Index)));'#13#10' }'#13#10' '
+'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' delete fItems[Index];'#13
+#10' // <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' fItems[Index] = Value;'
+#13#10'}'#13#10#13#10'int __fastcall %ARRAY_NAME%::GetCount()'#13#10'{'#13#10
+' return fCount;'#13#10'}'#13#10#13#10'void* __fastcall %ARRAY_NAME%::GetIt'
+'emRef(const int Index)'#13#10'{'#13#10' if ((Index < 0) || (Index >= Count'
+'))'#13#10' {'#13#10' RaiseError(LoadResourceString(&_err_ArrayIndexOutO'
+'fBounds), ARRAYOFCONST((Index)));'#13#10' }'#13#10'// <%%% START IF_ARRAY_'
+'TYPE_COMPLEX %%%>'#13#10' return fItems[Index];'#13#10'// <%%% END IF_ARRA'
+'Y_TYPE_COMPLEX %%%>'#13#10'// <%%% START IF_ARRAY_TYPE_SIMPLE %%%>'#13#10' '
+' return &fItems[Index];'#13#10'// <%%% END IF_ARRAY_TYPE_SIMPLE %%%>'#13#10
+'}'#13#10#13#10'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10'void __fastc'
+'all %ARRAY_NAME%::SetItemRef(const int Index, void* Ref)'#13#10'{'#13#10' '
+'if ((Index < 0) || (Index >= Count))'#13#10' {'#13#10' RaiseError(LoadR'
+'esourceString(&_err_ArrayIndexOutOfBounds), ARRAYOFCONST((Index)));'#13#10
+' }'#13#10#13#10' if (Ref != fItems[Index])'#13#10' {'#13#10' delete f'
+'Items[Index];'#13#10' fItems[Index] = reinterpret_cast<%ARRAY_TYPE%*>(Re'
+'f);'#13#10' }'#13#10'}'#13#10#13#10'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'
+#13#10'void __fastcall %ARRAY_NAME%::Clear()'#13#10'{'#13#10' // <%%% START'
+' IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' for (int i = 0; i < Count; i++)'#13#10
+' delete fItems[i];'#13#10#13#10' // <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'
+#13#10' fItems.set_length(0);'#13#10' fCount = 0;'#13#10'}'#13#10#13#10'vo'
+'id __fastcall %ARRAY_NAME%::Delete(const int Index)'#13#10'{'#13#10' if (I'
+'ndex >= Count)'#13#10' {'#13#10' RaiseError(LoadResourceString(&_err_In'
+'validIndex), ARRAYOFCONST((Index)));'#13#10' }'#13#10#13#10' // <%%% STAR'
+'T IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' delete fItems[Index];'#13#10#13#10' '
+'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' if (Index < Count - 1)'#13
+#10' for (int i = Index; i < Count - 1 ; i++)'#13#10' fItems[i] = fI'
+'tems[i + 1];'#13#10#13#10' fItems.set_length(Count - 1);'#13#10' fCount--'
,';'#13#10'}'#13#10#13#10'void __fastcall %ARRAY_NAME%::Resize(const int Elem'
+'entCount)'#13#10'{'#13#10'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' '
+' int i;'#13#10' for(i = fCount -1; i >= ElementCount; --i)'#13#10' dele'
+'te fItems[i];'#13#10'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' fItems'
+'.set_length(ElementCount);'#13#10'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'
+#13#10' for(i = fCount; i <= ElementCount -1; ++i)'#13#10' fItems[i] = n'
+'ew %ARRAY_TYPE%();'#13#10'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' f'
+'Count = ElementCount;'#13#10'}'#13#10#13#10'// <%%% START IF_ARRAY_TYPE_COM'
+'PLEX %%%>'#13#10'%ARRAY_TYPE%* __fastcall %ARRAY_NAME%::Add()'#13#10'{'#13
+#10' %ARRAY_TYPE%* result = new %ARRAY_TYPE%();'#13#10' Add(result);'#13#10
+' return result;'#13#10'}'#13#10#13#10'// <%%% END IF_ARRAY_TYPE_COMPLEX %%'
+'%>'#13#10'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10'int __fastcall %A'
+'RRAY_NAME%::Add(%ARRAY_TYPE%* Value)'#13#10'// <%%% END IF_ARRAY_TYPE_COMPL'
+'EX %%%>'#13#10'// <%%% START IF_ARRAY_TYPE_SIMPLE %%%>'#13#10'int __fastcal'
+'l %ARRAY_NAME%::Add(%ARRAY_TYPE% Value)'#13#10'// <%%% END IF_ARRAY_TYPE_SI'
+'MPLE %%%>'#13#10'{'#13#10' int result = Count;'#13#10' if (fItems.Length '
+'== result)'#13#10' Grow();'#13#10#13#10' fItems[result] = Value;'#13#10
+' fCount++;'#13#10' return result;'#13#10'}'#13#10'// <%%% END ARRAYS %%%>'
+#13#10'// <%%% START EXCEPTIONS %%%>'#13#10'// %EXCEPTION_NAME%'#13#10#13#10
+'%EXCEPTION_NAME%::%EXCEPTION_NAME%(AnsiString anExceptionMessage'#13#10' '
+' // <%%% START ANCESTOR_FIELDS %%%>'#13#10' '
+' // <%%% START IF_FIELD_TYPE_SIMPLE %%%>'#13#10' , %FIEL'
+'D_TYPE% a%FIELD_NAME% '#13#10' // <%%% END IF_FIELD_TYPE_'
+'SIMPLE %%%>'#13#10' // <%%% START IF_FIELD_TYPE_COMPLEX %'
+'%%>'#13#10' , %FIELD_TYPE%* a%FIELD_NAME% '#13#10' '
+' // <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#13#10' '
+' // <%%% END ANCESTOR_FIELDS %%%>'#13#10' // <%%% START '
+'FIELDS_NO_STRIP %%%>'#13#10' // <%%% START IF_FIELD_TYPE_'
+'SIMPLE %%%>'#13#10' , %FIELD_TYPE% a%FIELD_NAME% '#13#10
+' // <%%% END IF_FIELD_TYPE_SIMPLE %%%>'#13#10' '
+' // <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#13#10' '
+', %FIELD_TYPE%* a%FIELD_NAME% '#13#10' // <%%% END IF_FIE'
+'LD_TYPE_COMPLEX %%%>'#13#10' // <%%% END FIELDS_NO_STRIP '
+'%%%>'#13#10' ): %EXCEPTION_ANCESTOR_NAME%(anExceptionMess'
+'age'#13#10' // <%%% START ANCESTOR_FIELDS %%%>'#13#10' '
+' , a%FIELD_NAME% '#13#10' // <%%% EN'
+'D ANCESTOR_FIELDS %%%>'#13#10' )'#13#10'{'#13#10' // <'
+'%%% START FIELDS_NO_STRIP %%%>'#13#10' f%FIELD_NAME% = a%FIELD_NAME%;'#13
+#10' // <%%% END FIELDS_NO_STRIP %%%>'#13#10'}'#13#10#13#10'// <%%% START I'
+'F_HAS_FIELDS %%%>'#13#10'void __fastcall %EXCEPTION_NAME%::ReadException(TO'
+'bject* ASerializer)'#13#10'{'#13#10' if (dynamic_cast<TROSerializer*>(ASer'
+'ializer)->RecordStrictOrder)'#13#10' {'#13#10' // <%%% START IF_STRUCT_'
+'HAS_ANCESTOR %%%>'#13#10' inherited::ReadException(ASerializer);'#13#10
+' // <%%% END IF_STRUCT_HAS_ANCESTOR %%%>'#13#10' // <%%% START FIELDS'
+'_NO_STRIP %%%>'#13#10' // <%%% START IF_FIELD_TYPE_SIMPLE %%%>'#13#10' '
+' %FIELD_TYPE% l_%FIELD_NAME% = %FIELD_NAME%;'#13#10' // <%%% END IF_FIE'
+'LD_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#13
+#10' %FIELD_TYPE%* l_%FIELD_NAME% = %FIELD_NAME%;'#13#10' // <%%% END '
+'IF_FIELD_TYPE_COMPLEX %%%>'#13#10' // <%%% START IF_FIELD_BINARY_TYPE %%'
+'%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->ReadBinary("%FIELD'
+'_NAME%", &l_%FIELD_NAME%);'#13#10' if (%FIELD_NAME% != l_%FIELD_NAME%) d'
+'elete %FIELD_NAME%;'#13#10' // <%%% END IF_FIELD_BINARY_TYPE %%%>'#13#10
+' // <%%% START IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' dynamic_cast<TROSer'
+'ializer*>(ASerializer)->ReadEnumerated("%FIELD_NAME%", __GetboolInfo, &l_%F'
+'IELD_NAME%);'#13#10' // <%%% END IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' /'
+'/ <%%% START IF_FIELD_CURRENCY_TYPE %%%>'#13#10' dynamic_cast<TROSeriali'
+'zer*>(ASerializer)->ReadDouble("%FIELD_NAME%", ftCurr, &l_%FIELD_NAME%);'#13
+#10' // <%%% END IF_FIELD_CURRENCY_TYPE %%%>'#13#10' // <%%% START IF_'
+'FIELD_DATETIME_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerialize'
+'r)->ReadDateTime("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END I'
+'F_FIELD_DATETIME_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DECIMAL_TYPE %'
+'%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->ReadDecimal("%FIE'
+'LD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DECIMAL_TYPE %'
+'%%>'#13#10' // <%%% START IF_FIELD_DOUBLE_TYPE %%%>'#13#10' dynamic_c'
,'ast<TROSerializer*>(ASerializer)->ReadDouble("%FIELD_NAME%", ftDouble, &l_%'
+'FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DOUBLE_TYPE %%%>'#13#10' /'
+'/ <%%% START IF_FIELD_GUID_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*'
+'>(ASerializer)->ReadGuid("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%'
+'%% END IF_FIELD_GUID_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INT64_TYPE'
+' %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->ReadInt64("%FIE'
+'LD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INT64_TYPE %%%'
+'>'#13#10' // <%%% START IF_FIELD_INTEGER_TYPE %%%>'#13#10' dynamic_ca'
+'st<TROSerializer*>(ASerializer)->ReadInteger("%FIELD_NAME%", otSLong, &l_%F'
+'IELD_NAME%);'#13#10' // <%%% END IF_FIELD_INTEGER_TYPE %%%>'#13#10' /'
+'/ <%%% START IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' dynamic_cast<TROSeria'
+'lizer*>(ASerializer)->ReadAnsiString("%FIELD_NAME%", &l_%FIELD_NAME%);'#13
+#10' // <%%% END IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' // <%%% START I'
+'F_FIELD_UTF8STRING_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASeria'
+'lizer)->ReadUTF8String("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%%'
+' END IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_VARIAN'
+'T_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->ReadVaria'
+'nt("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_VARIAN'
+'T_TYPE %%%>'#13#10' // <%%% START IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' '
+' dynamic_cast<TROSerializer*>(ASerializer)->ReadWideString("%FIELD_NAME%"'
+', &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_WIDESTRING_TYPE %%%>'#13
+#10' // <%%% START IF_FIELD_XML_TYPE %%%>'#13#10' dynamic_cast<TROSeri'
+'alizer*>(ASerializer)->ReadXml("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' '
+' // <%%% END IF_FIELD_XML_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ARRAY'
+'_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->ReadArray('
+'"%FIELD_NAME%", __classid(%FIELD_TYPE%), &l_%FIELD_NAME%);'#13#10' if (%'
+'FIELD_NAME% != l_%FIELD_NAME%) delete %FIELD_NAME%;'#13#10' // <%%% END '
+'IF_FIELD_ARRAY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ENUM_TYPE %%%>'
+#13#10' dynamic_cast<TROSerializer*>(ASerializer)->ReadEnumerated("%FIELD'
+'_NAME%", __Get%FIELD_TYPE%Info, &l_%FIELD_NAME%);'#13#10' // <%%% END IF'
+'_FIELD_ENUM_TYPE %%%>'#13#10' // <%%% START IF_FIELD_STRUCT_TYPE %%%>'#13
+#10' dynamic_cast<TROSerializer*>(ASerializer)->ReadStruct("%FIELD_NAME%"'
+', __classid(%FIELD_TYPE%), &l_%FIELD_NAME%);'#13#10' if (%FIELD_NAME% !='
+' l_%FIELD_NAME%) delete %FIELD_NAME%;'#13#10' // <%%% END IF_FIELD_STRUC'
+'T_TYPE %%%>'#13#10' %FIELD_NAME% = l_%FIELD_NAME%;'#13#10' // <%%% EN'
+'D FIELDS_NO_STRIP %%%>'#13#10' }'#13#10' else'#13#10' {'#13#10' // <%'
+'%% START ENTIRE_HIERARCHY_FIELDS %%%>'#13#10' // <%%% START IF_FIELD_TYP'
+'E_SIMPLE %%%>'#13#10' %FIELD_TYPE% l_%FIELD_NAME% = %FIELD_NAME%;'#13#10
+' // <%%% END IF_FIELD_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_FIELD'
+'_TYPE_COMPLEX %%%>'#13#10' %FIELD_TYPE%* l_%FIELD_NAME% = %FIELD_NAME%;'
+#13#10' // <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#13#10' // <%%% START I'
+'F_FIELD_BINARY_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerialize'
+'r)->ReadBinary("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' if (%FIELD_NAME'
+'% != l_%FIELD_NAME%) delete %FIELD_NAME%;'#13#10' // <%%% END IF_FIELD_B'
+'INARY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_BOOLEAN_TYPE %%%>'#13#10
+' dynamic_cast<TROSerializer*>(ASerializer)->ReadEnumerated("%FIELD_NAME%'
+'", __GetboolInfo, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_BOOLEAN'
+'_TYPE %%%>'#13#10' // <%%% START IF_FIELD_CURRENCY_TYPE %%%>'#13#10' '
+'dynamic_cast<TROSerializer*>(ASerializer)->ReadDouble("%FIELD_NAME%", ftCur'
+'r, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_CURRENCY_TYPE %%%>'#13
+#10' // <%%% START IF_FIELD_DATETIME_TYPE %%%>'#13#10' dynamic_cast<TR'
+'OSerializer*>(ASerializer)->ReadDateTime("%FIELD_NAME%", &l_%FIELD_NAME%);'
+#13#10' // <%%% END IF_FIELD_DATETIME_TYPE %%%>'#13#10' // <%%% START '
+'IF_FIELD_DECIMAL_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASeriali'
+'zer)->ReadDecimal("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END '
+'IF_FIELD_DECIMAL_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DOUBLE_TYPE %%'
+'%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->ReadDouble("%FIELD'
+'_NAME%", ftDouble, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DOUBLE'
+'_TYPE %%%>'#13#10' // <%%% START IF_FIELD_GUID_TYPE %%%>'#13#10' dyna'
+'mic_cast<TROSerializer*>(ASerializer)->ReadGuid("%FIELD_NAME%", &l_%FIELD_N'
+'AME%);'#13#10' // <%%% END IF_FIELD_GUID_TYPE %%%>'#13#10' // <%%% ST'
+'ART IF_FIELD_INT64_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASeria'
+'lizer)->ReadInt64("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END '
+'IF_FIELD_INT64_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INTEGER_TYPE %%%'
,'>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->ReadInteger("%FIELD'
+'_NAME%", otSLong, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INTEGER'
+'_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' '
+' dynamic_cast<TROSerializer*>(ASerializer)->ReadAnsiString("%FIELD_NAME%",'
+' &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ANSISTRING_TYPE %%%>'#13
+#10' // <%%% START IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' dynamic_cast<'
+'TROSerializer*>(ASerializer)->ReadUTF8String("%FIELD_NAME%", &l_%FIELD_NAME'
+'%);'#13#10' // <%%% END IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' // <%%%'
+' START IF_FIELD_VARIANT_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(A'
+'Serializer)->ReadVariant("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%'
+'%% END IF_FIELD_VARIANT_TYPE %%%>'#13#10' // <%%% START IF_FIELD_WIDESTR'
+'ING_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->ReadWid'
+'eString("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_W'
+'IDESTRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_XML_TYPE %%%>'#13#10
+' dynamic_cast<TROSerializer*>(ASerializer)->ReadXml("%FIELD_NAME%", &l_%'
+'FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_XML_TYPE %%%>'#13#10' // <'
+'%%% START IF_FIELD_ARRAY_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>('
+'ASerializer)->ReadArray("%FIELD_NAME%", __classid(%FIELD_TYPE%), &l_%FIELD_'
+'NAME%);'#13#10' if (%FIELD_NAME% != l_%FIELD_NAME%) delete %FIELD_NAME%;'
+#13#10' // <%%% END IF_FIELD_ARRAY_TYPE %%%>'#13#10' // <%%% START IF_'
+'FIELD_ENUM_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->'
+'ReadEnumerated("%FIELD_NAME%", __Get%FIELD_TYPE%Info, &l_%FIELD_NAME%);'#13
+#10' // <%%% END IF_FIELD_ENUM_TYPE %%%>'#13#10' // <%%% START IF_FIEL'
+'D_STRUCT_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->Re'
+'adStruct("%FIELD_NAME%", __classid(%FIELD_TYPE%), &l_%FIELD_NAME%);'#13#10
+' if (%FIELD_NAME% != l_%FIELD_NAME%) delete %FIELD_NAME%;'#13#10' // '
+'<%%% END IF_FIELD_STRUCT_TYPE %%%>'#13#10' %FIELD_NAME% = l_%FIELD_NAME%'
+';'#13#10' // <%%% END ENTIRE_HIERARCHY_FIELDS %%%>'#13#10' }'#13#10'}'
+#13#10#13#10'void __fastcall %EXCEPTION_NAME%::WriteException(TObject* ASeri'
+'alizer)'#13#10'{'#13#10' if (dynamic_cast<TROSerializer*>(ASerializer)->Re'
+'cordStrictOrder)'#13#10' {'#13#10' // <%%% START IF_STRUCT_HAS_ANCESTOR'
+' %%%>'#13#10' inherited::WriteException(ASerializer);'#13#10' // <%%%'
+' END IF_STRUCT_HAS_ANCESTOR %%%>'#13#10' // <%%% START FIELDS_NO_STRIP %'
+'%%>'#13#10' // <%%% START IF_FIELD_TYPE_SIMPLE %%%>'#13#10' %FIELD_TY'
+'PE% l_%FIELD_NAME% = %FIELD_NAME%;'#13#10' // <%%% END IF_FIELD_TYPE_SIM'
+'PLE %%%>'#13#10' // <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#13#10' %FI'
+'ELD_TYPE%* l_%FIELD_NAME% = %FIELD_NAME%;'#13#10' // <%%% END IF_FIELD_T'
+'YPE_COMPLEX %%%>'#13#10' // <%%% START IF_FIELD_BINARY_TYPE %%%>'#13#10
+' dynamic_cast<TROSerializer*>(ASerializer)->WriteBinary("%FIELD_NAME%", '
+'&l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_BINARY_TYPE %%%>'#13#10' '
+' // <%%% START IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' dynamic_cast<TROSeri'
+'alizer*>(ASerializer)->WriteEnumerated("%FIELD_NAME%", __GetboolInfo, &l_%F'
+'IELD_NAME%);'#13#10' // <%%% END IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' /'
+'/ <%%% START IF_FIELD_CURRENCY_TYPE %%%>'#13#10' dynamic_cast<TROSeriali'
+'zer*>(ASerializer)->WriteDouble("%FIELD_NAME%", ftCurr, &l_%FIELD_NAME%);'
+#13#10' // <%%% END IF_FIELD_CURRENCY_TYPE %%%>'#13#10' // <%%% START '
+'IF_FIELD_DATETIME_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerial'
+'izer)->WriteDateTime("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% E'
+'ND IF_FIELD_DATETIME_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DECIMAL_TY'
+'PE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->WriteDecimal('
+'"%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DECIMAL_T'
+'YPE %%%>'#13#10' // <%%% START IF_FIELD_DOUBLE_TYPE %%%>'#13#10' dyna'
+'mic_cast<TROSerializer*>(ASerializer)->WriteDouble("%FIELD_NAME%", ftDouble'
+', &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DOUBLE_TYPE %%%>'#13#10
+' // <%%% START IF_FIELD_GUID_TYPE %%%>'#13#10' dynamic_cast<TROSerial'
+'izer*>(ASerializer)->WriteGuid("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' '
+' // <%%% END IF_FIELD_GUID_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INT6'
+'4_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->WriteInt6'
+'4("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INT64_T'
+'YPE %%%>'#13#10' // <%%% START IF_FIELD_INTEGER_TYPE %%%>'#13#10' dyn'
+'amic_cast<TROSerializer*>(ASerializer)->WriteInteger("%FIELD_NAME%", otSLon'
+'g, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INTEGER_TYPE %%%>'#13
+#10' // <%%% START IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' dynamic_cast<'
+'TROSerializer*>(ASerializer)->WriteAnsiString("%FIELD_NAME%", &l_%FIELD_NAM'
,'E%);'#13#10' // <%%% END IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' // <%%'
+'% START IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' dynamic_cast<TROSerializer'
+'*>(ASerializer)->WriteUTF8String("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' '
+' // <%%% END IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' // <%%% START IF_FI'
+'ELD_VARIANT_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)-'
+'>WriteVariant("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_F'
+'IELD_VARIANT_TYPE %%%>'#13#10' // <%%% START IF_FIELD_WIDESTRING_TYPE %%'
+'%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->WriteWideString("%'
+'FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_WIDESTRING_'
+'TYPE %%%>'#13#10' // <%%% START IF_FIELD_XML_TYPE %%%>'#13#10' dynami'
+'c_cast<TROSerializer*>(ASerializer)->WriteXml("%FIELD_NAME%", &l_%FIELD_NAM'
+'E%);'#13#10' // <%%% END IF_FIELD_XML_TYPE %%%>'#13#10' // <%%% START'
+' IF_FIELD_ARRAY_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializ'
+'er)->WriteArray("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF'
+'_FIELD_ARRAY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ENUM_TYPE %%%>'#13
+#10' dynamic_cast<TROSerializer*>(ASerializer)->WriteEnumerated("%FIELD_N'
+'AME%", __Get%FIELD_TYPE%Info, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_F'
+'IELD_ENUM_TYPE %%%>'#13#10' // <%%% START IF_FIELD_STRUCT_TYPE %%%>'#13
+#10' dynamic_cast<TROSerializer*>(ASerializer)->WriteStruct("%FIELD_NAME%'
+'", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_STRUCT_TYPE %%%>'#13#10
+' // <%%% END FIELDS_NO_STRIP %%%>'#13#10' }'#13#10' else'#13#10' {'#13
+#10' // <%%% START ENTIRE_HIERARCHY_FIELDS %%%>'#13#10' // <%%% START '
+'IF_FIELD_TYPE_SIMPLE %%%>'#13#10' %FIELD_TYPE% l_%FIELD_NAME% = %FIELD_N'
+'AME%;'#13#10' // <%%% END IF_FIELD_TYPE_SIMPLE %%%>'#13#10' // <%%% S'
+'TART IF_FIELD_TYPE_COMPLEX %%%>'#13#10' %FIELD_TYPE%* l_%FIELD_NAME% = %'
+'FIELD_NAME%;'#13#10' // <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#13#10' /'
+'/ <%%% START IF_FIELD_BINARY_TYPE %%%>'#13#10' dynamic_cast<TROSerialize'
+'r*>(ASerializer)->WriteBinary("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' '
+'// <%%% END IF_FIELD_BINARY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_BOO'
+'LEAN_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->WriteE'
+'numerated("%FIELD_NAME%", __GetboolInfo, &l_%FIELD_NAME%);'#13#10' // <%'
+'%% END IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' // <%%% START IF_FIELD_CURRENC'
+'Y_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->WriteDoub'
+'le("%FIELD_NAME%", ftCurr, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIEL'
+'D_CURRENCY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DATETIME_TYPE %%%>'
+#13#10' dynamic_cast<TROSerializer*>(ASerializer)->WriteDateTime("%FIELD_'
+'NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DATETIME_TYPE %%%'
+'>'#13#10' // <%%% START IF_FIELD_DECIMAL_TYPE %%%>'#13#10' dynamic_ca'
+'st<TROSerializer*>(ASerializer)->WriteDecimal("%FIELD_NAME%", &l_%FIELD_NAM'
+'E%);'#13#10' // <%%% END IF_FIELD_DECIMAL_TYPE %%%>'#13#10' // <%%% S'
+'TART IF_FIELD_DOUBLE_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASer'
+'ializer)->WriteDouble("%FIELD_NAME%", ftDouble, &l_%FIELD_NAME%);'#13#10' '
+' // <%%% END IF_FIELD_DOUBLE_TYPE %%%>'#13#10' // <%%% START IF_FIELD_G'
+'UID_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->WriteGu'
+'id("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_GUID_T'
+'YPE %%%>'#13#10' // <%%% START IF_FIELD_INT64_TYPE %%%>'#13#10' dynam'
+'ic_cast<TROSerializer*>(ASerializer)->WriteInt64("%FIELD_NAME%", &l_%FIELD_'
+'NAME%);'#13#10' // <%%% END IF_FIELD_INT64_TYPE %%%>'#13#10' // <%%% '
+'START IF_FIELD_INTEGER_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(AS'
+'erializer)->WriteInteger("%FIELD_NAME%", otSLong, &l_%FIELD_NAME%);'#13#10
+' // <%%% END IF_FIELD_INTEGER_TYPE %%%>'#13#10' // <%%% START IF_FIEL'
+'D_ANSISTRING_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)'
+'->WriteAnsiString("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END '
+'IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_UTF8STRING_'
+'TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->WriteUTF8St'
+'ring("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_UTF8'
+'STRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_VARIANT_TYPE %%%>'#13#10
+' dynamic_cast<TROSerializer*>(ASerializer)->WriteVariant("%FIELD_NAME%",'
+' &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_VARIANT_TYPE %%%>'#13#10
+' // <%%% START IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' dynamic_cast<TRO'
+'Serializer*>(ASerializer)->WriteWideString("%FIELD_NAME%", &l_%FIELD_NAME%)'
+';'#13#10' // <%%% END IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' // <%%% S'
+'TART IF_FIELD_XML_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerial'
+'izer)->WriteXml("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF'
,'_FIELD_XML_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ARRAY_TYPE %%%>'#13
+#10' dynamic_cast<TROSerializer*>(ASerializer)->WriteArray("%FIELD_NAME%"'
+', &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ARRAY_TYPE %%%>'#13#10
+' // <%%% START IF_FIELD_ENUM_TYPE %%%>'#13#10' dynamic_cast<TROSerial'
+'izer*>(ASerializer)->WriteEnumerated("%FIELD_NAME%", __Get%FIELD_TYPE%Info,'
+' &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ENUM_TYPE %%%>'#13#10' '
+' // <%%% START IF_FIELD_STRUCT_TYPE %%%>'#13#10' dynamic_cast<TROSerial'
+'izer*>(ASerializer)->WriteStruct("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' '
+' // <%%% END IF_FIELD_STRUCT_TYPE %%%>'#13#10' // <%%% END ENTIRE_HIER'
+'ARCHY_FIELDS %%%>'#13#10' }'#13#10'}'#13#10#13#10'// <%%% END IF_HAS_FIELD'
+'S %%%>'#13#10'// <%%% END EXCEPTIONS %%%>'#13#10'// <%%% START STRUCTS %%%>'
+#13#10'// %STRUCT_NAME%'#13#10#13#10'void __fastcall %STRUCT_NAME%::Assign(C'
+'lasses::TPersistent* iSource)'#13#10'{'#13#10' inherited::Assign(iSource);'
+' // inherited typedef'#13#10' // <%%% START IF_HAS_FIELDS %%%>'#13#10#13
+#10' %STRUCT_NAME%* lSource = dynamic_cast<%STRUCT_NAME%*>(iSource);'#13#10
+' if (lSource)'#13#10' {'#13#10' // <%%% END IF_HAS_FIELDS %%%>'#13#10' '
+' // <%%% START FIELDS_NO_STRIP %%%>'#13#10' // <%%% START IF_FIELD_TYPE'
+'_SIMPLE %%%>'#13#10' %FIELD_NAME% = lSource->%FIELD_NAME%;'#13#10' //'
+' <%%% END IF_FIELD_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_FIELD_TYPE_'
+'COMPLEX %%%>'#13#10' // <%%% START IF_NOT_AUTO_CREATE_FIELDS %%%>'#13#10
+' if (f%FIELD_NAME% != NULL)'#13#10' {'#13#10' if (lSource->%FIEL'
+'D_NAME% != NULL) '#13#10' {'#13#10' %FIELD_NAME%->Assign(lSourc'
+'e->%FIELD_NAME%);'#13#10' }'#13#10' else'#13#10' {'#13#10' '
+' delete f%FIELD_NAME%;'#13#10' f%FIELD_NAME% = NULL;'#13#10' '
+' }'#13#10' }'#13#10' // <%%% END IF_NOT_AUTO_CREATE_FIELDS %%%>'#13
+#10' // <%%% START IF_AUTO_CREATE_FIELDS %%%>'#13#10' %FIELD_NAME%->As'
+'sign(lSource->%FIELD_NAME%);'#13#10' // <%%% END IF_AUTO_CREATE_FIELDS %'
+'%%>'#13#10' // <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#13#10' // <%%% EN'
+'D FIELDS_NO_STRIP %%%>'#13#10' // <%%% START IF_HAS_FIELDS %%%>'#13#10' }'
+#13#10' // <%%% END IF_HAS_FIELDS %%%>'#13#10'}'#13#10#13#10'// <%%% START '
+'FIELDS_NO_STRIP %%%>'#13#10'// <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#13#10
+'%FIELD_TYPE%* __fastcall %STRUCT_NAME%::Get%FIELD_NAME%()'#13#10'{'#13#10' '
+' // <%%% START IF_AUTO_CREATE_FIELDS %%%>'#13#10' if (f%FIELD_NAME% == NUL'
+'L) '#13#10' f%FIELD_NAME% = new %FIELD_TYPE%();'#13#10' // <%%% END IF_'
+'AUTO_CREATE_FIELDS %%%>'#13#10' return f%FIELD_NAME%;'#13#10'}'#13#10#13#10
+'// <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#13#10'// <%%% END FIELDS_NO_STRIP %'
+'%%>'#13#10'// <%%% START IF_HAS_FIELDS %%%>'#13#10'void __fastcall %STRUCT_'
+'NAME%::ReadComplex(TObject* ASerializer)'#13#10'{'#13#10' if (dynamic_cast'
+'<TROSerializer*>(ASerializer)->RecordStrictOrder)'#13#10' {'#13#10' // '
+'<%%% START IF_STRUCT_HAS_ANCESTOR %%%>'#13#10' inherited::ReadException('
+'ASerializer);'#13#10' // <%%% END IF_STRUCT_HAS_ANCESTOR %%%>'#13#10' '
+' // <%%% START FIELDS_NO_STRIP %%%>'#13#10' // <%%% START IF_FIELD_TYPE_'
+'SIMPLE %%%>'#13#10' %FIELD_TYPE% l_%FIELD_NAME% = %FIELD_NAME%;'#13#10' '
+' // <%%% END IF_FIELD_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_FIELD_'
+'TYPE_COMPLEX %%%>'#13#10' %FIELD_TYPE%* l_%FIELD_NAME% = %FIELD_NAME%;'
+#13#10' // <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#13#10' // <%%% START I'
+'F_FIELD_BINARY_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerialize'
+'r)->ReadBinary("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' if (%FIELD_NAME'
+'% != l_%FIELD_NAME%) delete %FIELD_NAME%;'#13#10' // <%%% END IF_FIELD_B'
+'INARY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_BOOLEAN_TYPE %%%>'#13#10
+' dynamic_cast<TROSerializer*>(ASerializer)->ReadEnumerated("%FIELD_NAME%'
+'", __GetboolInfo, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_BOOLEAN'
+'_TYPE %%%>'#13#10' // <%%% START IF_FIELD_CURRENCY_TYPE %%%>'#13#10' '
+'dynamic_cast<TROSerializer*>(ASerializer)->ReadDouble("%FIELD_NAME%", ftCur'
+'r, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_CURRENCY_TYPE %%%>'#13
+#10' // <%%% START IF_FIELD_DATETIME_TYPE %%%>'#13#10' dynamic_cast<TR'
+'OSerializer*>(ASerializer)->ReadDateTime("%FIELD_NAME%", &l_%FIELD_NAME%);'
+#13#10' // <%%% END IF_FIELD_DATETIME_TYPE %%%>'#13#10' // <%%% START '
+'IF_FIELD_DECIMAL_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASeriali'
+'zer)->ReadDecimal("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END '
+'IF_FIELD_DECIMAL_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DOUBLE_TYPE %%'
+'%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->ReadDouble("%FIELD'
+'_NAME%", ftDouble, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DOUBLE'
+'_TYPE %%%>'#13#10' // <%%% START IF_FIELD_GUID_TYPE %%%>'#13#10' dyna'
,'mic_cast<TROSerializer*>(ASerializer)->ReadGuid("%FIELD_NAME%", &l_%FIELD_N'
+'AME%);'#13#10' // <%%% END IF_FIELD_GUID_TYPE %%%>'#13#10' // <%%% ST'
+'ART IF_FIELD_INT64_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASeria'
+'lizer)->ReadInt64("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END '
+'IF_FIELD_INT64_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INTEGER_TYPE %%%'
+'>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->ReadInteger("%FIELD'
+'_NAME%", otSLong, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INTEGER'
+'_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' '
+' dynamic_cast<TROSerializer*>(ASerializer)->ReadAnsiString("%FIELD_NAME%",'
+' &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ANSISTRING_TYPE %%%>'#13
+#10' // <%%% START IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' dynamic_cast<'
+'TROSerializer*>(ASerializer)->ReadUTF8String("%FIELD_NAME%", &l_%FIELD_NAME'
+'%);'#13#10' // <%%% END IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' // <%%%'
+' START IF_FIELD_VARIANT_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(A'
+'Serializer)->ReadVariant("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%'
+'%% END IF_FIELD_VARIANT_TYPE %%%>'#13#10' // <%%% START IF_FIELD_WIDESTR'
+'ING_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->ReadWid'
+'eString("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_W'
+'IDESTRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_XML_TYPE %%%>'#13#10
+' dynamic_cast<TROSerializer*>(ASerializer)->ReadXml("%FIELD_NAME%", &l_%'
+'FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_XML_TYPE %%%>'#13#10' // <'
+'%%% START IF_FIELD_ARRAY_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>('
+'ASerializer)->ReadArray("%FIELD_NAME%", __classid(%FIELD_TYPE%), &l_%FIELD_'
+'NAME%);'#13#10' if (%FIELD_NAME% != l_%FIELD_NAME%) delete %FIELD_NAME%;'
+#13#10' // <%%% END IF_FIELD_ARRAY_TYPE %%%>'#13#10' // <%%% START IF_'
+'FIELD_ENUM_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->'
+'ReadEnumerated("%FIELD_NAME%", __Get%FIELD_TYPE%Info, &l_%FIELD_NAME%);'#13
+#10' // <%%% END IF_FIELD_ENUM_TYPE %%%>'#13#10' // <%%% START IF_FIEL'
+'D_STRUCT_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->Re'
+'adStruct("%FIELD_NAME%", __classid(%FIELD_TYPE%), &l_%FIELD_NAME%);'#13#10
+' if (%FIELD_NAME% != l_%FIELD_NAME%) delete %FIELD_NAME%;'#13#10' // '
+'<%%% END IF_FIELD_STRUCT_TYPE %%%>'#13#10' %FIELD_NAME% = l_%FIELD_NAME%'
+';'#13#10' // <%%% END FIELDS_NO_STRIP %%%>'#13#10' }'#13#10' else'#13
+#10' {'#13#10' // <%%% START ENTIRE_HIERARCHY_FIELDS %%%>'#13#10' // '
+'<%%% START IF_FIELD_TYPE_SIMPLE %%%>'#13#10' %FIELD_TYPE% l_%FIELD_NAME%'
+' = %FIELD_NAME%;'#13#10' // <%%% END IF_FIELD_TYPE_SIMPLE %%%>'#13#10' '
+' // <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#13#10' %FIELD_TYPE%* l_%FIEL'
+'D_NAME% = %FIELD_NAME%;'#13#10' // <%%% END IF_FIELD_TYPE_COMPLEX %%%>'
+#13#10' // <%%% START IF_FIELD_BINARY_TYPE %%%>'#13#10' dynamic_cast<T'
+'ROSerializer*>(ASerializer)->ReadBinary("%FIELD_NAME%", &l_%FIELD_NAME%);'
+#13#10' if (%FIELD_NAME% != l_%FIELD_NAME%) delete %FIELD_NAME%;'#13#10' '
+' // <%%% END IF_FIELD_BINARY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_'
+'BOOLEAN_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->Rea'
+'dEnumerated("%FIELD_NAME%", __GetboolInfo, &l_%FIELD_NAME%);'#13#10' // '
+'<%%% END IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' // <%%% START IF_FIELD_CURRE'
+'NCY_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->ReadDou'
+'ble("%FIELD_NAME%", ftCurr, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIE'
+'LD_CURRENCY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DATETIME_TYPE %%%>'
+#13#10' dynamic_cast<TROSerializer*>(ASerializer)->ReadDateTime("%FIELD_N'
+'AME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DATETIME_TYPE %%%>'
+#13#10' // <%%% START IF_FIELD_DECIMAL_TYPE %%%>'#13#10' dynamic_cast<'
+'TROSerializer*>(ASerializer)->ReadDecimal("%FIELD_NAME%", &l_%FIELD_NAME%);'
+#13#10' // <%%% END IF_FIELD_DECIMAL_TYPE %%%>'#13#10' // <%%% START I'
+'F_FIELD_DOUBLE_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerialize'
+'r)->ReadDouble("%FIELD_NAME%", ftDouble, &l_%FIELD_NAME%);'#13#10' // <%'
+'%% END IF_FIELD_DOUBLE_TYPE %%%>'#13#10' // <%%% START IF_FIELD_GUID_TYP'
+'E %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->ReadGuid("%FIE'
+'LD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_GUID_TYPE %%%>'
+#13#10' // <%%% START IF_FIELD_INT64_TYPE %%%>'#13#10' dynamic_cast<TR'
+'OSerializer*>(ASerializer)->ReadInt64("%FIELD_NAME%", &l_%FIELD_NAME%);'#13
+#10' // <%%% END IF_FIELD_INT64_TYPE %%%>'#13#10' // <%%% START IF_FIE'
+'LD_INTEGER_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->'
+'ReadInteger("%FIELD_NAME%", otSLong, &l_%FIELD_NAME%);'#13#10' // <%%% E'
+'ND IF_FIELD_INTEGER_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ANSISTRING_'
,'TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->ReadAnsiStr'
+'ing("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ANSIS'
+'TRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_UTF8STRING_TYPE %%%>'#13
+#10' dynamic_cast<TROSerializer*>(ASerializer)->ReadUTF8String("%FIELD_NA'
+'ME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_UTF8STRING_TYPE %%%'
+'>'#13#10' // <%%% START IF_FIELD_VARIANT_TYPE %%%>'#13#10' dynamic_ca'
+'st<TROSerializer*>(ASerializer)->ReadVariant("%FIELD_NAME%", &l_%FIELD_NAME'
+'%);'#13#10' // <%%% END IF_FIELD_VARIANT_TYPE %%%>'#13#10' // <%%% ST'
+'ART IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(A'
+'Serializer)->ReadWideString("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' //'
+' <%%% END IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_X'
+'ML_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->ReadXml('
+'"%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_XML_TYPE '
+'%%%>'#13#10' // <%%% START IF_FIELD_ARRAY_TYPE %%%>'#13#10' dynamic_c'
+'ast<TROSerializer*>(ASerializer)->ReadArray("%FIELD_NAME%", __classid(%FIEL'
+'D_TYPE%), &l_%FIELD_NAME%);'#13#10' if (%FIELD_NAME% != l_%FIELD_NAME%) '
+'delete %FIELD_NAME%;'#13#10' // <%%% END IF_FIELD_ARRAY_TYPE %%%>'#13#10
+' // <%%% START IF_FIELD_ENUM_TYPE %%%>'#13#10' dynamic_cast<TROSerial'
+'izer*>(ASerializer)->ReadEnumerated("%FIELD_NAME%", __Get%FIELD_TYPE%Info, '
+'&l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ENUM_TYPE %%%>'#13#10' '
+' // <%%% START IF_FIELD_STRUCT_TYPE %%%>'#13#10' dynamic_cast<TROSeriali'
+'zer*>(ASerializer)->ReadStruct("%FIELD_NAME%", __classid(%FIELD_TYPE%), &l_'
+'%FIELD_NAME%);'#13#10' if (%FIELD_NAME% != l_%FIELD_NAME%) delete %FIELD'
+'_NAME%;'#13#10' // <%%% END IF_FIELD_STRUCT_TYPE %%%>'#13#10' %FIELD_'
+'NAME% = l_%FIELD_NAME%;'#13#10' // <%%% END ENTIRE_HIERARCHY_FIELDS %%%>'
+#13#10' }'#13#10'}'#13#10#13#10'void __fastcall %STRUCT_NAME%::WriteComplex'
+'(TObject* ASerializer)'#13#10'{'#13#10' if (dynamic_cast<TROSerializer*>(A'
+'Serializer)->RecordStrictOrder)'#13#10' {'#13#10' // <%%% START IF_STRU'
+'CT_HAS_ANCESTOR %%%>'#13#10' inherited::WriteException(ASerializer);'#13
+#10' // <%%% END IF_STRUCT_HAS_ANCESTOR %%%>'#13#10' // <%%% START FIE'
+'LDS_NO_STRIP %%%>'#13#10' // <%%% START IF_FIELD_TYPE_SIMPLE %%%>'#13#10
+' %FIELD_TYPE% l_%FIELD_NAME% = %FIELD_NAME%;'#13#10' // <%%% END IF_F'
+'IELD_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_FIELD_TYPE_COMPLEX %%%>'
+#13#10' %FIELD_TYPE%* l_%FIELD_NAME% = %FIELD_NAME%;'#13#10' // <%%% E'
+'ND IF_FIELD_TYPE_COMPLEX %%%>'#13#10' // <%%% START IF_FIELD_BINARY_TYPE'
+' %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->WriteBinary("%F'
+'IELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_BINARY_TYPE '
+'%%%>'#13#10' // <%%% START IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' dynamic'
+'_cast<TROSerializer*>(ASerializer)->WriteEnumerated("%FIELD_NAME%", __Getbo'
+'olInfo, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_BOOLEAN_TYPE %%%>'
+#13#10' // <%%% START IF_FIELD_CURRENCY_TYPE %%%>'#13#10' dynamic_cast'
+'<TROSerializer*>(ASerializer)->WriteDouble("%FIELD_NAME%", ftCurr, &l_%FIEL'
+'D_NAME%);'#13#10' // <%%% END IF_FIELD_CURRENCY_TYPE %%%>'#13#10' // '
+'<%%% START IF_FIELD_DATETIME_TYPE %%%>'#13#10' dynamic_cast<TROSerialize'
+'r*>(ASerializer)->WriteDateTime("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' '
+' // <%%% END IF_FIELD_DATETIME_TYPE %%%>'#13#10' // <%%% START IF_FIELD'
+'_DECIMAL_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->Wr'
+'iteDecimal("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIEL'
+'D_DECIMAL_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DOUBLE_TYPE %%%>'#13
+#10' dynamic_cast<TROSerializer*>(ASerializer)->WriteDouble("%FIELD_NAME%'
+'", ftDouble, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DOUBLE_TYPE '
+'%%%>'#13#10' // <%%% START IF_FIELD_GUID_TYPE %%%>'#13#10' dynamic_ca'
+'st<TROSerializer*>(ASerializer)->WriteGuid("%FIELD_NAME%", &l_%FIELD_NAME%)'
+';'#13#10' // <%%% END IF_FIELD_GUID_TYPE %%%>'#13#10' // <%%% START I'
+'F_FIELD_INT64_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer'
+')->WriteInt64("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_F'
+'IELD_INT64_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INTEGER_TYPE %%%>'#13
+#10' dynamic_cast<TROSerializer*>(ASerializer)->WriteInteger("%FIELD_NAME'
+'%", otSLong, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INTEGER_TYPE'
+' %%%>'#13#10' // <%%% START IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' dyn'
+'amic_cast<TROSerializer*>(ASerializer)->WriteAnsiString("%FIELD_NAME%", &l_'
+'%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ANSISTRING_TYPE %%%>'#13#10
+' // <%%% START IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' dynamic_cast<TRO'
+'Serializer*>(ASerializer)->WriteUTF8String("%FIELD_NAME%", &l_%FIELD_NAME%)'
,';'#13#10' // <%%% END IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' // <%%% S'
+'TART IF_FIELD_VARIANT_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASe'
+'rializer)->WriteVariant("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%'
+'% END IF_FIELD_VARIANT_TYPE %%%>'#13#10' // <%%% START IF_FIELD_WIDESTRI'
+'NG_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->WriteWid'
+'eString("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_W'
+'IDESTRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_XML_TYPE %%%>'#13#10
+' dynamic_cast<TROSerializer*>(ASerializer)->WriteXml("%FIELD_NAME%", &l_'
+'%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_XML_TYPE %%%>'#13#10' // '
+'<%%% START IF_FIELD_ARRAY_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>'
+'(ASerializer)->WriteArray("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <'
+'%%% END IF_FIELD_ARRAY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ENUM_TYP'
+'E %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->WriteEnumerate'
+'d("%FIELD_NAME%", __Get%FIELD_TYPE%Info, &l_%FIELD_NAME%);'#13#10' // <%'
+'%% END IF_FIELD_ENUM_TYPE %%%>'#13#10' // <%%% START IF_FIELD_STRUCT_TYP'
+'E %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->WriteStruct("%'
+'FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_STRUCT_TYPE'
+' %%%>'#13#10' // <%%% END FIELDS_NO_STRIP %%%>'#13#10' }'#13#10' else'
+#13#10' {'#13#10' // <%%% START ENTIRE_HIERARCHY_FIELDS %%%>'#13#10' '
+'// <%%% START IF_FIELD_TYPE_SIMPLE %%%>'#13#10' %FIELD_TYPE% l_%FIELD_NA'
+'ME% = %FIELD_NAME%;'#13#10' // <%%% END IF_FIELD_TYPE_SIMPLE %%%>'#13#10
+' // <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#13#10' %FIELD_TYPE%* l_%FI'
+'ELD_NAME% = %FIELD_NAME%;'#13#10' // <%%% END IF_FIELD_TYPE_COMPLEX %%%>'
+#13#10' // <%%% START IF_FIELD_BINARY_TYPE %%%>'#13#10' dynamic_cast<T'
+'ROSerializer*>(ASerializer)->WriteBinary("%FIELD_NAME%", &l_%FIELD_NAME%);'
+#13#10' // <%%% END IF_FIELD_BINARY_TYPE %%%>'#13#10' // <%%% START IF'
+'_FIELD_BOOLEAN_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerialize'
+'r)->WriteEnumerated("%FIELD_NAME%", __GetboolInfo, &l_%FIELD_NAME%);'#13#10
+' // <%%% END IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' // <%%% START IF_FIEL'
+'D_CURRENCY_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->'
+'WriteDouble("%FIELD_NAME%", ftCurr, &l_%FIELD_NAME%);'#13#10' // <%%% EN'
+'D IF_FIELD_CURRENCY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DATETIME_TY'
+'PE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->WriteDateTime'
+'("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DATETIME'
+'_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DECIMAL_TYPE %%%>'#13#10' d'
+'ynamic_cast<TROSerializer*>(ASerializer)->WriteDecimal("%FIELD_NAME%", &l_%'
+'FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DECIMAL_TYPE %%%>'#13#10' '
+'// <%%% START IF_FIELD_DOUBLE_TYPE %%%>'#13#10' dynamic_cast<TROSerializ'
+'er*>(ASerializer)->WriteDouble("%FIELD_NAME%", ftDouble, &l_%FIELD_NAME%);'
+#13#10' // <%%% END IF_FIELD_DOUBLE_TYPE %%%>'#13#10' // <%%% START IF'
+'_FIELD_GUID_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)-'
+'>WriteGuid("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIEL'
+'D_GUID_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INT64_TYPE %%%>'#13#10' '
+' dynamic_cast<TROSerializer*>(ASerializer)->WriteInt64("%FIELD_NAME%", &l'
+'_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INT64_TYPE %%%>'#13#10' '
+'// <%%% START IF_FIELD_INTEGER_TYPE %%%>'#13#10' dynamic_cast<TROSeriali'
+'zer*>(ASerializer)->WriteInteger("%FIELD_NAME%", otSLong, &l_%FIELD_NAME%);'
+#13#10' // <%%% END IF_FIELD_INTEGER_TYPE %%%>'#13#10' // <%%% START I'
+'F_FIELD_ANSISTRING_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASeria'
+'lizer)->WriteAnsiString("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%'
+'% END IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_UTF8S'
+'TRING_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->Write'
+'UTF8String("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIEL'
+'D_UTF8STRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_VARIANT_TYPE %%%>'
+#13#10' dynamic_cast<TROSerializer*>(ASerializer)->WriteVariant("%FIELD_N'
+'AME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_VARIANT_TYPE %%%>'
+#13#10' // <%%% START IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' dynamic_ca'
+'st<TROSerializer*>(ASerializer)->WriteWideString("%FIELD_NAME%", &l_%FIELD_'
+'NAME%);'#13#10' // <%%% END IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' // '
+'<%%% START IF_FIELD_XML_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(A'
+'Serializer)->WriteXml("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% '
+'END IF_FIELD_XML_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ARRAY_TYPE %%%'
+'>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->WriteArray("%FIELD_'
+'NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ARRAY_TYPE %%%>'
,#13#10' // <%%% START IF_FIELD_ENUM_TYPE %%%>'#13#10' dynamic_cast<TRO'
+'Serializer*>(ASerializer)->WriteEnumerated("%FIELD_NAME%", __Get%FIELD_TYPE'
+'%Info, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ENUM_TYPE %%%>'#13
+#10' // <%%% START IF_FIELD_STRUCT_TYPE %%%>'#13#10' dynamic_cast<TROS'
+'erializer*>(ASerializer)->WriteStruct("%FIELD_NAME%", &l_%FIELD_NAME%);'#13
+#10' // <%%% END IF_FIELD_STRUCT_TYPE %%%>'#13#10' // <%%% END ENTIRE_'
+'HIERARCHY_FIELDS %%%>'#13#10' }'#13#10'}'#13#10#13#10'// <%%% END IF_HAS_F'
+'IELDS %%%>'#13#10'//%STRUCT_COLLECTION_NAME%'#13#10'%STRUCT_NAME%* __fastca'
+'ll %STRUCT_COLLECTION_NAME%::Add()'#13#10'{'#13#10' return dynamic_cast<%S'
+'TRUCT_NAME%*>(inherited::Add());'#13#10'}'#13#10#13#10'%STRUCT_NAME%* __fas'
+'tcall %STRUCT_COLLECTION_NAME%::GetItems(const int Index)'#13#10'{'#13#10' '
+' return dynamic_cast<%STRUCT_NAME%*>(inherited::Items[Index]);'#13#10'}'#13
+#10#13#10'void __fastcall %STRUCT_COLLECTION_NAME%::SetItems(const int Index'
+', %STRUCT_NAME%* Value)'#13#10'{'#13#10' dynamic_cast<%STRUCT_NAME%*>(inhe'
+'rited::Items[Index])->Assign(Value);'#13#10'}'#13#10#13#10'// <%%% START AR'
+'RAYS_IS_FOUND %%%>'#13#10'void %STRUCT_COLLECTION_NAME%::LoadFromArray(%ARR'
+'AY_NAME%* anArray)'#13#10'{'#13#10' Clear();'#13#10' '#13#10' for(int i '
+'= 0; i <= anArray->Count-1; ++i)'#13#10' Add()->Assign((*anArray)[i]);'
+#13#10'}'#13#10#13#10'void %STRUCT_COLLECTION_NAME%::SaveToArray(%ARRAY_NAME'
+'%* anArray)'#13#10'{'#13#10' anArray->Clear();'#13#10' anArray->Resize(Co'
+'unt);'#13#10' for(int i = 0; i <= Count-1; ++i)'#13#10' {'#13#10' anAr'
+'ray->Items[i] = new %STRUCT_NAME%;'#13#10' anArray->Items[i]->Assign(Ite'
+'ms[i]);'#13#10' }'#13#10'}'#13#10#13#10'// <%%% END ARRAYS_IS_FOUND %%%>'
+#13#10'// <%%% END STRUCTS %%%>'#13#10'// <%%% START SERVICES %%%>'#13#10'//'
+' <%%% START FUNCTION_OPERATIONS %%%>'#13#10'// <%%% START IF_RESULT_SIMPLE '
+'%%%>'#13#10'%OPERATION_RESULT% __fastcall T%SERVICE_NAME%_Proxy::%OPERATION'
+'_NAME%('#13#10'// <%%% END IF_RESULT_SIMPLE %%%>'#13#10'// <%%% START IF_RE'
+'SULT_COMPLEX %%%>'#13#10'%OPERATION_RESULT%* __fastcall T%SERVICE_NAME%_Pro'
+'xy::%OPERATION_NAME%('#13#10'// <%%% END IF_RESULT_COMPLEX %%%>'#13#10' //'
+' <%%% START PARAMS %%%>'#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13
+#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM_NAME%'
+','#13#10' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_'
+'PARAM_TYPE_COMPLEX %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARA'
+'M_BACK_MODIFIER% %PARAM_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %'
+'%%>'#13#10' // <%%% END PARAMS %%%>'#13#10' )'#13#10'{'#13#10' // <%%% S'
+'TART IF_RESULT_SIMPLE %%%>'#13#10' %OPERATION_RESULT% result;'#13#10' // '
+'<%%% END IF_RESULT_SIMPLE %%%>'#13#10' // <%%% START IF_RESULT_COMPLEX %%%'
+'>'#13#10' %OPERATION_RESULT%* result;'#13#10' // <%%% END IF_RESULT_COMPL'
+'EX %%%>'#13#10#13#10' // <%%% START OUT_PARAMS_NO_STRIP %%%>'#13#10' // <'
+'%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' %PARAM_NAME% = NULL;'#13#10' '
+' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%% END OUT_PARAMS_NO_'
+'STRIP %%%>'#13#10' // <%%% START IF_RESULT_COMPLEX %%%>'#13#10' result = '
+'NULL;'#13#10' // <%%% END IF_RESULT_COMPLEX %%%>'#13#10' try'#13#10' {'
+#13#10' __Message->InitializeRequestMessage(__TransportChannel, "%LIBRARY'
+'_NAME%", __InterfaceName, "%OPERATION_NAME%");'#13#10' // <%%% START IN_'
+'PARAMS_NO_STRIP %%%>'#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13
+#10' __Message->Write("%PARAM_NAME%", __Get%PARAM_TYPE%Info, &%PARAM_NAME'
+'%, TParamAttributes(%PARAM_ATTRIBUTE%));'#13#10' // <%%% END IF_PARAM_TY'
+'PE_SIMPLE %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' '
+' __Message->Write("%PARAM_NAME%", __typeinfo(%PARAM_TYPE%), &%PARAM_NAME%'
+', TParamAttributes(%PARAM_ATTRIBUTE%));'#13#10' // <%%% END IF_PARAM_TYP'
+'E_COMPLEX %%%>'#13#10' // <%%% END IN_PARAMS_NO_STRIP %%%>'#13#10' __'
+'Message->Finalize();'#13#10#13#10' __TransportChannel->Dispatch(__Messag'
+'e);'#13#10#13#10' // <%%% START IF_RESULT_SIMPLE %%%>'#13#10' __Messa'
+'ge->Read("Result", __Get%OPERATION_RESULT%Info, &result, TParamAttributes(%'
+'OPERATION_RESULT_ATTRIBUTE%));'#13#10' // <%%% END IF_RESULT_SIMPLE %%%>'
+#13#10' // <%%% START IF_RESULT_COMPLEX %%%>'#13#10' __Message->Read("'
+'Result", __typeinfo(%OPERATION_RESULT%), &result, TParamAttributes(%OPERATI'
+'ON_RESULT_ATTRIBUTE%));'#13#10' // <%%% END IF_RESULT_COMPLEX %%%>'#13#10
+' // <%%% START OUT_PARAMS_NO_STRIP %%%>'#13#10' // <%%% START IF_PARA'
+'M_TYPE_SIMPLE %%%>'#13#10' __Message->Read("%PARAM_NAME%", __Get%PARAM_T'
+'YPE%Info, &%PARAM_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%));'#13#10' /'
+'/ <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_PARAM_TYPE'
+'_COMPLEX %%%>'#13#10' __Message->Read("%PARAM_NAME%", __typeinfo(%PARAM_'
,'TYPE%), &%PARAM_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%));'#13#10' // '
+'<%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%% END OUT_PARAMS_NO_ST'
+'RIP %%%>'#13#10' }'#13#10' __finally'#13#10' {'#13#10' __Message->Fre'
+'eStream();'#13#10' }'#13#10' return result;'#13#10'}'#13#10#13#10'// <%%%'
+' END FUNCTION_OPERATIONS %%%>'#13#10'// <%%% START PROCEDURE_OPERATIONS %%%'
+'>'#13#10'void __fastcall T%SERVICE_NAME%_Proxy::%OPERATION_NAME%('#13#10' '
+'// <%%% START PARAMS %%%>'#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'
+#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM_NA'
+'ME%,'#13#10' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10' // <%%% START '
+'IF_PARAM_TYPE_COMPLEX %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %P'
+'ARAM_BACK_MODIFIER% %PARAM_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_COMPLE'
+'X %%%>'#13#10' // <%%% END PARAMS %%%>'#13#10' )'#13#10'{'#13#10' // <%%'
+'% START OUT_PARAMS_NO_STRIP %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPL'
+'EX %%%>'#13#10' %PARAM_NAME% = NULL;'#13#10' // <%%% END IF_PARAM_TYPE_CO'
+'MPLEX %%%>'#13#10' // <%%% END OUT_PARAMS_NO_STRIP %%%>'#13#10' try'#13#10
+' {'#13#10' __Message->InitializeRequestMessage(__TransportChannel, "%LI'
+'BRARY_NAME%", __InterfaceName, "%OPERATION_NAME%");'#13#10' // <%%% STAR'
+'T IN_PARAMS_NO_STRIP %%%>'#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%'
+'>'#13#10' __Message->Write("%PARAM_NAME%", __Get%PARAM_TYPE%Info, &%PARA'
+'M_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%));'#13#10' // <%%% END IF_PA'
+'RAM_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13
+#10' __Message->Write("%PARAM_NAME%", __typeinfo(%PARAM_TYPE%), &%PARAM_N'
+'AME%, TParamAttributes(%PARAM_ATTRIBUTE%));'#13#10' // <%%% END IF_PARAM'
+'_TYPE_COMPLEX %%%>'#13#10' // <%%% END IN_PARAMS_NO_STRIP %%%>'#13#10' '
+' __Message->Finalize();'#13#10#13#10' __TransportChannel->Dispatch(__Me'
+'ssage);'#13#10#13#10' // <%%% START OUT_PARAMS_NO_STRIP %%%>'#13#10' '
+'// <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10' __Message->Read("%PARAM_'
+'NAME%", __Get%PARAM_TYPE%Info, &%PARAM_NAME%, TParamAttributes(%PARAM_ATTRI'
+'BUTE%));'#13#10' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10' // <%%'
+'% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' __Message->Read("%PARAM_NAME%'
+'", __typeinfo(%PARAM_TYPE%), &%PARAM_NAME%, TParamAttributes(%PARAM_ATTRIBU'
+'TE%));'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%%'
+' END OUT_PARAMS_NO_STRIP %%%>'#13#10' }'#13#10' __finally'#13#10' {'#13
+#10' __Message->FreeStream();'#13#10' }'#13#10'}'#13#10#13#10'// <%%% EN'
+'D PROCEDURE_OPERATIONS %%%>'#13#10'// <%%% END SERVICES %%%>'#13#10'// <%%%'
+' START EVENT_SINKS %%%>'#13#10#13#10'namespace %NAMESPACE_NAME%'#13#10'{'#13
+#10'// T%EVENT_SINK_NAME%_Writer'#13#10'class DELPHICLASS T%EVENT_SINK_NAME%'
+'_Writer;'#13#10'class T%EVENT_SINK_NAME%_Writer : public T%EVENT_SINK_WRITE'
+'R_ANCESTOR_NAME%, I%EVENT_SINK_NAME%_Writer'#13#10'{'#13#10' typedef T%EVE'
+'NT_SINK_WRITER_ANCESTOR_NAME% inherited;'#13#10'protected:'#13#10' // <%%%'
+' START OPERATIONS %%%>'#13#10' void __fastcall %OPERATION_NAME%(const GUID'
+' __Sender'#13#10#9#9#9#9#9'// <%%% START PARAMS %%%>'#13#10#9#9#9#9#9'// <%'
+'%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10#9#9#9#9#9', %PARAM_FRONT_MODIFIER'
+'% %PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM_NAME%'#13#10#9#9#9#9#9'// <%%% '
+'END IF_PARAM_TYPE_SIMPLE %%%>'#13#10#9#9#9#9#9'// <%%% START IF_PARAM_TYPE_'
+'COMPLEX %%%>'#13#10#9#9#9#9#9', %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM'
+'_BACK_MODIFIER% %PARAM_NAME%'#13#10#9#9#9#9#9'// <%%% END IF_PARAM_TYPE_COM'
+'PLEX %%%>'#13#10#9#9#9#9#9'// <%%% END PARAMS %%%>'#13#10#9#9#9#9#9');'#13
+#10' // <%%% END OPERATIONS %%%>'#13#10'public:'#13#10' virtual HRESULT __'
+'stdcall QueryInterface(const GUID& IID, void **Obj) {'#13#10#9'return inher'
+'ited::QueryInterface(IID, (void *)Obj); }'#13#10#13#10' virtual ULONG __st'
+'dcall AddRef() {'#13#10#9'return inherited::_AddRef(); }'#13#10#13#10' vi'
+'rtual ULONG __stdcall Release() {'#13#10#9'return inherited::_Release(); }'
+#13#10'};'#13#10#13#10'} // namespace %NAMESPACE_NAME%'#13#10#13#10'// <%%%'
+' START OPERATIONS %%%>'#13#10'void __fastcall T%EVENT_SINK_NAME%_Writer::%O'
+'PERATION_NAME%(const GUID __Sender'#13#10' // <%%% START PARAMS %%%>'#13#10
+' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10' , %PARAM_FRONT_MODIFIER%'
+' %PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM_NAME%'#13#10' // <%%% END IF_PA'
+'RAM_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13
+#10' , %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MODIFIER% %PARAM_NA'
+'ME%'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%% END PA'
+'RAMS %%%>'#13#10' )'#13#10'{'#13#10' Binary* __eventdata = new Binary("")'
+';'#13#10' try'#13#10' {'#13#10' __Message->InitializeEventMessage(NULL'
+', "%LIBRARY_NAME%", EID_%EVENT_SINK_NAME%, "%OPERATION_NAME%");'#13#10' '
,'// <%%% START PARAMS_NO_STRIP %%%>'#13#10' // <%%% START IF_PARAM_TYPE_S'
+'IMPLE %%%>'#13#10' __Message->Write("%PARAM_NAME%", __Get%PARAM_TYPE%Inf'
+'o, &%PARAM_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%));'#13#10' // <%%% '
+'END IF_PARAM_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLE'
+'X %%%>'#13#10' __Message->Write("%PARAM_NAME%", __typeinfo(%PARAM_TYPE%)'
+', %PARAM_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%));'#13#10' // <%%% EN'
+'D IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%% END PARAMS_NO_STRIP %%%>'#13
+#10' __Message->Finalize();'#13#10#13#10' __Message->WriteToStream(__e'
+'ventdata);'#13#10#13#10' Repository->StoreEventData(__Sender, __eventdat'
+'a, TROEventWriter::ExcludeSender, TROEventWriter::ExcludeSessionList, TROEv'
+'entWriter::SessionList->CommaText);'#13#10' }'#13#10' __finally'#13#10' '
+'{'#13#10' delete __eventdata;'#13#10' }'#13#10'}'#13#10#13#10'// <%%% E'
+'ND OPERATIONS %%%>'#13#10'/* T%EVENT_SINK_NAME%_Invoker */'#13#10'namespace'
+' %NAMESPACE_NAME%'#13#10'{'#13#10'class DELPHICLASS T%EVENT_SINK_NAME%_Invo'
+'ker;'#13#10'class T%EVENT_SINK_NAME%_Invoker : public T%EVENT_SINK_INVOKER_'
+'ANCESTOR_NAME%'#13#10'{'#13#10'__published:'#13#10' // <%%% START OPERATIO'
+'NS %%%>'#13#10' void __fastcall Invoke_%OPERATION_NAME%(TROEventReceiver* '
+'__EventReceiver, IROMessage* __Message, IUnknown* __Target);'#13#10' // <%'
+'%% END OPERATIONS %%%>'#13#10'};'#13#10'} // namespace %NAMESPACE_NAME%'#13
+#10#13#10'// <%%% START OPERATIONS %%%>'#13#10'void __fastcall T%EVENT_SINK_'
+'NAME%_Invoker::Invoke_%OPERATION_NAME%(TROEventReceiver* __EventReceiver, I'
+'ROMessage* __Message, IUnknown* __Target)'#13#10'{'#13#10' // <%%% START P'
+'ARAMS_NO_STRIP %%%>'#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10
+' %PARAM_TYPE% %PARAM_NAME%;'#13#10' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>'
+#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' %PARAM_TYPE%* %PA'
+'RAM_NAME%;'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%%'
+' END PARAMS_NO_STRIP %%%>'#13#10' // <%%% START IF_HAS_COMPLEX_TYPE %%%>'
+#13#10' TROObjectDisposer* __lObjectDisposer;'#13#10' // <%%% END IF_HAS_C'
+'OMPLEX_TYPE %%%>'#13#10' _di_I%EVENT_SINK_NAME% __%EVENT_SINK_NAME%Instanc'
+'e;'#13#10#13#10' // <%%% START PARAMS_NO_STRIP %%%>'#13#10' // <%%% START'
+' IF_PARAM_TYPE_COMPLEX %%%>'#13#10' %PARAM_NAME% = NULL;'#13#10' // <%%% '
+'END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%% END PARAMS_NO_STRIP %%%>'#13
+#10' try'#13#10' {'#13#10' // <%%% START IN_PARAMS_NO_STRIP %%%>'#13#10
+' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10' __Message->Read("%PA'
+'RAM_NAME%", __Get%PARAM_TYPE%Info, &%PARAM_NAME%, TParamAttributes(%PARAM_A'
+'TTRIBUTE%));'#13#10' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10' //'
+' <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' __Message->Read("%PARAM_N'
+'AME%", __typeinfo(%PARAM_TYPE%), %PARAM_NAME%, TParamAttributes(%PARAM_ATTR'
+'IBUTE%));'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <'
+'%%% END IN_PARAMS_NO_STRIP %%%>'#13#10#13#10' if (__Target->QueryInterfa'
+'ce(I%EVENT_SINK_NAME%_IID, reinterpret_cast<void**>(&__%EVENT_SINK_NAME%Ins'
+'tance)) == S_OK)'#13#10' {'#13#10' __%EVENT_SINK_NAME%Instance->%OP'
+'ERATION_NAME%('#13#10' // <%%% START P'
+'ARAMS %%%>'#13#10' %PARAM_NAME%,'#13#10
+' // <%%% END PARAMS %%%>'#13#10' '
+' );'#13#10' }'#13#10' else'#13#10' {'
+#13#10' throw EIntfCastError::EIntfCastError("I%EVENT_SINK_NAME% not su'
+'pported");'#13#10' }'#13#10#13#10' // <%%% START OUT_PARAMS_NO_STRIP '
+'%%%>'#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10' __Messag'
+'e->Write("%PARAM_NAME%", __Get%PARAM_TYPE%Info, &%PARAM_NAME%, TParamAttrib'
+'utes(%PARAM_ATTRIBUTE%));'#13#10' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>'
+#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' __Message->Wr'
+'ite("%PARAM_NAME%", __typeinfo(%PARAM_TYPE%), %PARAM_NAME%, TParamAttribute'
+'s(%PARAM_ATTRIBUTE%));'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13
+#10' // <%%% END OUT_PARAMS_NO_STRIP %%%>'#13#10' }'#13#10' __finally'
+#13#10' {'#13#10' // <%%% START IF_HAS_COMPLEX_TYPE %%%>'#13#10' __lO'
+'bjectDisposer = new TROObjectDisposer(__EventReceiver->operator IInterface '
+'*());'#13#10' try'#13#10' {'#13#10' // <%%% START PARAMS_NO_STRI'
+'P %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' _'
+'_lObjectDisposer->Add(%PARAM_NAME%);'#13#10' // <%%% END IF_PARAM_TYPE'
+'_COMPLEX %%%>'#13#10' // <%%% END PARAMS_NO_STRIP %%%>'#13#10' }'#13
+#10' __finally'#13#10' {'#13#10' delete __lObjectDisposer;'#13#10
+' }'#13#10' // <%%% END IF_HAS_COMPLEX_TYPE %%%>'#13#10' }'#13#10'}'
+#13#10#13#10'// <%%% END OPERATIONS %%%>'#13#10'// <%%% END EVENT_SINKS %%%>'
,#13#10'void __initialization_%UNIT_NAME%()'#13#10'{'#13#10' // <%%% START S'
+'TRUCTS %%%>'#13#10' RegisterROClass(__classid(%STRUCT_NAME%));'#13#10' //'
+' <%%% END STRUCTS %%%>'#13#10' // <%%% START ARRAYS %%%>'#13#10' Register'
+'ROClass(__classid(%ARRAY_NAME%));'#13#10' // <%%% END ARRAYS %%%>'#13#10' '
+' // <%%% START EXCEPTIONS %%%>'#13#10' RegisterExceptionClass(__classid(%E'
+'XCEPTION_NAME%));'#13#10' // <%%% END EXCEPTIONS %%%>'#13#10' // <%%% STA'
+'RT SERVICES %%%>'#13#10' RegisterProxyClass(I%SERVICE_NAME%_IID, __classid'
+'(T%SERVICE_NAME%_Proxy));'#13#10' // <%%% END SERVICES %%%>'#13#10' // <%'
+'%% START EVENT_SINKS %%%>'#13#10' RegisterEventWriterClass(I%EVENT_SINK_NA'
+'ME%_IID, __classid(T%EVENT_SINK_NAME%_Writer));'#13#10' RegisterEventInvok'
+'erClass(EID_%EVENT_SINK_NAME%, __classid(T%EVENT_SINK_NAME%_Invoker));'#13
+#10' // <%%% END EVENT_SINKS %%%> '#13#10'}'#13#10#13#10'void __finaliz'
+'ation_%UNIT_NAME%()'#13#10'{'#13#10' // <%%% START STRUCTS %%%>'#13#10' U'
+'nregisterROClass(__classid(%STRUCT_NAME%));'#13#10' // <%%% END STRUCTS %%'
+'%>'#13#10' // <%%% START ARRAYS %%%>'#13#10' UnregisterROClass(__classid('
+'%ARRAY_NAME%));'#13#10' // <%%% END ARRAYS %%%>'#13#10' // <%%% START EXC'
+'EPTIONS %%%>'#13#10' UnregisterExceptionClass(__classid(%EXCEPTION_NAME%))'
+';'#13#10' // <%%% END EXCEPTIONS %%%>'#13#10' // <%%% START SERVICES %%%>'
+#13#10' UnregisterProxyClass(I%SERVICE_NAME%_IID);'#13#10' // <%%% END SER'
+'VICES %%%>'#13#10' // <%%% START EVENT_SINKS %%%>'#13#10' UnregisterEvent'
+'WriterClass(I%EVENT_SINK_NAME%_IID);'#13#10' UnregisterEventInvokerClass(E'
+'ID_%EVENT_SINK_NAME%);'#13#10' // <%%% END EVENT_SINKS %%%> '#13#10'}'
+#13#10#13#10
]);
LazarusResources.Add('TEMPLATE_INTF_H','RCDATA',[
'// %UNIT_NAME%'#13#10'//'#13#10'/*------------------------------------------'
+'---------------------------------}'#13#10'{ This unit was automatically gen'
+'erated by the RemObjects SDK after reading }'#13#10'{ the RODL file associ'
+'ated with this project. }'#13#10'{ '
+' }'#13#10
+'{ Do not modify this unit manually, or your changes will be lost when this '
+' }'#13#10'{ unit is regenerated the next time you compile the project. '
+' }'#13#10'{----------------------------------------------------'
+'-----------------------*/'#13#10#13#10'#ifndef %UNIT_NAME%H'#13#10'#define '
+'%UNIT_NAME%H'#13#10#13#10'#pragma delphiheader begin'#13#10'#pragma option '
+'push'#13#10'#pragma option -w- // All warnings off'#13#10'#pragm'
+'a option -Vx // Zero-length empty class member functions'#13#10
+'#pragma pack(push,8)'#13#10#13#10'#include <System.hpp> // Pascal u'
+'nit'#13#10'#include <Classes.hpp> // Pascal unit'#13#10'#include <Ur'
+'otypes.hpp> // Pascal unit'#13#10'#include <Uroclient.hpp> // Pa'
+'scal unit'#13#10'#include <Uroclientintf.hpp> // Pascal unit'#13#10'#inclu'
+'de <Uroxmlintf.hpp> // Pascal unit'#13#10'// <%%% START REQUIRED_UNITS '
+'%%%>'#13#10'#include <%REQUIRED_UNIT_NAME%.hpp>'#13#10'// <%%% END REQUIRED'
+'_UNITS %%%>'#13#10#13#10'namespace %NAMESPACE_NAME%'#13#10'{'#13#10'// Libr'
+'ary ID'#13#10'#define LibraryUID "%LIBRARY_UID%"'#13#10'#define TargetNames'
+'pace "%NAMESPACE_NAME%"'#13#10#13#10'// Service Interface ID''s'#13#10'// <'
+'%%% START SERVICES %%%>'#13#10'const GUID I%SERVICE_NAME%_IID = Sysutils::S'
+'tringToGUID("%SERVICE_UID%");'#13#10'// <%%% END SERVICES %%%>'#13#10#13#10
+'// Event ID''s'#13#10'// <%%% START EVENT_SINKS %%%>'#13#10'#define EID_%EV'
+'ENT_SINK_NAME% "%EVENT_SINK_NAME%"'#13#10'const GUID I%EVENT_SINK_NAME%_IID'
+' = Sysutils::StringToGUID("%EVENT_SINK_UID%");'#13#10'// <%%% END EVENT_SIN'
+'KS %%%>'#13#10#13#10'// Forward declarations'#13#10'// <%%% START SERVICES '
+'%%%>'#13#10'__interface I%SERVICE_NAME%; // = interface;'#13#10'// <%%% END'
+' SERVICES %%%>'#13#10'// <%%% START ARRAYS %%%>'#13#10'class DELPHICLASS %A'
+'RRAY_NAME%;'#13#10'// <%%% END ARRAYS %%%>'#13#10'// <%%% START STRUCTS %%%'
+'>'#13#10'class DELPHICLASS %STRUCT_NAME%;'#13#10'// <%%% END STRUCTS %%%>'
+#13#10'// <%%% START EXCEPTIONS %%%>'#13#10'class DELPHICLASS %EXCEPTION_NAM'
+'E%;'#13#10'// <%%% END EXCEPTIONS %%%>'#13#10'// <%%% START EVENT_SINKS %%%'
+'>'#13#10'__interface I%EVENT_SINK_NAME%; // = interface;'#13#10'// <%%% END'
+' EVENT_SINKS %%%>'#13#10#13#10'/* Enumerateds */'#13#10'// <%%% START ENUMS'
+' %%%>'#13#10'// <%%% START DOCUMENTATION %%%>'#13#10#13#10'/* Description:'
+#13#10' %CONTENT% */'#13#10'// <%%% END DOCUMENTATION %%%>'#13#10'#pragma'
+' option push -b-'#13#10'enum %ENUM_NAME% {'#13#10' // <%%% '
+'START VALUES %%%>'#13#10' %VALUE_NAME%, '#13
+#10' // <%%% END VALUES %%%> '#13#10' '
+' };'#13#10'#pragma option pop'#13#10' '#13#10'// <%%% '
+'END ENUMS %%%>'#13#10'/* Simple type holders */'#13#10'// Note: In order to'
+' get type info for a simple type, we MUST have it from the'#13#10'// publis'
+'hed property of a Delphi class. There is no other way as __typeinfo'#13#10
+'// requires the type to actually derive from TObject. Hence the reason why'
+#13#10'// we create these dummy classes with a simple property of the correc'
+'t type.'#13#10'// <%%% START SIMPLE_TYPES %%%>'#13#10'#ifndef __Get%TYPE_NA'
+'ME%Info'#13#10'class DELPHICLASS %TYPE_NAME%TypeHolder;'#13#10'class %TYPE_'
+'NAME%TypeHolder : public TPersistent'#13#10'{'#13#10'private:'#13#10' %TYP'
+'E_NAME% FHolderField;'#13#10'__published:'#13#10' __property %TYPE_NAME% H'
+'olderField = {read=FHolderField, write=FHolderField};'#13#10'};'#13#10'#def'
+'ine __Get%TYPE_NAME%Info *::GetPropInfo(__typeinfo(%TYPE_NAME%TypeHolder), '
+'"HolderField")->PropType'#13#10'#endif // __Get%TYPE_NAME%Info'#13#10#13#10
+'// <%%% END SIMPLE_TYPES %%%>'#13#10'// <%%% START STRUCTS %%%>'#13#10'// %'
+'STRUCT_NAME%'#13#10'class DELPHICLASS %STRUCT_NAME%;'#13#10'class %STRUCT_N'
+'AME% : public Urotypes::TROComplexType'#13#10'{'#13#10' // Allow the use o'
+'f "inherited" in our class as Delphi allows'#13#10' typedef Urotypes::TROC'
+'omplexType inherited;'#13#10' '#13#10'private:'#13#10' // <%%% START FIEL'
+'DS_NO_STRIP %%%>'#13#10' // <%%% START IF_FIELD_TYPE_SIMPLE %%%>'#13#10' '
+'%FIELD_TYPE% f%FIELD_NAME%;'#13#10' // <%%% END IF_FIELD_TYPE_SIMPLE %%%>'
+#13#10' // <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#13#10' %FIELD_TYPE%* f%F'
+'IELD_NAME%;'#13#10' // <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#13#10' // <%%'
+'% END FIELDS_NO_STRIP %%%>'#13#10#13#10' // <%%% START FIELDS_NO_STRIP %%%'
+'>'#13#10' // <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#13#10' %FIELD_TYPE%* '
,'__fastcall Get%FIELD_NAME%();'#13#10' // <%%% END IF_FIELD_TYPE_COMPLEX %%'
+'%>'#13#10' // <%%% END FIELDS_NO_STRIP %%%>'#13#10'public:'#13#10' virtua'
+'l void __fastcall Assign(Classes::TPersistent* iSource);'#13#10' // <%%% S'
+'TART IF_HAS_FIELDS %%%>'#13#10' virtual void __fastcall ReadComplex(TObjec'
+'t* ASerializer);'#13#10' virtual void __fastcall WriteComplex(TObject* ASe'
+'rializer);'#13#10' // <%%% END IF_HAS_FIELDS %%%>'#13#10#13#10'__published'
+':'#13#10' // <%%% START FIELDS_NO_STRIP %%%>'#13#10' // <%%% START IF_FIE'
+'LD_TYPE_SIMPLE %%%>'#13#10' __property %FIELD_TYPE% %FIELD_NAME% = {read=f'
+'%FIELD_NAME%, write=f%FIELD_NAME%}; '#13#10' // <%%% END IF_FIELD_TYPE_SIM'
+'PLE %%%>'#13#10' // <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#13#10' __prope'
+'rty %FIELD_TYPE%* %FIELD_NAME% = {read=Get%FIELD_NAME%, write=f%FIELD_NAME%'
+'};'#13#10' // <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#13#10' // <%%% END FIE'
+'LDS_NO_STRIP %%%>'#13#10'public:'#13#10' // Pascal constructor/destructor'
+#13#10' #pragma option push -w-inl'#13#10' /* TROComplexType.Create */ inl'
+'ine __fastcall virtual %STRUCT_NAME%()/* overload */ : Urotypes::TROComplex'
+'Type() {}'#13#10' #pragma option pop'#13#10' #pragma option push -w-inl'
+#13#10' /* TROComplexType.Destroy */ inline __fastcall virtual ~%STRUCT_NAM'
+'E%() {}'#13#10' #pragma option pop'#13#10'};'#13#10#13#10'// %STRUCT_COLLE'
+'CTION_NAME%'#13#10'class DELPHICLASS %STRUCT_COLLECTION_NAME%;'#13#10'class'
+' %STRUCT_COLLECTION_NAME% : public Uroclasses::TROCollection'#13#10'{'#13#10
+' typedef Uroclasses::TROCollection inherited;'#13#10#13#10'public:'#13#10
+' %STRUCT_NAME%* operator[](int Index) { return Items[Index]; }'#13#10#13#10
+'protected:'#13#10' __fastcall %STRUCT_COLLECTION_NAME%(TMetaClass* aItemCl'
+'ass) : Uroclasses::TROCollection(aItemClass) {} /*overload*/'#13#10' %STRU'
+'CT_NAME%* __fastcall GetItems(const int Index);'#13#10' void __fastcall Se'
+'tItems(const int Index, %STRUCT_NAME%* Value);'#13#10#13#10'public:'#13#10
+' __fastcall %STRUCT_COLLECTION_NAME%() : Uroclasses::TROCollection(__class'
+'id(%STRUCT_NAME%)) {} /*overload*/'#13#10' HIDESBASE %STRUCT_NAME%* __fast'
+'call Add(); /*reintroduce*/'#13#10' // <%%% START ARRAYS_IS_FOUND %%%>'#13
+#10' void SaveToArray(%ARRAY_NAME%* anArray);'#13#10' void LoadFromArray(%'
+'ARRAY_NAME%* anArray);'#13#10' // <%%% END ARRAYS_IS_FOUND %%%>'#13#10' _'
+'_property %STRUCT_NAME%* Items[int Index] = {read=GetItems, write=SetItems '
+'/*default*/};'#13#10' #pragma option push -w-inl'#13#10' /* TCollection.D'
+'estroy */ inline __fastcall virtual ~%STRUCT_COLLECTION_NAME%() {}'#13#10' '
+' #pragma option pop'#13#10'};'#13#10#13#10'typedef DynamicArray<%STRUCT_NAM'
+'E%* > %UNIT_NAME%_%STRUCT_NAME%__4;'#13#10#13#10'// <%%% END STRUCTS %%%>'
+#13#10'// <%%% START ARRAYS %%%>'#13#10'// %ARRAY_NAME%'#13#10#13#10'// <%%%'
+' START IF_ARRAY_TYPE_SIMPLE %%%>'#13#10'typedef DynamicArray<%ARRAY_TYPE%> '
+'%ARRAY_NAME%_%ARRAY_TYPE%;'#13#10'// <%%% END IF_ARRAY_TYPE_SIMPLE %%%>'#13
+#10'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10'typedef DynamicArray<%AR'
+'RAY_TYPE%* > %ARRAY_NAME%_%ARRAY_TYPE%;'#13#10'// <%%% END IF_ARRAY_TYPE_CO'
+'MPLEX %%%>'#13#10#13#10'class DELPHICLASS %ARRAY_NAME%;'#13#10'class %ARRAY'
+'_NAME% : public Urotypes::TROArray'#13#10'{'#13#10' typedef Urotypes::TROA'
+'rray inherited;'#13#10#13#10'public:'#13#10' // <%%% START IF_ARRAY_TYPE_C'
+'OMPLEX %%%>'#13#10' %ARRAY_TYPE%* operator[](const int Index) { return Ite'
+'ms[Index]; }'#13#10' // <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' // <%'
+'%% START IF_ARRAY_TYPE_SIMPLE %%%>'#13#10' %ARRAY_TYPE% operator[](const i'
+'nt Index) { return Items[Index]; }'#13#10' // <%%% END IF_ARRAY_TYPE_SIMPL'
+'E %%%>'#13#10#13#10'private:'#13#10' int fCount;'#13#10' %ARRAY_NAME%_%AR'
+'RAY_TYPE% fItems;'#13#10#13#10'protected:'#13#10' virtual void __fastcall '
+'Grow();'#13#10' // <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' %ARRAY_T'
+'YPE%* __fastcall GetItems(const int Index);'#13#10' void __fastcall SetIte'
+'ms(const int Index, %ARRAY_TYPE%* Value);'#13#10' // <%%% END IF_ARRAY_TYP'
+'E_COMPLEX %%%>'#13#10' // <%%% START IF_ARRAY_TYPE_SIMPLE %%%>'#13#10' %A'
+'RRAY_TYPE% __fastcall GetItems(const int Index);'#13#10' void __fastcall S'
+'etItems(const int Index, %ARRAY_TYPE% Value);'#13#10' // <%%% END IF_ARRAY'
+'_TYPE_SIMPLE %%%>'#13#10' virtual int __fastcall GetCount();'#13#10#13#10
+'public:'#13#10' /* virtual class method */ '#13#10' // <%%% START IF_ARRA'
+'Y_TYPE_SIMPLE %%%>'#13#10' virtual Typinfo::PTypeInfo __fastcall GetItemTy'
+'pe(const TMetaClass* vmt) { return __Get%ARRAY_TYPE%Info; }'#13#10' // <%%'
+'% END IF_ARRAY_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_ARRAY_TYPE_COMPLE'
+'X %%%>'#13#10' virtual Typinfo::PTypeInfo __fastcall GetItemType(const TMe'
+'taClass* vmt) { return __typeinfo(%ARRAY_TYPE%); }'#13#10' // <%%% END IF_'
+'ARRAY_TYPE_COMPLEX %%%>'#13#10#13#10' // <%%% START IF_ARRAY_TYPE_COMPLEX '
,'%%%>'#13#10' /* virtual class method */ '#13#10' virtual TMetaClass* __fa'
+'stcall GetItemClass(const TMetaClass* vmt) { return __classid(%ARRAY_TYPE%)'
+'; }'#13#10' '#13#10' // <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' /* v'
+'irtual class method */ '#13#10' virtual int __fastcall GetItemSize(const '
+'TMetaClass* vmt) { return sizeof(%ARRAY_TYPE%); }'#13#10' '#13#10' virt'
+'ual void * __fastcall GetItemRef(const int Index);'#13#10' // <%%% START I'
+'F_ARRAY_TYPE_COMPLEX %%%>'#13#10' virtual void __fastcall SetItemRef(const'
+' int Index, void* Ref);'#13#10' // <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#13
+#10' virtual void __fastcall Clear();'#13#10' virtual void __fastcall Dele'
+'te(const int Index);'#13#10' virtual void __fastcall Resize(const int Elem'
+'entCount);'#13#10' virtual void __fastcall Assign(Classes::TPersistent* iS'
+'ource);'#13#10' virtual void __fastcall ReadComplex(TObject* ASerializer);'
+#13#10' virtual void __fastcall WriteComplex(TObject* ASerializer);'#13#10
+' // <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' %ARRAY_TYPE%* __fastcal'
+'l Add()/* overload */;'#13#10' int __fastcall Add(%ARRAY_TYPE%* Value)/* o'
+'verload */;'#13#10' // <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' // <%%'
+'% START IF_ARRAY_TYPE_SIMPLE %%%>'#13#10' int __fastcall Add(%ARRAY_TYPE% '
+'Value)/* overload */;'#13#10' // <%%% END IF_ARRAY_TYPE_SIMPLE %%%>'#13#10
+' __property int Count = {read=GetCount, nodefault};'#13#10' // <%%% START'
+' IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' __property %ARRAY_TYPE%* Items[int Ind'
+'ex] = {read=GetItems, write=SetItems/*, default*/};'#13#10' // <%%% END IF'
+'_ARRAY_TYPE_COMPLEX %%%>'#13#10' // <%%% START IF_ARRAY_TYPE_SIMPLE %%%>'
+#13#10' __property %ARRAY_TYPE% Items[int Index] = {read=GetItems, write=Se'
+'tItems/*, default*/};'#13#10' // <%%% END IF_ARRAY_TYPE_SIMPLE %%%>'#13#10
+' __property %ARRAY_NAME%_%ARRAY_TYPE% InnerArray = {read=fItems, nodefault'
+'};'#13#10'public:'#13#10' #pragma option push -w-inl'#13#10' /* TROArray.'
+'Destroy */ inline __fastcall virtual ~%ARRAY_NAME%() {Clear();}'#13#10' #p'
+'ragma option pop'#13#10#13#10'public:'#13#10' #pragma option push -w-inl'
+#13#10' /* TROComplexType.Create */ inline __fastcall virtual %ARRAY_NAME%('
+')/* overload */ : Urotypes::TROArray() {}'#13#10' #pragma option pop'#13#10
+'};'#13#10#13#10'// <%%% END ARRAYS %%%>'#13#10'// <%%% START EXCEPTIONS %%%'
+'>'#13#10'// <%%% START DOCUMENTATION %%%>'#13#10#13#10'/* Description:'#13
+#10' %CONTENT% */'#13#10'// <%%% END DOCUMENTATION %%%>'#13#10'class DELP'
+'HICLASS %EXCEPTION_NAME%;'#13#10'class %EXCEPTION_NAME% : public %EXCEPTION'
+'_ANCESTOR_NAME%'#13#10'{'#13#10' typedef %EXCEPTION_ANCESTOR_NAME% inherit'
+'ed;'#13#10' '#13#10'private:'#13#10' // <%%% START FIELDS_NO_STRIP %%%>'
+#13#10' // <%%% START IF_FIELD_TYPE_SIMPLE %%%>'#13#10' %FIELD_TYPE% f%FIE'
+'LD_NAME%;'#13#10' // <%%% END IF_FIELD_TYPE_SIMPLE %%%>'#13#10' // <%%% S'
+'TART IF_FIELD_TYPE_COMPLEX %%%>'#13#10' %FIELD_TYPE%* f%FIELD_NAME%;'#13#10
+' // <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#13#10' // <%%% END FIELDS_NO_STR'
+'IP %%%>'#13#10'public:'#13#10' %EXCEPTION_NAME%(AnsiString anExceptionMess'
+'age'#13#10' // <%%% START ANCESTOR_FIELDS %%%>'#13#10' '
+' // <%%% START IF_FIELD_TYPE_SIMPLE %%%>'#13#10' '
+' , %FIELD_TYPE% a%FIELD_NAME% '#13#10' // <%%% END '
+'IF_FIELD_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_FIELD_'
+'TYPE_COMPLEX %%%>'#13#10' , %FIELD_TYPE%* a%FIELD_NAME% '
+#13#10' // <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#13#10' '
+' // <%%% END ANCESTOR_FIELDS %%%>'#13#10' /'
+'/ <%%% START FIELDS_NO_STRIP %%%>'#13#10' // <%%% START I'
+'F_FIELD_TYPE_SIMPLE %%%>'#13#10' , %FIELD_TYPE% a%FIELD_N'
+'AME% '#13#10' // <%%% END IF_FIELD_TYPE_SIMPLE %%%>'#13#10
+' // <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#13#10' '
+' , %FIELD_TYPE%* a%FIELD_NAME% '#13#10' // <%%%'
+' END IF_FIELD_TYPE_COMPLEX %%%>'#13#10' // <%%% END FIELD'
+'S_NO_STRIP %%%>'#13#10' );'#13#10' // <%%% START IF_HAS_'
+'FIELDS %%%>'#13#10' virtual void __fastcall ReadException(TObject* ASerial'
+'izer);'#13#10' virtual void __fastcall WriteException(TObject* ASerializer'
+');'#13#10' // <%%% END IF_HAS_FIELDS %%%>'#13#10'__published:'#13#10' // '
+'<%%% START FIELDS_NO_STRIP %%%>'#13#10' // <%%% START IF_FIELD_TYPE_SIMPLE'
+' %%%>'#13#10' __property %FIELD_TYPE% %FIELD_NAME% = {read=f%FIELD_NAME%, '
+'write=f%FIELD_NAME%}; '#13#10' // <%%% END IF_FIELD_TYPE_SIMPLE %%%>'#13#10
+' // <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#13#10' __property %FIELD_TYPE%'
+'* %FIELD_NAME% = {read=f%FIELD_NAME%, write=f%FIELD_NAME%}; '#13#10' // <%'
+'%% END IF_FIELD_TYPE_COMPLEX %%%>'#13#10' // <%%% END FIELDS_NO_STRIP %%%>'
,#13#10'};'#13#10#13#10'// <%%% END EXCEPTIONS %%%>'#13#10'// <%%% START SERV'
+'ICES %%%>'#13#10'__interface I%SERVICE_NAME%;'#13#10'typedef System::Delphi'
+'Interface<I%SERVICE_NAME%> _di_I%SERVICE_NAME%;'#13#10'__interface INTERFAC'
+'E_UUID("%SERVICE_UID%") I%SERVICE_NAME% : public %SERVICE_ANCESTOR_NAME%'#13
+#10'{'#13#10'public:'#13#10' // <%%% START FUNCTION_OPERATIONS %%%>'#13#10
+' // <%%% START IF_RESULT_SIMPLE %%%>'#13#10' virtual %OPERATION_RESULT% _'
+'_fastcall %OPERATION_NAME%('#13#10' // <%%% END IF_RESULT_SIMPLE %%%>'#13
+#10' // <%%% START IF_RESULT_COMPLEX %%%>'#13#10' virtual %OPERATION_RESUL'
+'T%* __fastcall %OPERATION_NAME%('#13#10' // <%%% END IF_RESULT_COMPLEX %%%'
+'>'#13#10' // <%%% START PARAMS %%%>'#13#10' // <%%% START IF_PARAM_TY'
+'PE_SIMPLE %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE% %PARAM_BACK_M'
+'ODIFIER% %PARAM_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13
+#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' %PARAM_FRONT_MOD'
+'IFIER% %PARAM_TYPE%* %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13#10' // <%%%'
+' END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%% END PARAMS %%%>'#13#10' '
+' ) = 0; // pure virtual function - interface only'#13#10' // <%%% END FU'
+'NCTION_OPERATIONS %%%>'#13#10' // <%%% START PROCEDURE_OPERATIONS %%%>'#13
+#10' virtual void __fastcall %OPERATION_NAME%('#13#10' // <%%% START PAR'
+'AMS %%%>'#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10' %PAR'
+'AM_FRONT_MODIFIER% %PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13#10
+' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_PARAM'
+'_TYPE_COMPLEX %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_B'
+'ACK_MODIFIER% %PARAM_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%'
+'%>'#13#10' // <%%% END PARAMS %%%>'#13#10' ) = 0; // pure virtual fun'
+'ction - interface only'#13#10' // <%%% END PROCEDURE_OPERATIONS %%%>'#13#10
+'};'#13#10#13#10'class DELPHICLASS T%SERVICE_NAME%_Proxy;'#13#10'class T%SER'
+'VICE_NAME%_Proxy : public %SERVICE_PROXY_ANCESTOR_NAME%, I%SERVICE_NAME%'#13
+#10'{'#13#10' typedef %SERVICE_PROXY_ANCESTOR_NAME% inherited;'#13#10' '#13
+#10'protected:'#13#10' virtual AnsiString __fastcall __GetInterfaceName()'
+#13#10' { return "%SERVICE_NAME%"; }'#13#10#13#10' // <%%% START FUNCTIO'
+'N_OPERATIONS %%%>'#13#10' // <%%% START IF_RESULT_SIMPLE %%%>'#13#10' vir'
+'tual %OPERATION_RESULT% __fastcall %OPERATION_NAME%('#13#10' // <%%% END I'
+'F_RESULT_SIMPLE %%%>'#13#10' // <%%% START IF_RESULT_COMPLEX %%%>'#13#10' '
+' virtual %OPERATION_RESULT%* __fastcall %OPERATION_NAME%('#13#10' // <%%% '
+'END IF_RESULT_COMPLEX %%%>'#13#10' // <%%% START PARAMS %%%>'#13#10' '
+'// <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10' %PARAM_FRONT_MODIFIER% %'
+'PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13#10' // <%%% END IF_P'
+'ARAM_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'
+#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MODIFIER% %PARAM'
+'_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%'
+'% END PARAMS %%%>'#13#10' );'#13#10' // <%%% END FUNCTION_OPERATIONS %%'
+'%>'#13#10' // <%%% START PROCEDURE_OPERATIONS %%%>'#13#10' virtual void _'
+'_fastcall %OPERATION_NAME%('#13#10' // <%%% START PARAMS %%%>'#13#10' '
+' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10' %PARAM_FRONT_MODIFIER% '
+'%PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13#10' // <%%% END IF_'
+'PARAM_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'
+#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MODIFIER% %PARAM'
+'_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%'
+'% END PARAMS %%%>'#13#10' );'#13#10' // <%%% END PROCEDURE_OPERATIONS %'
+'%%>'#13#10' '#13#10'public:'#13#10' #pragma option push -w-inl'#13#10' /'
+'* TROProxy.Create */ inline __fastcall virtual T%SERVICE_NAME%_Proxy(const '
+'Uroclientintf::_di_IROMessage aMessage, const Uroclientintf::_di_IROTranspo'
+'rtChannel aTransportChannel)/* overload */ :'#13#10' %SERVICE_PROXY_ANCE'
+'STOR_NAME%(aMessage, aTransportChannel) {}'#13#10' #pragma option pop'#13
+#10' '#13#10' virtual HRESULT __stdcall QueryInterface(const GUID& IID, vo'
+'id **Obj) {'#13#10' return inherited::QueryInterface(IID, (void *)Obj); '
+'}'#13#10#13#10' virtual ULONG __stdcall AddRef() {'#13#10' return inher'
+'ited::_AddRef(); }'#13#10#13#10' virtual ULONG __stdcall Release() {'#13
+#10' return inherited::_Release(); }'#13#10'};'#13#10#13#10'// Co%SERVICE'
+'_NAME%'#13#10'class DELPHICLASS Co%SERVICE_NAME%;'#13#10'class Co%SERVICE_N'
+'AME% : public System::TObject'#13#10'{'#13#10' typedef System::TObject inh'
+'erited;'#13#10#13#10'public:'#13#10' static _di_I%SERVICE_NAME% __fastcall'
+' Create(const Uroclientintf::_di_IROMessage aMessage,'#13#10' '
+' Uroclientintf::_di_IROTransportChannel aTransportChannel)'#13#10
,' {'#13#10' _di_I%SERVICE_NAME% result;'#13#10' T%SERVICE_NAME%_Proxy'
+'* proxy = new T%SERVICE_NAME%_Proxy(aMessage, aTransportChannel);'#13#10' '
+' if (proxy->QueryInterface(I%SERVICE_NAME%_IID, reinterpret_cast<void**>(&'
+'result)) != S_OK)'#13#10' {'#13#10' delete proxy;'#13#10' thro'
+'w EIntfCastError::EIntfCastError("I%SERVICE_NAME% not supported");'#13#10' '
+' }'#13#10' return result;'#13#10' };'#13#10#13#10' static _di_I%SERV'
+'ICE_NAME% __fastcall Create( Uroclient::TROMessage* aMessage,'#13#10' '
+' Uroclient::TROTransportChannel *aTransportChannel)'#13#10
+' {'#13#10' _di_IROMessage __Message;'#13#10' _di_IROTransportChannel'
+' __TransportChannel;'#13#10#13#10' if (aMessage->GetInterface(__Message)'
+')'#13#10' {'#13#10' if (aTransportChannel->GetInterface(__Transport'
+'Channel))'#13#10' return Create(__Message, __TransportChannel);'#13
+#10' else'#13#10' throw EIntfCastError::EIntfCastError("IROTrans'
+'portChannel not supported");'#13#10' }'#13#10' else'#13#10' {'#13
+#10' throw EIntfCastError::EIntfCastError("IROMessage not supported");'
+#13#10' }'#13#10' };'#13#10'};'#13#10#13#10'// <%%% END SERVICES %%%>'#13
+#10'// <%%% START EVENT_SINKS %%%>'#13#10'/* I%EVENT_SINK_NAME% */'#13#10'//'
+' <%%% START DOCUMENTATION %%%>'#13#10#13#10'/* Description:'#13#10' %CON'
+'TENT% */'#13#10'// <%%% END DOCUMENTATION %%%>'#13#10'__interface I%EVENT_S'
+'INK_NAME%;'#13#10'typedef System::DelphiInterface<I%EVENT_SINK_NAME%> _di_I'
+'%EVENT_SINK_NAME%;'#13#10'__interface INTERFACE_UUID("%EVENT_SINK_UID%") I%'
+'EVENT_SINK_NAME% : public %EVENT_SINK_ANCESTOR_NAME%'#13#10'{'#13#10'public'
+':'#13#10' // <%%% START OPERATIONS %%%>'#13#10' virtual void __fastcall %'
+'OPERATION_NAME%('#13#10' // <%%% START PARAMS %%%>'#13#10' // <%%% ST'
+'ART IF_PARAM_TYPE_SIMPLE %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE'
+'% %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_'
+'SIMPLE %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' '
+'%PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13
+#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%% END PARAMS'
+' %%%>'#13#10' ) = 0; // pure virtual function - interface only'#13#10' '
+'// <%%% END OPERATIONS %%%>'#13#10'};'#13#10#13#10'/* I%EVENT_SINK_NAME%_Wr'
+'iter */'#13#10'// <%%% START DOCUMENTATION %%%>'#13#10#13#10'/* Description'
+':'#13#10' %CONTENT% */'#13#10'// <%%% END DOCUMENTATION %%%>'#13#10'__in'
+'terface I%EVENT_SINK_NAME%_Writer;'#13#10'typedef System::DelphiInterface<I'
+'%EVENT_SINK_NAME%_Writer> _di_I%EVENT_SINK_NAME%_Writer;'#13#10'__interface'
+' INTERFACE_UUID("%EVENT_SINK_UID%") I%EVENT_SINK_NAME%_Writer : public I%EV'
+'ENT_SINK_WRITER_ANCESTOR_NAME%'#13#10'{'#13#10'public:'#13#10' // <%%% STA'
+'RT OPERATIONS %%%>'#13#10' virtual void __fastcall %OPERATION_NAME%(GUID _'
+'_Sender '#13#10' // <%%% START PARAMS %%%>'#13#10' // <%%% START IF_P'
+'ARAM_TYPE_SIMPLE %%%>'#13#10' , %PARAM_FRONT_MODIFIER% %PARAM_TYPE% %PAR'
+'AM_BACK_MODIFIER% %PARAM_NAME%'#13#10' // <%%% END IF_PARAM_TYPE_SIMPLE '
+'%%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' , %PARA'
+'M_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MODIFIER% %PARAM_NAME%'#13#10' '
+' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%% END PARAMS %%%'
+'>'#13#10' ) = 0; // pure virtual function - interface only'#13#10' // <'
+'%%% END OPERATIONS %%%>'#13#10'};'#13#10#13#10'// <%%% END EVENT_SINKS %%%>'
+#13#10'} // namespace %NAMESPACE_NAME%'#13#10#13#10'using namespace %NAMESP'
+'ACE_NAME%;'#13#10'#pragma pack(pop)'#13#10'#pragma option pop'#13#10#13#10
+'#pragma delphiheader end.'#13#10'#endif // %UNIT_NAME%H'#13#10#13#10
]);
LazarusResources.Add('TEMPLATE_INVK_CPP','RCDATA',[
'// %UNIT_NAME%'#13#10'//'#13#10'/*------------------------------------------'
+'---------------------------------}'#13#10'{ This unit was automatically gen'
+'erated by the RemObjects SDK after reading }'#13#10'{ the RODL file associ'
+'ated with this project. }'#13#10'{ '
+' }'#13#10
+'{ Do not modify this unit manually, or your changes will be lost when this '
+' }'#13#10'{ unit is regenerated the next time you compile the project. '
+' }'#13#10'{----------------------------------------------------'
+'-----------------------*/'#13#10#13#10'// RemObjects:'#13#10'#include <uROR'
+'es.HPP>'#13#10'#include <uROClient.HPP>'#13#10#13#10'// Interface of %LIBRA'
+'RY_NAME%'#13#10'#include "%LIBRARY_NAME%_Intf.h"'#13#10#13#10'// Implementa'
+'tion of %LIBRARY_NAME%'#13#10'#include "%LIBRARY_NAME%_Invk.h"'#13#10#13#10
+'// <%%% START SERVICES %%%>'#13#10'// T%SERVICE_NAME%_Invoker'#13#10#13#10
+'// <%%% START FUNCTION_OPERATIONS %%%>'#13#10'void __fastcall T%SERVICE_NAM'
+'E%_Invoker::Invoke_%OPERATION_NAME%('#13#10#9#9'const System::_di_IInterfac'
+'e __Instance,'#13#10#9#9'const Uroclientintf::_di_IROMessage __Message,'#13
+#10#9#9'const Uroclientintf::_di_IROTransport __Transport,'#13#10#9#9'/* out'
+' */ Uroserverintf::TROResponseOptions& __oResponseOptions)'#13#10'{'#13#10
+'// <%%% START IF_RESULT_SIMPLE %%%>'#13#10'// virtual %OPERATION_RESULT% __'
+'fastcall %OPERATION_NAME%('#13#10'// <%%% END IF_RESULT_SIMPLE %%%>'#13#10
+'// <%%% START IF_RESULT_COMPLEX %%%>'#13#10'// virtual %OPERATION_RESULT%* '
+'__fastcall %OPERATION_NAME%('#13#10'// <%%% END IF_RESULT_COMPLEX %%%>'#13
+#10'// <%%% START PARAMS %%%>'#13#10'// <%%% START IF_PARAM_TYPE_SIMPLE %%%>'
+#13#10'// %PARAM_FRONT_MODIFIER% %PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM'
+'_NAME%,'#13#10'// <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10'// <%%% START I'
+'F_PARAM_TYPE_COMPLEX %%%>'#13#10'// %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* '
+'%PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13#10'// <%%% END IF_PARAM_TYPE_COMPLE'
+'X %%%>'#13#10'// <%%% END PARAMS %%%>'#13#10'// );'#13#10#13#10' // <%%%'
+' START PARAMS_NO_STRIP %%%>'#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%'
+'>'#13#10' %PARAM_TYPE% %PARAM_NAME%;'#13#10' // <%%% END IF_PARAM_TYPE_SI'
+'MPLE %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' %PARAM'
+'_TYPE%* %PARAM_NAME% = NULL;'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%'
+'>'#13#10' // <%%% END PARAMS_NO_STRIP %%%>'#13#10' // <%%% START IF_RESUL'
+'T_SIMPLE %%%>'#13#10' %OPERATION_RESULT% lResult;'#13#10' // <%%% END IF_'
+'RESULT_SIMPLE %%%>'#13#10' // <%%% START IF_RESULT_COMPLEX %%%>'#13#10' %'
+'OPERATION_RESULT%* lResult = NULL;'#13#10' // <%%% END IF_RESULT_COMPLEX %'
+'%%>'#13#10' try'#13#10' {'#13#10#9'_di_I%SERVICE_NAME% __%SERVICE_NAME%In'
+'stance;'#13#10#9'if (__Instance->Supports(__%SERVICE_NAME%Instance))'#13#10
+#9'{'#13#10#9' // <%%% START IN_PARAMS_NO_STRIP %%%>'#13#10#9' // <%%% STA'
+'RT IF_PARAM_TYPE_SIMPLE %%%>'#13#10#9' __Message->Read("%PARAM_NAME%", __G'
+'et%PARAM_TYPE%Info, &%PARAM_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%));'#13
+#10#9' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10#9' // <%%% START IF_PA'
+'RAM_TYPE_COMPLEX %%%>'#13#10#9' __Message->Read("%PARAM_NAME%", __typeinfo'
+'(%PARAM_TYPE%), &%PARAM_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%));'#13#10
+#9' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10#9' // <%%% END IN_PARAMS'
+'_NO_STRIP %%%>'#13#10#13#10#9' lResult = __%SERVICE_NAME%Instance->%OPERAT'
+'ION_NAME%('#13#10#9#9#9#9#9#9#9#9#9#9#9'// <%%% START PARAMS %%%>'#13#10#9#9
+#9#9#9#9#9#9#9#9#9'%PARAM_NAME%,'#13#10#9#9#9#9#9#9#9#9#9#9#9'// <%%% END PA'
+'RAMS %%%>'#13#10#9#9#9#9#9#9#9#9#9#9#9');'#13#10#13#10#9' __Message->Initi'
+'alizeResponseMessage(__Transport, "%LIBRARY_NAME%", "%SERVICE_NAME%", "%OPE'
+'RATION_NAME%Response");'#13#10#9' // <%%% START IF_RESULT_SIMPLE %%%>'#13
+#10#9' __Message->Write("Result", __Get%OPERATION_RESULT%Info, &lResult, TP'
+'aramAttributes(%OPERATION_RESULT_ATTRIBUTE%));'#13#10#9' // <%%% END IF_RE'
+'SULT_SIMPLE %%%>'#13#10#9' // <%%% START IF_RESULT_COMPLEX %%%>'#13#10#9' '
+' __Message->Write("Result", __typeinfo(%OPERATION_RESULT%), &lResult, TPara'
+'mAttributes(%OPERATION_RESULT_ATTRIBUTE%));'#13#10#9' // <%%% END IF_RESUL'
+'T_COMPLEX %%%>'#13#10#9' // <%%% START OUT_PARAMS_NO_STRIP %%%>'#13#10#9' '
+' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10#9' __Message->Write("%PARA'
+'M_NAME%", __Get%PARAM_TYPE%Info, &%PARAM_NAME%, TParamAttributes(%PARAM_ATT'
+'RIBUTE%));'#13#10#9' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10#9' // <'
+'%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10#9' __Message->Write("%PARAM_NA'
+'ME%", __typeinfo(%PARAM_TYPE%), &%PARAM_NAME%, TParamAttributes(%PARAM_ATTR'
+'IBUTE%));'#13#10#9' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10#9' // <'
+'%%% END OUT_PARAMS_NO_STRIP %%%>'#13#10#9' __Message->Finalize();'#13#10#9
,' __Message->UnsetAttributes(__Transport);'#13#10#9'}'#13#10#9'else'#13#10#9
+'{'#13#10#9' throw new EIntfCastError("Critical error in Invoker: Instance '
+'does not support I%SERVICE_NAME% interface");'#13#10#9'}'#13#10' }'#13#10
+' __finally'#13#10' {'#13#10#9'// <%%% START IF_HAS_COMPLEX_TYPE %%%>'#13
+#10#9'TROObjectDisposer* __lObjectDisposer = new TROObjectDisposer(__Instanc'
+'e);'#13#10#9'try'#13#10#9'{'#13#10#9' // <%%% START PARAMS_NO_STRIP %%%>'
+#13#10#9' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10#9' __lObjectDisp'
+'oser->Add(%PARAM_NAME%);'#13#10#9' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'
+#13#10#9' // <%%% END PARAMS_NO_STRIP %%%>'#13#10#9' // <%%% START IF_RESU'
+'LT_COMPLEX %%%>'#13#10#9' __lObjectDisposer->Add(lResult);'#13#10#9' // <'
+'%%% END IF_RESULT_COMPLEX %%%>'#13#10#9'}'#13#10#9'__finally'#13#10#9'{'#13
+#10#9' delete __lObjectDisposer;'#13#10#9'}'#13#10#9'// <%%% END IF_HAS_COM'
+'PLEX_TYPE %%%>'#13#10' }'#13#10'}'#13#10#13#10'// <%%% END FUNCTION_OPERAT'
+'IONS %%%>'#13#10'// <%%% START PROCEDURE_OPERATIONS %%%>'#13#10'void __fast'
+'call T%SERVICE_NAME%_Invoker::Invoke_%OPERATION_NAME%('#13#10#9#9'const Sys'
+'tem::_di_IInterface __Instance,'#13#10#9#9'const Uroclientintf::_di_IROMess'
+'age __Message,'#13#10#9#9'const Uroclientintf::_di_IROTransport __Transport'
+','#13#10#9#9'/* out */ Uroserverintf::TROResponseOptions& __oResponseOption'
+'s)'#13#10'{'#13#10'// virtual void __fastcall %OPERATION_NAME%('#13#10'// <'
+'%%% START PARAMS %%%>'#13#10'// <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10
+'// %PARAM_FRONT_MODIFIER% %PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM_NAME%'
+','#13#10'// <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10'// <%%% START IF_PARA'
+'M_TYPE_COMPLEX %%%>'#13#10'// %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM'
+'_BACK_MODIFIER% %PARAM_NAME%,'#13#10'// <%%% END IF_PARAM_TYPE_COMPLEX %%%>'
+#13#10'// <%%% END PARAMS %%%>'#13#10'// );'#13#10#13#10' // <%%% START P'
+'ARAMS_NO_STRIP %%%>'#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10
+' %PARAM_TYPE% %PARAM_NAME%;'#13#10' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>'
+#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' %PARAM_TYPE%* %PA'
+'RAM_NAME%;'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%%'
+' END PARAMS_NO_STRIP %%%>'#13#10' try'#13#10' {'#13#10#9'_di_I%SERVICE_NA'
+'ME% __%SERVICE_NAME%Instance;'#13#10#9'if (__Instance->Supports(__%SERVICE_'
+'NAME%Instance))'#13#10#9'{'#13#10#9' // <%%% START IN_PARAMS_NO_STRIP %%%>'
+#13#10#9' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10#9' __Message->Rea'
+'d("%PARAM_NAME%", __Get%PARAM_TYPE%Info, &%PARAM_NAME%, TParamAttributes(%P'
+'ARAM_ATTRIBUTE%));'#13#10#9' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10#9
+' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10#9' __Message->Read("%PAR'
+'AM_NAME%", __typeinfo(%PARAM_TYPE%), &%PARAM_NAME%, TParamAttributes(%PARAM'
+'_ATTRIBUTE%));'#13#10#9' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10#9' '
+' // <%%% END IN_PARAMS_NO_STRIP %%%>'#13#10#13#10#9' __%SERVICE_NAME%Insta'
+'nce->%OPERATION_NAME%('#13#10#9#9#9#9#9#9#9#9' // <%%% START PARAMS %%%>'
+#13#10#9#9#9#9#9#9#9#9' %PARAM_NAME%,'#13#10#9#9#9#9#9#9#9#9' // <%%% END '
+'PARAMS %%%>'#13#10#9#9#9#9#9#9#9#9' );'#13#10#13#10#9' __Message->Initial'
+'izeResponseMessage(__Transport, "%LIBRARY_NAME%", "%SERVICE_NAME%", "%OPERA'
+'TION_NAME%Response");'#13#10#9' // <%%% START OUT_PARAMS_NO_STRIP %%%>'#13
+#10#9' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10#9' __Message->Write('
+'"%PARAM_NAME%", __Get%PARAM_TYPE%Info, &%PARAM_NAME%, TParamAttributes(%PAR'
+'AM_ATTRIBUTE%));'#13#10#9' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10#9
+' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10#9' __Message->Write("%PA'
+'RAM_NAME%", __typeinfo(%PARAM_TYPE%), &%PARAM_NAME%, TParamAttributes(%PARA'
+'M_ATTRIBUTE%));'#13#10#9' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10#9
+' // <%%% END OUT_PARAMS_NO_STRIP %%%>'#13#10#9' __Message->Finalize();'#13
+#10#9' __Message->UnsetAttributes(__Transport);'#13#10#9' // <%%% START IF'
+'_NO_OUT_PARAMS %%%>'#13#10#13#10#9' __oResponseOptions = TROResponseOption'
+'s() << roNoResponse;'#13#10#9' // <%%% END IF_NO_OUT_PARAMS %%%>'#13#10#9
+'}'#13#10#9'else'#13#10#9'{'#13#10#9' throw new EIntfCastError("Critical er'
+'ror in Invoker: Instance does not support %SERVICE_NAME% interface");'#13#10
+#9'}'#13#10' }'#13#10' __finally'#13#10' {'#13#10#9'// <%%% START IF_HAS_'
+'COMPLEX_TYPE %%%>'#13#10#9'TROObjectDisposer* __lObjectDisposer = new TROOb'
+'jectDisposer(__Instance);'#13#10#9'try'#13#10#9'{'#13#10#9' // <%%% START '
+'PARAMS_NO_STRIP %%%>'#13#10#9' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13
+#10#9' __lObjectDisposer->Add(%PARAM_NAME%);'#13#10#9' // <%%% END IF_PARA'
+'M_TYPE_COMPLEX %%%>'#13#10#9' // <%%% END PARAMS_NO_STRIP %%%>'#13#10#9'}'
+#13#10#9'__finally'#13#10#9'{'#13#10#9' delete __lObjectDisposer;'#13#10#9
+'}'#13#10#9'// <%%% END IF_HAS_COMPLEX_TYPE %%%>'#13#10' }'#13#10'}'#13#10
,'// <%%% END PROCEDURE_OPERATIONS %%%>'#13#10'// <%%% END SERVICES %%%>'#13
+#10#13#10
]);
LazarusResources.Add('TEMPLATE_INVK_H','RCDATA',[
'// %UNIT_NAME%'#13#10'//'#13#10'/*------------------------------------------'
+'---------------------------------}'#13#10'{ This unit was automatically gen'
+'erated by the RemObjects SDK after reading }'#13#10'{ the RODL file associ'
+'ated with this project. }'#13#10'{ '
+' }'#13#10
+'{ Do not modify this unit manually, or your changes will be lost when this '
+' }'#13#10'{ unit is regenerated the next time you compile the project. '
+' }'#13#10'{----------------------------------------------------'
+'-----------------------*/'#13#10#13#10'#ifndef %UNIT_NAME%H'#13#10'#define '
+'%UNIT_NAME%H'#13#10#13#10'#pragma delphiheader begin'#13#10'#pragma option '
+'push'#13#10'#pragma option -w- // All warnings off'#13#10'#pragma opti'
+'on -Vx // Zero-length empty class member functions'#13#10'#pragma pack'
+'(push,8)'#13#10#13#10'#include <System.hpp>'#9#9#9' // Pascal unit'#13#10
+'#include <Uroserver.hpp>'#9' // Pascal unit'#13#10'// <%%% START REQUIRE'
+'D_UNITS %%%>'#13#10'#include <%REQUIRED_UNIT_NAME%.hpp>'#13#10'// <%%% END '
+'REQUIRED_UNITS %%%>'#13#10#13#10'#include "%LIBRARY_NAME%_Intf.h"'#13#10#13
+#10'namespace %NAMESPACE_NAME%'#13#10'{'#13#10'//-- type declarations ------'
+'-------------------------------------------------'#13#10'typedef Classes::T'
+'SeekOrigin TSeekOrigin; // Fake declaration '#13#10#13#10'// <%%% START S'
+'ERVICES %%%>'#13#10'class DELPHICLASS T%SERVICE_NAME%_Invoker : public TROI'
+'nvoker'#13#10'{'#13#10' typedef Uroserver::TROInvoker inherited;'#13#10#13
+#10' __published:'#13#10' // <%%% START FUNCTION_OPERATIONS %%%>'#13#10
+' void __fastcall Invoke_%OPERATION_NAME%('#13#10' const System::_'
+'di_IInterface __Instance,'#13#10' const Uroclientintf::_di_IROMessag'
+'e __Message,'#13#10' const Uroclientintf::_di_IROTransport __Transpo'
+'rt,'#13#10' /* out */ Uroserverintf::TROResponseOptions& __oResponse'
+'Options);'#13#10' // <%%% END FUNCTION_OPERATIONS %%%>'#13#10' // <%%'
+'% START PROCEDURE_OPERATIONS %%%>'#13#10' void __fastcall Invoke_%OPERAT'
+'ION_NAME%('#13#10' const System::_di_IInterface __Instance,'#13#10' '
+' const Uroclientintf::_di_IROMessage __Message,'#13#10' const '
+'Uroclientintf::_di_IROTransport __Transport,'#13#10' /* out */ Urose'
+'rverintf::TROResponseOptions& __oResponseOptions);'#13#10' // <%%% END P'
+'ROCEDURE_OPERATIONS %%%>'#13#10' public:'#13#10#9'#pragma option push -w-i'
+'nl'#13#10#9'/* TROInvoker.Create */ inline __fastcall virtual T%SERVICE_NAM'
+'E%_Invoker(): Uroserver::TROInvoker() {}'#13#10#9'#pragma option pop'#13#10
+#9'#pragma option push -w-inl'#13#10#9'/* TROInvoker.Destroy */ inline __fas'
+'tcall virtual ~T%SERVICE_NAME%_Invoker() {}'#13#10#9'#pragma option pop'#13
+#10#13#10' protected:'#13#10' private:'#13#10'};'#13#10'// <%%% END SERVIC'
+'ES %%%>'#13#10#13#10'}'#9'// namespace %NAMESPACE_NAME%'#13#10'using namesp'
+'ace %NAMESPACE_NAME%;'#13#10'#pragma pack(pop)'#13#10'#pragma option pop'#13
+#10'#pragma delphiheader end.'#13#10'//-- end H ----------------------------'
+'------------------------------------'#13#10'#endif'#9'// %UNIT_NAME%H'#13#10
+#13#10
]);
LazarusResources.Add('TEMPLATE_IMPL_CPP','RCDATA',[
'// <%%% START SERVICES %%%>'#13#10'// unit %UNIT_NAME%'#13#10'//'#13#10'/*--'
+'-------------------------------------------------------------------------}'
+#13#10'{ This unit was automatically generated by the RemObjects SDK after r'
+'eading }'#13#10'{ the RODL file associated with this project . '
+' }'#13#10'{ '
+' }'#13#10'{ Modify this unit to provide implem'
+'entation for your service. */'#13#10#13#10'// Interface of %LI'
+'BRARY_NAME%'#13#10'#include "%LIBRARY_NAME%_Intf.h"'#13#10#13#10'// Our hea'
+'der file'#13#10'#include "%UNIT_NAME%.h"'#13#10#13#10'// Invoker interface'
+#13#10'#include "%LIBRARY_NAME%_Invk.h"'#13#10#13#10'// <%%% START IF_DATA_M'
+'ODULE %%%>'#13#10'#pragma link "Uroremotedatamodule"'#13#10'// <%%% END IF_'
+'DATA_MODULE %%%>'#13#10'#pragma link "Uroserver"'#13#10#13#10'// <%%% START'
+' IF_DATA_MODULE %%%>'#13#10'//---------------------------------------------'
+'------------------------------'#13#10'#pragma package(smart_init)'#13#10'#p'
+'ragma resource "*.dfm" '#13#10'T%SERVICE_NAME% *%SERVICE_NAME%;'#13#10'/'
+'/--------------------------------------------------------------------------'
+'-'#13#10'// <%%% END IF_DATA_MODULE %%%>'#13#10'void __fastcall Create_%SER'
+'VICE_NAME%(/*out*/ _di_IInterface& anInstance)'#13#10'{'#13#10' anInstance'
+' = new T%SERVICE_NAME%('#13#10' // <%%% START IF_DATA_MODULE %%%>'#13#10
+' NULL'#13#10' // <%%% END IF_DATA_MODULE %%%>'#13#10' )->operator '
+'IROObjectRetainer *();'#13#10'}'#13#10#13#10'// %SERVICE_NAME%'#13#10'// <%'
+'%% START IF_DATA_MODULE %%%>'#13#10#13#10'__fastcall T%SERVICE_NAME%::T%SER'
+'VICE_NAME%(Classes::TComponent* aOwner)'#13#10' : TRORemoteDataModule(aO'
+'wner)'#13#10'{'#13#10'}'#13#10'// <%%% END IF_DATA_MODULE %%%>'#13#10'// <%'
+'%% START FUNCTION_OPERATIONS %%%>'#13#10'// <%%% START IF_RESULT_SIMPLE %%%'
+'>'#13#10'%OPERATION_RESULT% __fastcall T%SERVICE_NAME%::%OPERATION_NAME%('
+#13#10'// <%%% END IF_RESULT_SIMPLE %%%>'#13#10'// <%%% START IF_RESULT_COMP'
+'LEX %%%>'#13#10'%OPERATION_RESULT%* __fastcall T%SERVICE_NAME%::%OPERATION_'
+'NAME%('#13#10'// <%%% END IF_RESULT_COMPLEX %%%>'#13#10' // <%%% START PAR'
+'AMS %%%>'#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10' %PARAM_F'
+'RONT_MODIFIER% %PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13#10' //'
+' <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_PARAM_TYPE_CO'
+'MPLEX %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MODIFI'
+'ER% %PARAM_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' '
+'// <%%% END PARAMS %%%>'#13#10' )'#13#10'{'#13#10' // Insert your impleme'
+'ntation code for %SERVICE_NAME%::%OPERATION_NAME% here'#13#10'}'#13#10'// <'
+'%%% END FUNCTION_OPERATIONS %%%>'#13#10#13#10'// <%%% START PROCEDURE_OPERA'
+'TIONS %%%>'#13#10'void __fastcall T%SERVICE_NAME%::%OPERATION_NAME%('#13#10
+' // <%%% START PARAMS %%%>'#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%'
+'>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM'
+'_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10' // <%%% STA'
+'RT IF_PARAM_TYPE_COMPLEX %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE%*'
+' %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_COM'
+'PLEX %%%>'#13#10' // <%%% END PARAMS %%%>'#13#10' )'#13#10'{'#13#10' // '
+'Insert your implementation code for %SERVICE_NAME%::%OPERATION_NAME% here'
+#13#10'}'#13#10'// <%%% END PROCEDURE_OPERATIONS %%%>'#13#10#13#10'void __in'
+'itialization_%UNIT_NAME%();'#13#10#13#10'#pragma startup __initialization_%'
+'UNIT_NAME%'#13#10#13#10'void __initialization_%UNIT_NAME%()'#13#10'{'#13#10
+' new TROClassFactory("%SERVICE_NAME%", Create_%SERVICE_NAME%, __classid(T%'
+'SERVICE_NAME%_Invoker));'#13#10'}'#13#10#13#10
]);
LazarusResources.Add('TEMPLATE_IMPL_H','RCDATA',[
'// <%%% START SERVICES %%%>'#13#10'// unit %UNIT_NAME%'#13#10'//'#13#10'/*--'
+'-------------------------------------------------------------------------}'
+#13#10'{ This unit was automatically generated by the RemObjects SDK after r'
+'eading }'#13#10'{ the RODL file associated with this project . '
+' }'#13#10'{ '
+' }'#13#10'{ Do not modify this unit manually, '
+'or your changes will be lost when this }'#13#10'{ unit is regenerated the'
+' next time you compile your project. }'#13#10'{ '
+' }'#13#10'{ M'
+'odify the %UNIT_NAME%.cpp file to change the implementation details of }'
+#13#10'{ this service. '
+' }'#13#10'{---------------------------------------------------------'
+'------------------*/'#13#10#13#10'#ifndef %UNIT_NAME%H'#13#10'#define %UNIT'
+'_NAME%H'#13#10#13#10'#include <System.hpp>'#9' // Pascal unit'#13
+#10'// <%%% START IF_DATA_MODULE %%%>'#13#10'#include <Classes.hpp>'#13#10'#'
+'include <Controls.hpp>'#13#10'#include <StdCtrls.hpp>'#13#10'#include <Form'
+'s.hpp>'#13#10'#include <uRORemoteDataModule.hpp> // Pascal unit'#13#10'// '
+'<%%% END IF_DATA_MODULE %%%>'#13#10'#include <Uroserver.hpp> // Pasc'
+'al unit'#13#10'#include "%LIBRARY_NAME%_intf.h"'#13#10#13#10'// T%SERVICE_N'
+'AME%'#13#10'class T%SERVICE_NAME% : public %SERVICE_ANCESTOR_NAME%, I%SERVI'
+'CE_NAME% // implements I%SERVICE_NAME%'#13#10'{'#13#10' typedef %SERVICE_'
+'ANCESTOR_NAME% inherited;'#13#10#13#10'// <%%% START IF_DATA_MODULE %%%>'#13
+#10'__published: // this line is required or the IDE will consider the dec'
+'laration of the datamodule is incorrect.'#9#13#10'// <%%% END IF_DATA_MODUL'
+'E %%%>'#13#10'protected:'#13#10' // I%SERVICE_NAME% methods'#13#10' // <%'
+'%% START FUNCTION_OPERATIONS %%%>'#13#10' // <%%% START IF_RESULT_SIMPLE %'
+'%%>'#13#10' virtual %OPERATION_RESULT% __fastcall %OPERATION_NAME%('#13#10
+' // <%%% END IF_RESULT_SIMPLE %%%>'#13#10' // <%%% START IF_RESULT_COMPLE'
+'X %%%>'#13#10' virtual %OPERATION_RESULT%* __fastcall %OPERATION_NAME%('#13
+#10' // <%%% END IF_RESULT_COMPLEX %%%>'#13#10' // <%%% START PARAMS %%%'
+'>'#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10' %PARAM_FRON'
+'T_MODIFIER% %PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13#10' // '
+'<%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_PARAM_TYPE_C'
+'OMPLEX %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MOD'
+'IFIER% %PARAM_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13
+#10' // <%%% END PARAMS %%%>'#13#10' );'#13#10' // <%%% END FUNCTION_'
+'OPERATIONS %%%>'#13#10' // <%%% START PROCEDURE_OPERATIONS %%%>'#13#10' v'
+'irtual void __fastcall %OPERATION_NAME%('#13#10' // <%%% START PARAMS %%'
+'%>'#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10' %PARAM_FRO'
+'NT_MODIFIER% %PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13#10' //'
+' <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_PARAM_TYPE_'
+'COMPLEX %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MO'
+'DIFIER% %PARAM_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13
+#10' // <%%% END PARAMS %%%>'#13#10' );'#13#10' // <%%% END PROCEDURE'
+'_OPERATIONS %%%>'#13#10#13#10'public:'#13#10' // <%%% START IF_DATA_MODULE'
+' %%%>'#13#10' __fastcall T%SERVICE_NAME%(Classes::TComponent* aOwner);'#13
+#10#13#10' // <%%% END IF_DATA_MODULE %%%>'#13#10' virtual HRESULT __stdca'
+'ll QueryInterface(const GUID& IID, void **Obj) {'#13#10' return inherite'
+'d::QueryInterface(IID, (void *)Obj); }'#13#10#13#10' virtual ULONG __stdca'
+'ll AddRef() {'#13#10' return inherited::_AddRef(); }'#13#10#13#10' vir'
+'tual ULONG __stdcall Release() {'#13#10' return inherited::_Release(); }'
+#13#10'};'#13#10'// <%%% START IF_DATA_MODULE %%%>'#13#10'//----------------'
+'-----------------------------------------------------------'#13#10'extern P'
+'ACKAGE T%SERVICE_NAME% *%SERVICE_NAME%;'#13#10'//--------------------------'
+'-------------------------------------------------'#13#10'// <%%% END IF_DAT'
+'A_MODULE %%%>'#13#10#13#10'#endif'#9'// %UNIT_NAME%H'#13#10#13#10
]);
LazarusResources.Add('TEMPLATE_ASYNC_CPP','RCDATA',[
'// %UNIT_NAME%'#13#10'//'#13#10'/*------------------------------------------'
+'---------------------------------}'#13#10'{ This unit was automatically gen'
+'erated by the RemObjects SDK after reading }'#13#10'{ the RODL file associ'
+'ated with this project. }'#13#10'{ '
+' }'#13#10
+'{ Do not modify this unit manually, or your changes will be lost when this '
+' }'#13#10'{ unit is regenerated the next time you compile the project. '
+' }'#13#10'{----------------------------------------------------'
+'-----------------------*/'#13#10#13#10'// Implementation of %UNIT_NAME%'#13
+#10'#include "%UNIT_NAME%.h"'#13#10#13#10'// <%%% START SERVICES %%%>'#13#10
+'// <%%% START FUNCTION_OPERATIONS %%%>'#13#10'void __fastcall T%SERVICE_NAM'
+'E%_AsyncProxy::Invoke_%OPERATION_NAME%('#13#10' // <%%% START IN'
+'_PARAMS %%%>'#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13
+#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE% %PARAM_BACK_MODIFIER% %P'
+'ARAM_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10
+' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' %PA'
+'RAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13#10
+' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%'
+'%% END IN_PARAMS %%%>'#13#10' )'#13#10'{'#13#10' __AssertProxyN'
+'otBusy("%OPERATION_NAME%");'#13#10#13#10' __Message->InitializeRequestMess'
+'age(__TransportChannel, "%LIBRARY_NAME%", __InterfaceName, "%OPERATION_NAME'
+'%");'#13#10' // <%%% START IN_PARAMS_NO_STRIP %%%>'#13#10' // <%%% START '
+'IF_PARAM_TYPE_SIMPLE %%%>'#13#10' __Message->Write("%PARAM_NAME%", __Get%P'
+'ARAM_TYPE%Info, &%PARAM_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%));'#13#10
+' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_PARAM_TYP'
+'E_COMPLEX %%%>'#13#10' __Message->Write("%PARAM_NAME%", __typeinfo(%PARAM_'
+'TYPE%), %PARAM_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%));'#13#10' // <%%'
+'% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%% END IN_PARAMS_NO_STRIP %%'
+'%>'#13#10#13#10' __DispatchAsyncRequest("%OPERATION_NAME%", __Message);'#13
+#10'}'#13#10#13#10'// <%%% START IF_RESULT_SIMPLE %%%>'#13#10'%OPERATION_RES'
+'ULT% __fastcall T%SERVICE_NAME%_AsyncProxy::Retrieve_%OPERATION_NAME%('#13
+#10'// <%%% END IF_RESULT_SIMPLE %%%>'#13#10'// <%%% START IF_RESULT_COMPLEX'
+' %%%>'#13#10'%OPERATION_RESULT%* __fastcall T%SERVICE_NAME%_AsyncProxy::Ret'
+'rieve_%OPERATION_NAME%('#13#10'// <%%% END IF_RESULT_COMPLEX %%%>'#13#10' '
+' // <%%% START OUT_PARAMS %%%>'#13#10' // <%%% START IF'
+'_PARAM_TYPE_SIMPLE %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TY'
+'PE% %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13#10' // <%%% END IF_P'
+'ARAM_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLE'
+'X %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_'
+'MODIFIER% %PARAM_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_COMPLE'
+'X %%%>'#13#10' // <%%% END OUT_PARAMS %%%>'#13#10' )'
+#13#10'{'#13#10' // <%%% START IF_RESULT_SIMPLE %%%>'#13#10' %OPERATION_RE'
+'SULT% result;'#13#10' // <%%% END IF_RESULT_SIMPLE %%%>'#13#10' // <%%% S'
+'TART IF_RESULT_COMPLEX %%%>'#13#10' %OPERATION_RESULT%* result;'#13#10' /'
+'/ <%%% END IF_RESULT_COMPLEX %%%>'#13#10#13#10' // <%%% START OUT_PARAMS_N'
+'O_STRIP %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' %PA'
+'RAM_NAME% = NULL;'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' '
+'// <%%% END OUT_PARAMS_NO_STRIP %%%>'#13#10' // <%%% START IF_RESULT_COMPL'
+'EX %%%>'#13#10' result = NULL;'#13#10' // <%%% END IF_RESULT_COMPLEX %%%>'
+#13#10#13#10' TStream* __response = __RetrieveAsyncResponse("%OPERATION_NAM'
+'E%");'#13#10' __Message->ReadFromStream(__response);'#13#10#13#10' // <%%'
+'% START IF_RESULT_SIMPLE %%%>'#13#10' __Message->Read("Result", __Get%OPER'
+'ATION_RESULT%Info, &result, TParamAttributes(%OPERATION_RESULT_ATTRIBUTE%))'
+';'#13#10' // <%%% END IF_RESULT_SIMPLE %%%>'#13#10' // <%%% START IF_RESU'
+'LT_COMPLEX %%%>'#13#10' __Message->Read("Result", __typeinfo(%OPERATION_RE'
+'SULT%), result, TParamAttributes(%OPERATION_RESULT_ATTRIBUTE%));'#13#10' /'
+'/ <%%% END IF_RESULT_COMPLEX %%%>'#13#10' // <%%% START OUT_PARAMS_NO_STRI'
+'P %%%>'#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10' __Message-'
+'>Read("%PARAM_NAME%", __Get%PARAM_TYPE%Info, &%PARAM_NAME%, TParamAttribute'
+'s(%PARAM_ATTRIBUTE%));'#13#10' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10
+' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' __Message->Read("%PARAM'
+'_NAME%", __typeinfo(%PARAM_TYPE%), %PARAM_NAME%, TParamAttributes(%PARAM_AT'
+'TRIBUTE%));'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%'
+'% END OUT_PARAMS_NO_STRIP %%%>'#13#10#13#10' delete __response;'#13#10' r'
,'eturn result;'#13#10'}'#13#10#13#10'// <%%% END FUNCTION_OPERATIONS %%%>'#13
+#10'// <%%% START PROCEDURE_OPERATIONS %%%>'#13#10'void _fastcall T%SERVICE_'
+'NAME%_AsyncProxy::Invoke_%OPERATION_NAME%('#13#10' // <%%% START'
+' IN_PARAMS %%%>'#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'
+#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE% %PARAM_BACK_MODIFIER%'
+' %PARAM_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13
+#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' '
+'%PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13
+#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' //'
+' <%%% END IN_PARAMS %%%>'#13#10' )'#13#10'{'#13#10' __AssertPro'
+'xyNotBusy("%OPERATION_NAME%");'#13#10' TStream* __request = new TMemoryStr'
+'eam();'#13#10#13#10' __Message->InitializeRequestMessage(__TransportChanne'
+'l, "%LIBRARY_NAME%", __InterfaceName, "%OPERATION_NAME%");'#13#10' // <%%%'
+' START IN_PARAMS_NO_STRIP %%%>'#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE '
+'%%%>'#13#10' __Message->Write("%PARAM_NAME%", __Get%PARAM_TYPE%Info, &%PAR'
+'AM_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%));'#13#10' // <%%% END IF_PAR'
+'AM_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10
+' __Message->Write("%PARAM_NAME%", __typeinfo(%PARAM_TYPE%), %PARAM_NAME%, '
+'TParamAttributes(%PARAM_ATTRIBUTE%));'#13#10' // <%%% END IF_PARAM_TYPE_CO'
+'MPLEX %%%>'#13#10' // <%%% END IN_PARAMS_NO_STRIP %%%>'#13#10' __Message-'
+'>Finalize();'#13#10#13#10' __Message->WriteToStream(__request);'#13#10' _'
+'_DispatchAsyncRequest("%OPERATION_NAME%", __request, False);'#13#10'}'#13#10
+#13#10'// <%%% START IF_OUT_PARAMS %%%>'#13#10'void _fastcall T%SERVICE_NAME'
+'%_AsyncProxy::Retrieve_%OPERATION_NAME%('#13#10' // <%%% START O'
+'UT_PARAMS %%%>'#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'
+#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE% %PARAM_BACK_MODIFIER%'
+' %PARAM_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13
+#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' '
+'%PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13
+#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' //'
+' <%%% END OUT_PARAMS %%%>'#13#10' )'#13#10'{'#13#10' // <%%% ST'
+'ART OUT_PARAMS_NO_STRIP %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %'
+'%%>'#13#10' %PARAM_NAME% = NULL;'#13#10' // <%%% END IF_PARAM_TYPE_COMPLE'
+'X %%%>'#13#10' // <%%% END OUT_PARAMS_NO_STRIP %%%>'#13#10#13#10' TStream'
+'* __response = __RetrieveAsyncResponse("%OPERATION_NAME%");'#13#10' __Mess'
+'age->ReadFromStream(__response);'#13#10#13#10' // <%%% START OUT_PARAMS_NO'
+'_STRIP %%%>'#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10' __Mes'
+'sage->Read("%PARAM_NAME%", __Get%PARAM_TYPE%Info, &%PARAM_NAME%, TParamAttr'
+'ibutes(%PARAM_ATTRIBUTE%));'#13#10' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>'
+#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' __Message->Read("'
+'%PARAM_NAME%", __typeinfo(%PARAM_TYPE%), %PARAM_NAME%, TParamAttributes(%PA'
+'RAM_ATTRIBUTE%));'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' '
+'// <%%% END OUT_PARAMS_NO_STRIP %%%>'#13#10#13#10' delete __response;'#13
+#10'}'#13#10#13#10'// <%%% END IF_OUT_PARAMS %%%>'#13#10'// <%%% END PROCEDU'
+'RE_OPERATIONS %%%>'#13#10'// <%%% END SERVICES %%%>'#13#10
]);
LazarusResources.Add('TEMPLATE_ASYNC_H','RCDATA',[
'// %UNIT_NAME%'#13#10'//'#13#10'/*------------------------------------------'
+'---------------------------------}'#13#10'{ This unit was automatically gen'
+'erated by the RemObjects SDK after reading }'#13#10'{ the RODL file associ'
+'ated with this project. }'#13#10'{ '
+' }'#13#10
+'{ Do not modify this unit manually, or your changes will be lost when this '
+' }'#13#10'{ unit is regenerated the next time you compile the project. '
+' }'#13#10'{----------------------------------------------------'
+'-----------------------*/'#13#10#13#10'#ifndef %UNIT_NAME%H'#13#10'#define '
+'%UNIT_NAME%H'#13#10#13#10'#pragma delphiheader begin'#13#10'#pragma option '
+'push'#13#10'#pragma option -w- '#9#9' // All warnings off'#13#10'#pra'
+'gma option -Vx '#9#9' // Zero-length empty class member functions'#13
+#10'#pragma pack(push,8)'#13#10#13#10'#include <System.hpp>'#9#9#9' // Pa'
+'scal unit'#13#10'#include <Uroasync.hpp>'#13#10'// <%%% START REQUIRED_UNIT'
+'S %%%>'#13#10'#include <%REQUIRED_UNIT_NAME%.hpp>'#13#10'// <%%% END REQUIR'
+'ED_UNITS %%%>'#13#10'#include "%LIBRARY_NAME%_Intf.h"'#13#10#13#10#13#10'na'
+'mespace %NAMESPACE_NAME%'#13#10'{'#13#10'// Forward declarations'#13#10'// '
+'<%%% START SERVICES %%%>'#13#10'__interface I%SERVICE_NAME%_Async; // = int'
+'erface;'#13#10'class DELPHICLASS Co%SERVICE_NAME%_Async;'#13#10'class DELPH'
+'ICLASS T%SERVICE_NAME%_AsyncProxy;'#13#10'// <%%% END SERVICES %%%>'#13#10
+#13#10'// <%%% START SERVICES %%%>'#13#10'__interface I%SERVICE_NAME%_Async;'
+#13#10'typedef System::DelphiInterface<I%SERVICE_NAME%_Async> _di_I%SERVICE_'
+'NAME%_Async;'#13#10'__interface INTERFACE_UUID("%SERVICE_UID%") I%SERVICE_N'
+'AME%_Async : public %SERVICE_ANCESTOR_NAME%'#13#10'{'#13#10'public:'#13#10
+' // <%%% START FUNCTION_OPERATIONS %%%>'#13#10' virtual void __fastcall I'
+'nvoke_%OPERATION_NAME%('#13#10' // <%%% START IN_PARAMS %%%>'
+#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10' '
+' %PARAM_FRONT_MODIFIER% %PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM_NAME'
+'%,'#13#10' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10' '
+' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' %PARA'
+'M_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13#10
+' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' /'
+'/ <%%% END IN_PARAMS %%%>'#13#10' ) = 0; // pure virtual funct'
+'ion - interface only'#13#10' // <%%% START IF_RESULT_SIMPLE %%%>'#13#10' '
+'virtual %OPERATION_RESULT% __fastcall Retrieve_%OPERATION_NAME%('#13#10' /'
+'/ <%%% END IF_RESULT_SIMPLE %%%>'#13#10' // <%%% START IF_RESULT_COMPLEX %'
+'%%>'#13#10' virtual %OPERATION_RESULT%* __fastcall Retrieve_%OPERATION_NAM'
+'E%('#13#10' // <%%% END IF_RESULT_COMPLEX %%%>'#13#10' // <%%'
+'% START OUT_PARAMS %%%>'#13#10' // <%%% START IF_PARAM_TYPE_SI'
+'MPLE %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE% %PARAM_B'
+'ACK_MODIFIER% %PARAM_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_'
+'SIMPLE %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'
+#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MODIFI'
+'ER% %PARAM_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%'
+'%>'#13#10' // <%%% END OUT_PARAMS %%%>'#13#10' ) '
+'= 0; // pure virtual function - interface only'#13#10' // <%%% END FUNCTIO'
+'N_OPERATIONS %%%>'#13#10#13#10' // <%%% START PROCEDURE_OPERATIONS %%%>'#13
+#10' virtual void _fastcall Invoke_%OPERATION_NAME%('#13#10' /'
+'/ <%%% START IN_PARAMS %%%>'#13#10' // <%%% START IF_PARAM_TYP'
+'E_SIMPLE %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE% %PAR'
+'AM_BACK_MODIFIER% %PARAM_NAME%,'#13#10' // <%%% END IF_PARAM_T'
+'YPE_SIMPLE %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%'
+'%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MO'
+'DIFIER% %PARAM_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_COMPLE'
+'X %%%>'#13#10' // <%%% END IN_PARAMS %%%>'#13#10' '
+' ) = 0; // pure virtual function - interface only'#13#10' // <%%% START IF'
+'_OUT_PARAMS %%%>'#13#10' virtual void _fastcall Retrieve_%OPERATION_NAME%('
+#13#10' // <%%% START OUT_PARAMS %%%>'#13#10' // <'
+'%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10' %PARAM_FRONT_MODIF'
+'IER% %PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13#10' '
+'// <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF'
+'_PARAM_TYPE_COMPLEX %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM'
+'_TYPE%* %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13#10' // <%%% EN'
+'D IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%% END OUT_PARAMS %%'
,'%>'#13#10' ) = 0; // pure virtual function - interface only'#13
+#10' // <%%% END IF_OUT_PARAMS %%%>'#13#10' // <%%% END PROCEDURE_OPERATIO'
+'NS %%%>'#13#10'};'#13#10#13#10'// Co%SERVICE_NAME%_Async'#13#10'class DELPH'
+'ICLASS Co%SERVICE_NAME%_Async;'#13#10'class Co%SERVICE_NAME%_Async : public'
+' System::TObject'#13#10'{'#13#10#9'typedef System::TObject inherited;'#13#10
+#13#10'public:'#13#10#9'static _di_I%SERVICE_NAME%_Async __fastcall Create(c'
+'onst Uroclientintf::_di_IROMessage aMessage,'#13#10' '
+' Uroclientintf::_di_IROTransportChannel aTransportChannel)'#13#10' {'#13#10
+' _di_I%SERVICE_NAME%_Async result;'#13#10' T%SERVICE_NAME%_AsyncProxy'
+'* proxy = new T%SERVICE_NAME%_AsyncProxy(aMessage, aTransportChannel);'#13
+#10' if (proxy->QueryInterface(I%SERVICE_NAME%_IID, reinterpret_cast<void'
+'**>(&result)) != S_OK)'#13#10' {'#13#10' delete proxy;'#13#10' '
+' throw EIntfCastError::EIntfCastError("I%SERVICE_NAME%_Async not supported"'
+');'#13#10' }'#13#10' return result;'#13#10' };'#13#10#13#10' static'
+' _di_I%SERVICE_NAME%_Async __fastcall Create(Uroclient::TROMessage* aMessag'
+'e,'#13#10' Uroclient::TROTransportChannel *aTranspor'
+'tChannel)'#13#10' {'#13#10' _di_IROMessage __Message;'#13#10' _di_IR'
+'OTransportChannel __TransportChannel;'#13#10#13#10' if (aMessage->GetInt'
+'erface(__Message))'#13#10' {'#13#10' if (aTransportChannel->GetInte'
+'rface(__TransportChannel))'#13#10' return Create(__Message, __Transp'
+'ortChannel);'#13#10' else'#13#10' throw EIntfCastError::EIntfCa'
+'stError("IROTransportChannel not supported");'#13#10' }'#13#10' else'
+#13#10' {'#13#10' throw EIntfCastError::EIntfCastError("IROMessage n'
+'ot supported");'#13#10' }'#13#10' };'#13#10'};'#13#10#13#10'class DELPH'
+'ICLASS T%SERVICE_NAME%_AsyncProxy;'#13#10'class T%SERVICE_NAME%_AsyncProxy '
+': public %SERVICE_PROXY_ANCESTOR_NAME%, I%SERVICE_NAME%_Async'#13#10'{'#13
+#10#9'typedef %SERVICE_PROXY_ANCESTOR_NAME% inherited;'#13#10#9#13#10'protec'
+'ted:'#13#10#9'virtual AnsiString __fastcall __GetInterfaceName()'#13#10' '
+' { return "%SERVICE_NAME%"; }'#13#10#13#10' // <%%% START FUNCTION_OPERATI'
+'ONS %%%>'#13#10' virtual void __fastcall Invoke_%OPERATION_NAME%('#13#10' '
+' // <%%% START IN_PARAMS %%%>'#13#10' // <%%% STAR'
+'T IF_PARAM_TYPE_SIMPLE %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PA'
+'RAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13#10' // <%%% '
+'END IF_PARAM_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_PARAM_T'
+'YPE_COMPLEX %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* '
+'%PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13#10' // <%%% END IF_PAR'
+'AM_TYPE_COMPLEX %%%>'#13#10' // <%%% END IN_PARAMS %%%>'#13#10
+' );'#13#10' // <%%% START IF_RESULT_SIMPLE %%%>'#13#10' virt'
+'ual %OPERATION_RESULT% __fastcall Retrieve_%OPERATION_NAME%('#13#10' // <%'
+'%% END IF_RESULT_SIMPLE %%%>'#13#10' // <%%% START IF_RESULT_COMPLEX %%%>'
+#13#10' virtual %OPERATION_RESULT%* __fastcall Retrieve_%OPERATION_NAME%('
+#13#10' // <%%% END IF_RESULT_COMPLEX %%%>'#13#10' // <%%% STA'
+'RT OUT_PARAMS %%%>'#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE '
+'%%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE% %PARAM_BACK_M'
+'ODIFIER% %PARAM_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_SIMPL'
+'E %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10
+' %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MODIFIER% %P'
+'ARAM_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13
+#10' // <%%% END OUT_PARAMS %%%>'#13#10' );'#13#10
+' // <%%% END FUNCTION_OPERATIONS %%%>'#13#10#13#10' // <%%% START PROCEDU'
+'RE_OPERATIONS %%%>'#13#10' virtual void _fastcall Invoke_%OPERATION_NAME%('
+#13#10' // <%%% START IN_PARAMS %%%>'#13#10' // <%'
+'%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10' %PARAM_FRONT_MODIFI'
+'ER% %PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13#10' /'
+'/ <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_'
+'PARAM_TYPE_COMPLEX %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_'
+'TYPE%* %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13#10' // <%%% END'
+' IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%% END IN_PARAMS %%%>'
+#13#10' );'#13#10' // <%%% START IF_OUT_PARAMS %%%>'#13#10' v'
+'irtual void _fastcall Retrieve_%OPERATION_NAME%('#13#10' // <%'
+'%% START OUT_PARAMS %%%>'#13#10' // <%%% START IF_PARAM_TYPE_S'
+'IMPLE %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE% %PARAM_'
+'BACK_MODIFIER% %PARAM_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE'
+'_SIMPLE %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'
,#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MODIFI'
+'ER% %PARAM_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%'
+'%>'#13#10' // <%%% END OUT_PARAMS %%%>'#13#10' );'
+#13#10' // <%%% END IF_OUT_PARAMS %%%>'#13#10' // <%%% END PROCEDURE_OPERA'
+'TIONS %%%>'#13#10'public:'#13#10#9'#pragma option push -w-inl'#13#10#9'/* T'
+'ROProxy.Create */ inline __fastcall virtual T%SERVICE_NAME%_AsyncProxy(cons'
+'t Uroclientintf::_di_IROMessage aMessage, const Uroclientintf::_di_IROTrans'
+'portChannel aTransportChannel)/* overload */ :'#13#10' %SERVICE_PROXY_AN'
+'CESTOR_NAME%(aMessage, aTransportChannel) {}'#13#10#9'#pragma option pop'#13
+#10#9#13#10' virtual HRESULT __stdcall QueryInterface(const GUID& IID, void'
+' **Obj) {'#13#10' return inherited::QueryInterface(IID, (void *)Obj); }'
+#13#10#13#10' virtual ULONG __stdcall AddRef() {'#13#10' return inherite'
+'d::_AddRef(); }'#13#10#13#10' virtual ULONG __stdcall Release() {'#13#10
+' return inherited::_Release(); }'#13#10'};'#13#10'// <%%% END SERVICES %'
+'%%>'#13#10#13#10'}'#9'// namespace %NAMESPACE_NAME%'#13#10#13#10'using name'
+'space %NAMESPACE_NAME%;'#13#10'#pragma pack(pop)'#13#10'#pragma option pop'
+#13#10#13#10'#pragma delphiheader end.'#13#10'#endif'#9'// %UNIT_NAME%H'#13
+#10#13#10
]);
LazarusResources.Add('TEMPLATE_WRAPPER_INTF_H','RCDATA',[
'{---------------------------------------------------------------------------'
+'-}'#13#10'{ This unit was automatically generated by the RemObjects SDK aft'
+'er reading }'#13#10'{ the RODL file associated with this project . '
+' }'#13#10'{ '
+' }'#13#10'{ Do not modify this unit manual'
+'ly, or your changes will be lost when this }'#13#10'{ unit is regenerated'
+' the next time you compile the project. }'#13#10'{---------'
+'-------------------------------------------------------------------}'#13#10
+'#ifndef %UNIT_NAME%_H'#13#10'#define %UNIT_NAME%_H'#13#10#13#10'// <%%% STA'
+'RT USES %%%>'#13#10'#include "%USED_UNIT_NAME%.h"'#13#10'// <%%% END USES %'
+'%%>'#13#10#13#10'#endif'#13#10
]);
LazarusResources.Add('TEMPLATE_WRAPPER_INVK_H','RCDATA',[
'{---------------------------------------------------------------------------'
+'-}'#13#10'{ This unit was automatically generated by the RemObjects SDK aft'
+'er reading }'#13#10'{ the RODL file associated with this project . '
+' }'#13#10'{ '
+' }'#13#10'{ Do not modify this unit manual'
+'ly, or your changes will be lost when this }'#13#10'{ unit is regenerated'
+' the next time you compile the project. }'#13#10'{---------'
+'-------------------------------------------------------------------}'#13#10
+'#ifndef %UNIT_NAME%_H'#13#10'#define %UNIT_NAME%_H'#13#10#13#10'// <%%% STA'
+'RT USES %%%>'#13#10'#include "%USED_UNIT_NAME%.h"'#13#10'// <%%% END USES %'
+'%%>'#13#10#13#10'#endif'#13#10
]);
LazarusResources.Add('TEMPLATE_WRAPPER_ASYNC_H','RCDATA',[
'{---------------------------------------------------------------------------'
+'-}'#13#10'{ This unit was automatically generated by the RemObjects SDK aft'
+'er reading }'#13#10'{ the RODL file associated with this project . '
+' }'#13#10'{ '
+' }'#13#10'{ Do not modify this unit manual'
+'ly, or your changes will be lost when this }'#13#10'{ unit is regenerated'
+' the next time you compile the project. }'#13#10'{---------'
+'-------------------------------------------------------------------}'#13#10
+'#ifndef %UNIT_NAME%_H'#13#10'#define %UNIT_NAME%_H'#13#10#13#10'// <%%% STA'
+'RT USES %%%>'#13#10'#include "%USED_UNIT_NAME%.h"'#13#10'// <%%% END USES %'
+'%%>'#13#10#13#10'#endif'#13#10
]);
LazarusResources.Add('TEMPLATE_OBJC_INTF_M','RCDATA',[
'//----------------------------------------------------------------------'#10
+'// This file was automatically generated by the RemObjects SDK from a '#10
+'// RODL file associated with this project. '#10'// '
+' '
+#10'// Do not modify this file manually, or your changes will be lost when '
+#10'// it is regenerated the next time you update your RODL. '
+#10'//----------------------------------------------------------------------'
+#10#10'#include "%LIBRARY_NAME%_Intf.h"'#10#10'#pragma mark enums'#10#10'// '
+'<%%% START ENUMS %%%>'#10'NSString *%ENUM_NAME%ToString(enum %ENUM_NAME% va'
+'lue)'#10'{'#10#9'switch (value)'#10#9'{'#10#9#9' // <%%% START VALUES_NO_ST'
+'RIP %%%>'#10#9#9' case %VALUE_NAME%: return @"%VALUE_NAME%"; '
+' '#10#9#9' // <%%% END VALUES_NO_STRIP %%%>'#10#9#9' default: return [NS'
+'String stringWithFormat:@"Invalid value %u for enum %ENUM_NAME%", value];'
+#10#9'}'#10'}'#10#10'// <%%% END ENUMS %%%>'#10#10'#pragma mark structs'#10
+#10'// <%%% START STRUCTS %%%>'#10'@implementation %STRUCT_NAME%'#10#10'// <'
+'%%% START FIELDS_NO_STRIP %%%>'#10'@synthesize %FIELD_NAME%;'#10'// <%%% EN'
+'D FIELDS_NO_STRIP %%%>'#10#10'// <%%% START IF_HAS_FIELDS %%%>'#10'-(id) in'
+'it'#10'{'#10#9'self = [super init];'#10#9'return self;'#10'}'#10#10'-(void)'
+' dealloc'#10'{'#10#9'// <%%% START FIELDS_NO_STRIP %%%>'#10#9'// <%%% START'
+' IF_FIELD_TYPE_COMPLEX %%%>'#10#9'[%FIELD_NAME% release];'#10#9'// <%%% END'
+' IF_FIELD_TYPE_COMPLEX %%%>'#10#9'// <%%% END FIELDS_NO_STRIP %%%>'#10#9'[s'
+'uper dealloc];'#10'}'#10'// <%%% END IF_HAS_FIELDS %%%>'#10#10'-(void) assi'
+'gnFrom:(ROComplexType*) aSource'#10'{'#10'}'#10#10'// <%%% START IF_HAS_FIE'
+'LDS %%%>'#10'-(void)writeToMessage:(ROMessage *) aMessage withName:(NSStrin'
+'g *) aName'#10'{'#10#9'// <%%% START ENTIRE_HIERARCHY_FIELDS %%%>'#10#9'[aM'
+'essage write%FIELD_READER_WRITER%:%FIELD_NAME% withName:@"%FIELD_NAME%"];'
+#10#9'// <%%% END ENTIRE_HIERARCHY_FIELDS %%%>'#10'}'#10'-(void)readFromMess'
+'age:(ROMessage *) aMessage withName:(NSString *) aName'#10'{'#10#9'// <%%% '
+'START ENTIRE_HIERARCHY_FIELDS %%%>'#10#9'// <%%% START IF_FIELD_TYPE_COMPLE'
+'X %%%>'#10#9'[aMessage read%FIELD_READER_WRITER%:&%FIELD_NAME% withName:@"%'
+'FIELD_NAME%" asClass:[%FIELD_TYPE_NAME% class]];'#10#9'// <%%% END IF_FIELD'
+'_TYPE_COMPLEX %%%>'#10#9'// <%%% START IF_FIELD_TYPE_SIMPLE %%%>'#10#9'[aMe'
+'ssage read%FIELD_READER_WRITER%:&%FIELD_NAME% withName:@"%FIELD_NAME%"];'#10
+#9'// <%%% END IF_FIELD_TYPE_SIMPLE %%%>'#10#9'// <%%% END ENTIRE_HIERARCHY_'
+'FIELDS %%%>'#10#9'// <%%% START ENTIRE_HIERARCHY_FIELDS %%%>'#10#9'// <%%% '
+'START IF_FIELD_TYPE_COMPLEX %%%>'#10#9'[%FIELD_NAME% retain];'#10#9'// <%%%'
+' END IF_FIELD_TYPE_COMPLEX %%%>'#10#9'// <%%% END ENTIRE_HIERARCHY_FIELDS %'
+'%%>'#10'}'#10'// <%%% END IF_HAS_FIELDS %%%>'#10#10'@end'#10'// <%%% END ST'
+'RUCTS %%%>'#10#10'#pragma mark arrays'#10#10'// <%%% START ARRAYS %%%>'#10
+'@implementation %ARRAY_NAME% '#10#10'// <%%% START IF_ARRAY_TYPE_COMPLEX %%'
+'%>'#10'- (%ARRAY_TYPE%) add'#10'{'#10#9'%ARRAY_TYPE% __new = [[%ARRAY_TYPE_'
+'NAME% alloc] init];'#10#9'[super addItem:__new];'#10#9'[__new release];'#10
+#9'return __new;'#10'}'#10'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#10#10'- ('
+'void)addItem:(%ARRAY_TYPE%)object'#10'{'#10#9'// <%%% START IF_ARRAY_TYPE_C'
+'OMPLEX %%%>'#10#9'[super addItem:object];'#10#9'// <%%% END IF_ARRAY_TYPE_C'
+'OMPLEX %%%>'#10#9'// <%%% START IF_ARRAY_TYPE_SIMPLE %%%>'#10#9'[super addI'
+'tem:[NSNumber numberWithLongLong:object]];'#10#9'// <%%% END IF_ARRAY_TYPE_'
+'SIMPLE %%%>'#10'}'#10#10'- (void)insertItem:(%ARRAY_TYPE%)object atIndex:(N'
+'SUInteger)index'#10'{'#10#9'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#10#9
+'[super insertItem:object atIndex:index];'#10#9'// <%%% END IF_ARRAY_TYPE_CO'
+'MPLEX %%%>'#10#9'// <%%% START IF_ARRAY_TYPE_SIMPLE %%%>'#10#9'[super inser'
+'tItem:[NSNumber numberWithLongLong:object] atIndex:index];'#10#9'// <%%% EN'
+'D IF_ARRAY_TYPE_SIMPLE %%%>'#10'}'#10#10'- (void)replaceItemAtIndex:(NSUInt'
+'eger)index withItem:(%ARRAY_TYPE%)object'#10'{'#10#9'// <%%% START IF_ARRAY'
+'_TYPE_COMPLEX %%%>'#10#9'[super replaceItemAtIndex:index withObject:object]'
+';'#10#9'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#10#9'// <%%% START IF_ARRAY'
+'_TYPE_SIMPLE %%%>'#10#9'[super replaceItemAtIndex:index withItem:[NSNumber '
+'numberWithLongLong:object]];'#10#9'// <%%% END IF_ARRAY_TYPE_SIMPLE %%%>'#10
+'}'#10#10'- (%ARRAY_TYPE%)itemAtIndex:(NSUInteger)index;'#10'{'#10#9'// <%%%'
+' START IF_ARRAY_TYPE_COMPLEX %%%>'#10#9'return (%ARRAY_TYPE%)[super itemAtI'
+'ndex:index];'#10#9'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#10#9'// <%%% STA'
+'RT IF_ARRAY_TYPE_SIMPLE %%%>'#10#9'return [(NSNumber *)[super itemAtIndex:i'
+'ndex] longLongValue];'#10#9'// <%%% END IF_ARRAY_TYPE_SIMPLE %%%>'#10'}'#10
+#10'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#10'- (Class) itemClass'#10'{'
,#10#9'return [%ARRAY_TYPE_NAME% class];'#10'}'#10'// <%%% END IF_ARRAY_TYPE_'
+'COMPLEX %%%>'#10#10'- (void)writeItemToMessage:(ROMessage *)aMessage fromIn'
+'dex:(int)i'#10'{'#10#9'[aMessage write%ARRAY_TYPE_READER_WRITER%:[self item'
+'AtIndex:i] withName:nil];'#10'}'#10#10'- (void)readItemFromMessage:(ROMessa'
+'ge *)aMessage toIndex:(int)i'#10'{'#10#9'%ARRAY_TYPE% __item;'#10#9'// <%%%'
+' START IF_ARRAY_TYPE_COMPLEX %%%>'#10#9'[aMessage read%ARRAY_TYPE_READER_WR'
+'ITER%:&__item withName:nil asClass:[self itemClass]];'#10#9'// <%%% END IF_'
+'ARRAY_TYPE_COMPLEX %%%>'#10#9'// <%%% START IF_ARRAY_TYPE_SIMPLE %%%>'#10#9
+'[aMessage read%ARRAY_TYPE_READER_WRITER%:&__item withName:nil];'#10#9'// <%'
+'%% END IF_ARRAY_TYPE_SIMPLE %%%>'#10#9'[self addItem:__item]; // assumes th'
+'is is called in ascending order'#10'}'#10#10'@end;'#10#10'// <%%% END ARRAY'
+'S %%%>'#10#10'#pragma mark exceptions'#10#10'// <%%% START EXCEPTIONS %%%>'
+#10'// <%%% START DOCUMENTATION %%%>'#10#10'/* Description:'#10' %CONTENT'
+'% */'#10'// <%%% END DOCUMENTATION %%%>'#10'@implementation %EXCEPTION_NAME'
+'% '#10' '#10'// <%%% START FIELDS_NO_STRIP %%%>'#10'@synthesize %FIELD_NAME'
+'%;'#10'// <%%% END FIELDS_NO_STRIP %%%>'#10#10'-(id) initWithMessage:(NSStr'
+'ing *) anExceptionMessage'#10' // <%%% START ANCESTOR_FIE'
+'LDS %%%>'#10' : (%FIELD_TYPE%) a%FIELD_NAME% '#10' '
+' // <%%% END ANCESTOR_FIELDS %%%>'#10' // <%%%'
+' START FIELDS_NO_STRIP %%%>'#10' : (%FIELD_TYPE%) a%FIELD'
+'_NAME% '#10' // <%%% END FIELDS_NO_STRIP %%%>'#10'{'#10#9
+'self = [super initWithMessage:anExceptionMessage'#10#9#9'// <%%% START ANCE'
+'STOR_FIELDS %%%>'#10#9#9':a%FIELD_NAME% '#10#9#9'// <%%% END ANCESTOR_FIELD'
+'S %%%>'#10#9'];'#10#9'// <%%% START IF_HAS_FIELDS %%%>'#10#9'if (self)'#10#9
+'{'#10#9#9'// <%%% START FIELDS_NO_STRIP %%%>'#10#9#9'%FIELD_NAME% = a%FIELD'
+'_NAME%;'#10#9#9'// <%%% END FIELDS_NO_STRIP %%%>'#10#9#9'// <%%% START FIEL'
+'DS_NO_STRIP %%%>'#10#9#9'// <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#10#9#9'['
+'%FIELD_NAME% retain];'#10#9#9'// <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#10#9#9
+'// <%%% END FIELDS_NO_STRIP %%%>'#10#9'}'#10#9'// <%%% END IF_HAS_FIELDS %%'
+'%>'#10#9'return self;'#10'}'#10#10'// <%%% START IF_HAS_FIELDS %%%>'#10'-(v'
+'oid) dealloc'#10'{'#10#9'// <%%% START FIELDS_NO_STRIP %%%>'#10#9'// <%%% S'
+'TART IF_FIELD_TYPE_COMPLEX %%%>'#10#9'[%FIELD_NAME% release];'#10#9'// <%%%'
+' END IF_FIELD_TYPE_COMPLEX %%%>'#10#9'// <%%% START IF_FIELD_TYPE_COMPLEX %'
+'%%>'#10#9'%FIELD_NAME% = nil;'#10#9'// <%%% END IF_FIELD_TYPE_COMPLEX %%%>'
+#10#9'// <%%% END FIELDS_NO_STRIP %%%>'#10#9'[super dealloc];'#10'}'#10#10'-'
+'(void)writeToMessage:(ROMessage *) aMessage withName:(NSString *) aName'#10
+'{'#10#9'// <%%% START ENTIRE_HIERARCHY_FIELDS %%%>'#10#9'[aMessage write%FI'
+'ELD_READER_WRITER%:%FIELD_NAME% withName:@"%FIELD_NAME%"];'#10#9'// <%%% EN'
+'D ENTIRE_HIERARCHY_FIELDS %%%>'#10'}'#10'-(void)readFromMessage:(ROMessage '
+'*) aMessage withName:(NSString *) aName'#10'{'#10#9'// <%%% START ENTIRE_HI'
+'ERARCHY_FIELDS %%%>'#10#9'// <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#10#9'[a'
+'Message read%FIELD_READER_WRITER%:&%FIELD_NAME% withName:@"%FIELD_NAME%" as'
+'Class:[%FIELD_TYPE_NAME% class]];'#10#9'// <%%% END IF_FIELD_TYPE_COMPLEX %'
+'%%>'#10#9'// <%%% START IF_FIELD_TYPE_SIMPLE %%%>'#10#9'[aMessage read%FIEL'
+'D_READER_WRITER%:&%FIELD_NAME% withName:@"%FIELD_NAME%"];'#10#9'// <%%% END'
+' IF_FIELD_TYPE_SIMPLE %%%>'#10#9'// <%%% END ENTIRE_HIERARCHY_FIELDS %%%>'
+#10#9'// <%%% START ENTIRE_HIERARCHY_FIELDS %%%>'#10#9'// <%%% START IF_FIEL'
+'D_TYPE_COMPLEX %%%>'#10#9'[%FIELD_NAME% retain];'#10#9'// <%%% END IF_FIELD'
+'_TYPE_COMPLEX %%%>'#10#9'// <%%% END ENTIRE_HIERARCHY_FIELDS %%%>'#10'}'#10
+'// <%%% END IF_HAS_FIELDS %%%>'#10'@end'#10#10'// <%%% END EXCEPTIONS %%%>'
+#10#10'#pragma mark service proxies'#10#10'// <%%% START SERVICES %%%>'#10'@'
+'implementation %SERVICE_NAME%_Proxy '#10#10'-(id) initWithMessage:(ROMessag'
+'e*) aMessage channel:(ROClientChannel*) aChannel'#10'{'#10#9'self = [super '
+'initWithMessage: aMessage channel: aChannel];'#10#9'return self;'#10'}'#10
+#10'-(void) dealloc'#10'{'#10#9'[super dealloc];'#10'}'#10#10'-(NSString*) _'
+'_getInterfaceName'#10'{'#10#9'return @"%SERVICE_NAME%";'#10'}'#10#10'// <%%'
+'% START OPERATIONS %%%>'#10'- (%OPERATION_RESULT_TYPE%) %OPERATION_NAME%'#10
+#9'// <%%% START PARAMS %%%>'#10#9':(%PARAM_TYPE%%PARAM_BACK_MODIFIER%) %PAR'
+'AM_NAME% '#10#9'// <%%% END PARAMS %%%>'#10'{'#10#9'// <%%% START IF_OPERA'
+'TION_HAS_RESULT %%%>'#10#9'%OPERATION_RESULT_TYPE% __result;'#10#9'// <%%% '
+'END IF_OPERATION_HAS_RESULT %%%>'#10#10#9'[[self __message] initializeAsReq'
+'uestMessage:[self __clientChannel] libraryName:@"%LIBRARY_NAME%" interfaceN'
+'ame:[self __getActiveInterfaceName] messageName:@"%OPERATION_NAME%"];'#10#9
+'@try'#10#9'{'#10#9#9'// <%%% START IN_PARAMS_NO_STRIP %%%> '#10#9#9'[[se'
,'lf __message] write%PARAM_READER_WRITER%:%PARAM_FRONT_MODIFIER%%PARAM_NAME%'
+' withName:@"%PARAM_NAME%"];'#10#9#9'// <%%% END IN_PARAMS_NO_STRIP %%%>'#10
+#9#9'[[self __message] finalizeMessage];'#10#9#9#10#9#9'[[self __clientChann'
+'el] dispatch:[self __message]];'#10#10#9#9'// <%%% START IF_RESULT_COMPLEX '
+'%%%>'#10#9#9'[[self __message] read%OPERATION_RESULT_READER_WRITER%:&__resu'
+'lt withName:@"%OPERATION_RESULT_NAME%" asClass:[%OPERATION_RESULT_TYPE_NAME'
+'% class]];'#10#9#9'// <%%% END IF_RESULT_COMPLEX %%%>'#10#9#9'// <%%% START'
+' IF_RESULT_SIMPLE %%%>'#10#9#9'[[self __message] read%OPERATION_RESULT_READ'
+'ER_WRITER%:&__result withName:@"%OPERATION_RESULT_NAME%"];'#10#9#9'// <%%% '
+'END IF_RESULT_SIMPLE %%%>'#10#9#9'// <%%% START OUT_PARAMS_NO_STRIP %%%> '
+#10#9#9'// <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#10#9#9'[[self __message] r'
+'ead%PARAM_READER_WRITER%:%PARAM_NAME% withName:@"%PARAM_NAME%" asClass:[%PA'
+'RAM_TYPE_NAME% class]];'#10#9#9'// <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#10#9
+#9'// <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#10#9#9'[[self __message] read%PA'
+'RAM_READER_WRITER%:%PARAM_NAME% withName:@"%PARAM_NAME%"];'#10#9#9'// <%%% '
+'END IF_PARAM_TYPE_SIMPLE %%%>'#10#9#9'// <%%% END OUT_PARAMS_NO_STRIP %%%>'
+#10#9'}'#10#9'@finally'#10#9'{'#10#9#9'[[self __message] clear];'#10#9'}'#10
+#10#9'// <%%% START IF_OPERATION_HAS_RESULT %%%>'#10#9'return __result;'#10#9
+'// <%%% END IF_OPERATION_HAS_RESULT %%%>'#10'}'#10#10'// <%%% END OPERATION'
+'S %%%>'#10' '#10'@end'#10#10'@implementation %SERVICE_NAME%_AsyncProxy '#10
+#10'// <%%% START OPERATIONS %%%>'#10'- (ROAsyncRequest *) begin%OPERATION_N'
+'AME%'#10#9'// <%%% START IN_PARAMS %%%>'#10#9':(%PARAM_TYPE%%PARAM_BACK_MOD'
+'IFIER%) %PARAM_NAME% '#10#9'// <%%% END IN_PARAMS %%%>'#10'{'#10#9'ROMessa'
+'ge *__localMessage = [[[self __message] copy] autorelease];'#10#9'[__localM'
+'essage initializeAsRequestMessage:[self __clientChannel] libraryName:@"%LIB'
+'RARY_NAME%" interfaceName:[self __getActiveInterfaceName] messageName:@"%OP'
+'ERATION_NAME%"];'#10#9'// <%%% START IN_PARAMS_NO_STRIP %%%> '#10#9'[__l'
+'ocalMessage write%PARAM_READER_WRITER%:%PARAM_FRONT_MODIFIER%%PARAM_NAME% w'
+'ithName:@"%PARAM_NAME%"];'#10#9'// <%%% END IN_PARAMS_NO_STRIP %%%>'#10#9'['
+'__localMessage finalizeMessage];'#10#9'return [[self __clientChannel] async'
+'Dispatch:__localMessage];'#10'}'#10#10'// <%%% END OPERATIONS %%%>'#10'// <'
+'%%% START OPERATIONS %%%>'#10'- (%OPERATION_RESULT_TYPE%) end%OPERATION_NAM'
+'E%'#10#9':(ROAsyncRequest *)__asyncRequest'#10#9'// <%%% START OUT_PARAMS %'
+'%%>'#10#9':(%PARAM_TYPE%%PARAM_BACK_MODIFIER%) %PARAM_NAME% '#10#9'// <%%%'
+' END OUT_PARAMS %%%>'#10'{'#10#9'// <%%% START IF_OPERATION_HAS_RESULT %%%>'
+#10#9'%OPERATION_RESULT_TYPE% __result;'#10#9'// <%%% END IF_OPERATION_HAS_R'
+'ESULT %%%>'#10#9'ROMessage *__localMessage = [__asyncRequest responseMessag'
+'e];'#10#10#9'// <%%% START IF_RESULT_COMPLEX %%%>'#10#9'[__localMessage rea'
+'d%OPERATION_RESULT_READER_WRITER%:&__result withName:@"%OPERATION_RESULT_NA'
+'ME%" asClass:[%OPERATION_RESULT_TYPE_NAME% class]];'#10#9'// <%%% END IF_RE'
+'SULT_COMPLEX %%%>'#10#9'// <%%% START IF_RESULT_SIMPLE %%%>'#10#9'[__localM'
+'essage read%OPERATION_RESULT_READER_WRITER%:&__result withName:@"%OPERATION'
+'_RESULT_NAME%"];'#10#9'// <%%% END IF_RESULT_SIMPLE %%%>'#10#9'// <%%% STAR'
+'T OUT_PARAMS_NO_STRIP %%%> '#10#9'// <%%% START IF_PARAM_TYPE_COMPLEX %%%'
+'>'#10#9'[__localMessage read%PARAM_READER_WRITER%:%PARAM_NAME% withName:@"%'
+'PARAM_NAME%" asClass:[%PARAM_TYPE_NAME% class]];'#10#9'// <%%% END IF_PARAM'
+'_TYPE_COMPLEX %%%>'#10#9'// <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#10#9'[__l'
+'ocalMessage read%PARAM_READER_WRITER%:%PARAM_NAME% withName:@"%PARAM_NAME%"'
+'];'#10#9'// <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#10#9'// <%%% END OUT_PARAMS'
+'_NO_STRIP %%%>'#10#9'[__localMessage clear];'#10#10#9'// <%%% START IF_OPER'
+'ATION_HAS_RESULT %%%>'#10#9'return __result;'#10#9'// <%%% END IF_OPERATION'
+'_HAS_RESULT %%%>'#10'}'#10#10'// <%%% END OPERATIONS %%%> '#10'@end'#10#10
+'// <%%% END SERVICES %%%>'#10#10'static BOOL %LIBRARY_NAME%_WasInitialized;'
+#10#10'void Initialize%LIBRARY_NAME%()'#10'{'#10#9'if (!%LIBRARY_NAME%_WasIn'
+'itialized)'#10#9'{'#10#9#9'%LIBRARY_NAME%_WasInitialized = YES;'#10#9#9'// '
+'<%%% START STRUCTS %%%>'#10#9#9'[[ROTypeManager typeManager] addType:[%STRU'
+'CT_NAME% class] className:@"%STRUCT_NAME%"];'#10#9#9'// <%%% END STRUCTS %%'
+'%>'#10#9'}'#10'}'
]);
LazarusResources.Add('TEMPLATE_OBJC_INTF_H','RCDATA',[
'//----------------------------------------------------------------------'#10
+'// This file was automatically generated by the RemObjects SDK from a '#10
+'// RODL file associated with this project. '#10'// '
+' '
+#10'// Do not modify this file manually, or your changes will be lost when '
+#10'// it is regenerated the next time you update your RODL. '
+#10'//----------------------------------------------------------------------'
+#10#10'#ifndef %LIBRARY_NAME%_INTF__H'#10'#define %LIBRARY_NAME%_INTF__H'#10
+#10'#import <RemObjectsSDK/RemObjectsSDK.h>'#10'// <%%% START REQUIRED_UNITS'
+' %%%>'#10'#import <%REQUIRED_UNIT_NAME%.h>'#10'// <%%% END REQUIRED_UNITS %'
+'%%>'#10#10'#pragma mark defines'#10#10'// Library ID'#10'////#define Librar'
+'yID "%LIBRARY_UID%"'#10'////#define TargetNamespace "%NAMESPACE_NAME%"'#10
+#10'// Service Interface ID''s'#10'// <%%% START SERVICES %%%>'#10'#define '
+'I%SERVICE_NAME%_IID "%SERVICE_UID%"'#10'////const GUID I%SERVICE_NAME%_IID '
+'= ROStringToGUID("%SERVICE_UID%");'#10'// <%%% END SERVICES %%%>'#10#10'///'
+'/ Event ID''s'#10'//// <%%% START EVENT_SINKS %%%>'#10'////#define EID_%EVE'
+'NT_SINK_NAME% @"%EVENT_SINK_NAME%"'#10'////#define IID_%EVENT_SINK_NAME% @"'
+'%EVENT_SINK_UID%"'#10'//// <%%% END EVENT_SINKS %%%>'#10#10'// Type Registr'
+'ation'#10'void Initialize%LIBRARY_NAME%();'#10#10'// Forward declarations'
+#10'// <%%% START SERVICES %%%>'#10'@protocol I%SERVICE_NAME%; '#10'// <%%% '
+'END SERVICES %%%>'#10'// <%%% START ARRAYS %%%>'#10'@class %ARRAY_NAME%;'#10
+'// <%%% END ARRAYS %%%>'#10'// <%%% START STRUCTS %%%>'#10'@class %STRUCT_N'
+'AME%;'#10'// <%%% END STRUCTS %%%>'#10'// <%%% START EXCEPTIONS %%%>'#10'@c'
+'lass %EXCEPTION_NAME%;'#10'// <%%% END EXCEPTIONS %%%>'#10'// <%%% START EV'
+'ENT_SINKS %%%>'#10'@protocol I%EVENT_SINK_NAME%;'#10'// <%%% END EVENT_SINK'
+'S %%%>'#10#10'// <%%% START ENUMS %%%>'#10'enum %ENUM_NAME% '#10'{'#10#9'//'
+' <%%% START VALUES %%%>'#10#9'%VALUE_NAME%, '#10#9'// <%%% E'
+'ND VALUES %%%> '#10'};'#10#10'NSString *%ENUM_NAME%ToString('
+'enum %ENUM_NAME% value);'#10#10'// <%%% END ENUMS %%%>'#10#10'#pragma mark '
+'structs'#10#10'// <%%% START STRUCTS %%%>'#10'@interface %STRUCT_NAME% : %S'
+'TRUCT_ANCESTOR_NAME% { '#10#9'// <%%% START FIELDS_NO_STRIP %%%>'#10#9'%FI'
+'ELD_TYPE% %FIELD_NAME%;'#10#9'// <%%% END FIELDS_NO_STRIP %%%>'#10'}'#10#10
+#9'// <%%% START FIELDS_NO_STRIP %%%>'#10#9'// <%%% START IF_FIELD_TYPE_COMP'
+'LEX %%%>'#10#9'@property (retain) %FIELD_TYPE% %FIELD_NAME%;'#10#9'// <%%% '
+'END IF_FIELD_TYPE_COMPLEX %%%>'#10#9'// <%%% START IF_FIELD_TYPE_SIMPLE %%%'
+'>'#10#9'@property (assign) %FIELD_TYPE% %FIELD_NAME%;'#10#9'// <%%% END IF_'
+'FIELD_TYPE_SIMPLE %%%>'#10#9'// <%%% END FIELDS_NO_STRIP %%%>'#10#10#9'// <'
+'%%% START IF_HAS_FIELDS %%%>'#10#9'-(id) init;'#10#9'-(void) dealloc;'#10#9
+'// <%%% END IF_HAS_FIELDS %%%>'#10#10#9'-(void) assignFrom:(ROComplexType*)'
+' aSource;'#10#9'// <%%% START IF_HAS_FIELDS %%%>'#10#9'-(void)writeToMessag'
+'e:(ROMessage *) aMessage withName:(NSString *) aName;'#10#9'-(void)readFrom'
+'Message:(ROMessage *) aMessage withName:(NSString *) aName;'#10#9'// <%%% E'
+'ND IF_HAS_FIELDS %%%>'#10#10'@end'#10#10'// <%%% END STRUCTS %%%>'#10#10'#p'
+'ragma mark arrays'#10#10'// <%%% START ARRAYS %%%>'#10'@interface %ARRAY_NA'
+'ME% : ROArray {'#10' }'#10'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#10'- '
+'(%ARRAY_TYPE%) add;'#10'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#10'- (void)'
+'addItem:(%ARRAY_TYPE%)object;'#10'- (void)insertItem:(%ARRAY_TYPE%)object a'
+'tIndex:(NSUInteger)index;'#10'- (void)replaceItemAtIndex:(NSUInteger)index '
+'withItem:(%ARRAY_TYPE%)object;'#10'- (%ARRAY_TYPE%)itemAtIndex:(NSUInteger)'
+'index;'#10#10'- (void)writeItemToMessage:(ROMessage *)aMessage fromIndex:(i'
+'nt)i;'#10'- (void)readItemFromMessage:(ROMessage *)aMessage toIndex:(int)i;'
+#10'@end;'#10#10'// <%%% END ARRAYS %%%>'#10'#pragma mark exceptions'#10#10
+'// <%%% START EXCEPTIONS %%%>'#10'// <%%% START DOCUMENTATION %%%>'#10#10'/'
+'* Description:'#10' %CONTENT% */'#10'// <%%% END DOCUMENTATION %%%>'#10
+'@interface %EXCEPTION_NAME% : %EXCEPTION_ANCESTOR_NAME% { '#10#9'// <%%% S'
+'TART FIELDS_NO_STRIP %%%>'#10#9'%FIELD_TYPE% %FIELD_NAME%;'#10#9'// <%%% EN'
+'D FIELDS_NO_STRIP %%%>'#10'}'#10' '#10'// <%%% START FIELDS_NO_STRIP %%%>'
+#10'// <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#10'@property (retain) %FIELD_T'
+'YPE% %FIELD_NAME%;'#10'// <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#10'// <%%% S'
+'TART IF_FIELD_TYPE_SIMPLE %%%>'#10'@property (assign) %FIELD_TYPE% %FIELD_N'
+'AME%;'#10'// <%%% END IF_FIELD_TYPE_SIMPLE %%%>'#10'// <%%% END FIELDS_NO_S'
+'TRIP %%%>'#10' '#10'-(id) initWithMessage:(NSString *) anExceptionMessage'
+#10' // <%%% START ANCESTOR_FIELDS %%%>'#10' '
+' : (%FIELD_TYPE%) a%FIELD_NAME% '#10' // <%%% END ANC'
,'ESTOR_FIELDS %%%>'#10' // <%%% START FIELDS_NO_STRIP %%%>'
+#10' : (%FIELD_TYPE%) a%FIELD_NAME% '#10' '
+' // <%%% END FIELDS_NO_STRIP %%%>'#10' ;'#10'// <%%% STA'
+'RT IF_HAS_FIELDS %%%>'#10'-(void)writeToMessage:(ROMessage *) aMessage with'
+'Name:(NSString *) aName;'#10'-(void)readFromMessage:(ROMessage *) aMessage '
+'withName:(NSString *) aName;'#10'// <%%% END IF_HAS_FIELDS %%%>'#10'-(void)'
+' dealloc;'#10'@end'#10#10'// <%%% END EXCEPTIONS %%%>'#10#10'#pragma mark s'
+'ervice protocols'#10#10'// <%%% START SERVICES %%%>'#10'@protocol I%SERVICE'
+'_NAME%'#10' // <%%% START FUNCTION_OPERATIONS %%%>'#10' - (%OPERATION_RES'
+'ULT_TYPE%) %OPERATION_NAME%'#10' // <%%% START PARAMS %%%>'#10' :(%PA'
+'RAM_TYPE%%PARAM_BACK_MODIFIER%) %PARAM_NAME%'#10' // <%%% END PARAMS %%%'
+'>'#10' ;'#10' // <%%% END FUNCTION_OPERATIONS %%%>'#10' // <%%% START '
+'PROCEDURE_OPERATIONS %%%>'#10' - (void) %OPERATION_NAME%'#10' // <%%% S'
+'TART PARAMS %%%>'#10' :(%PARAM_TYPE%%PARAM_BACK_MODIFIER%) %PARAM_NAME% '
+' '#10' // <%%% END PARAMS %%%>'#10' ;'#10#9'// <%%% END PROCEDURE_OPE'
+'RATIONS %%%>'#10'@end'#10#10'#pragma mark service proxies'#10#10'@interface'
+' %SERVICE_NAME%_Proxy : %SERVICE_PROXY_ANCESTOR_NAME% <I%SERVICE_NAME%> '#10
+'{'#10'}'#10' -(id) initWithMessage:(ROMessage*) aMessage channel:(ROClient'
+'Channel*) aChannel;'#10' -(void) dealloc;'#10' -(NSString*) __getInterfac'
+'eName;'#10#10' // <%%% START FUNCTION_OPERATIONS %%%>'#10' - (%OPERATION_'
+'RESULT_TYPE%) %OPERATION_NAME%'#10' // <%%% START PARAMS %%%>'#10' :('
+'%PARAM_TYPE%%PARAM_BACK_MODIFIER%) %PARAM_NAME%'#10' // <%%% END PARAMS '
+'%%%>'#10' ;'#10' // <%%% END FUNCTION_OPERATIONS %%%>'#10' // <%%% STA'
+'RT PROCEDURE_OPERATIONS %%%>'#10' - (void) %OPERATION_NAME%'#10' // <%%'
+'% START PARAMS %%%>'#10' :(%PARAM_TYPE%%PARAM_BACK_MODIFIER%) %PARAM_NAM'
+'E% '#10' // <%%% END PARAMS %%%>'#10' ;'#10#9'// <%%% END PROCEDURE_'
+'OPERATIONS %%%>'#10' '#10'@end'#10#10'@interface %SERVICE_NAME%_AsyncProxy'
+' : %SERVICE_NAME%_Proxy {'#10'}'#10'// <%%% START OPERATIONS %%%>'#10'- (RO'
+'AsyncRequest *) begin%OPERATION_NAME%'#10'// <%%% START IN_PARAMS %%%>'#10
+':(%PARAM_TYPE%%PARAM_BACK_MODIFIER%) %PARAM_NAME% '#10'// <%%% END IN_PARA'
+'MS %%%>'#10';'#10'// <%%% END OPERATIONS %%%>'#10'// <%%% START OPERATIONS '
+'%%%>'#10'- (%OPERATION_RESULT_TYPE%) end%OPERATION_NAME%'#10':(ROAsyncReque'
+'st *)__asyncRequest'#10'// <%%% START OUT_PARAMS %%%>'#10':(%PARAM_TYPE%%PA'
+'RAM_BACK_MODIFIER%) %PARAM_NAME% '#10'// <%%% END OUT_PARAMS %%%>'#10';'#10
+'// <%%% END OPERATIONS %%%> '#10'@end'#10#10'// <%%% END SERVICES %%%>'#10
+#10'#pragma mark event sinks'#10#10'//// <%%% START EVENT_SINKS %%%>'#10'///'
+'/ /* I%EVENT_SINK_NAME% */'#10'//// <%%% END EVENT_SINKS %%%>'#10#10'void I'
+'nitialize%LIBRARY_NAME%();'#10#10'#endif // %LIBRARY_NAME%_INTF__H'#10#10
]);