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_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(ASerializer)' +'.ReadEnumerated(''%FIELD_NAME%'', TypeInfo(boolean), l_%FIELD_NAME%);'#13#10 +' // <%%% END IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' // <%%% START IF_FIEL' +'D_CURRENCY_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadDouble(''%FI' +'ELD_NAME%'', ftCurr, l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_CURRE' ,'NCY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DATETIME_TYPE %%%>'#13#10' ' +' TROSerializer(ASerializer).ReadDateTime(''%FIELD_NAME%'', l_%FIELD_NAME%' +');'#13#10' // <%%% END IF_FIELD_DATETIME_TYPE %%%>'#13#10' // <%%% ST' +'ART IF_FIELD_DECIMAL_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadDe' +'cimal(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DE' +'CIMAL_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DOUBLE_TYPE %%%>'#13#10' ' +' TROSerializer(ASerializer).ReadDouble(''%FIELD_NAME%'', ftDouble, l_%FIE' +'LD_NAME%);'#13#10' // <%%% END IF_FIELD_DOUBLE_TYPE %%%>'#13#10' // <' +'%%% START IF_FIELD_GUID_TYPE %%%>'#13#10' TROSerializer(ASerializer).Rea' +'dGuid(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_GU' +'ID_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INT64_TYPE %%%>'#13#10' T' +'ROSerializer(ASerializer).ReadInt64(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13 +#10' // <%%% END IF_FIELD_INT64_TYPE %%%>'#13#10' // <%%% START IF_FIE' +'LD_INTEGER_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadInteger(''%F' +'IELD_NAME%'', otSLong, l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INT' +'EGER_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ANSISTRING_TYPE %%%>'#13#10 +' TROSerializer(ASerializer).ReadAnsiString(''%FIELD_NAME%'', l_%FIELD_NA' +'ME%);'#13#10' // <%%% END IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' // <%' +'%% START IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' TROSerializer(ASerializer' +').ReadUTF8String(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END ' +'IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_VARIANT_TYP' +'E %%%>'#13#10' TROSerializer(ASerializer).ReadVariant(''%FIELD_NAME%'', ' +'l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_VARIANT_TYPE %%%>'#13#10' ' +' // <%%% START IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' TROSerializer(ASe' +'rializer).ReadWideString(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <' +'%%% END IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_XML' +'_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadXml(''%FIELD_NAME%'', ' +'l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_XML_TYPE %%%>'#13#10' /' +'/ <%%% START IF_FIELD_ARRAY_TYPE %%%>'#13#10' TROSerializer(ASerializer)' +'.ReadArray(''%FIELD_NAME%'', %FIELD_TYPE%, l_%FIELD_NAME%);'#13#10' if %' +'FIELD_NAME% <> l_%FIELD_NAME% then %FIELD_NAME%.Free;'#13#10' // <%%% EN' +'D IF_FIELD_ARRAY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ENUM_TYPE %%%>' +#13#10' TROSerializer(ASerializer).ReadEnumerated(''%FIELD_NAME%'', TypeI' +'nfo(%FIELD_TYPE%), l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ENUM_TY' +'PE %%%>'#13#10' // <%%% START IF_FIELD_STRUCT_TYPE %%%>'#13#10' TROSe' +'rializer(ASerializer).ReadStruct(''%FIELD_NAME%'', %FIELD_TYPE%, l_%FIELD_N' +'AME%);'#13#10' if %FIELD_NAME% <> l_%FIELD_NAME% then %FIELD_NAME%.Free;' +#13#10' // <%%% END IF_FIELD_STRUCT_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% := %FIELD_NAME%;'#13#10' // <%%% START IF_FIELD_BINAR' +'Y_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadBinary(''%FIELD_NAME%' +''', l_%FIELD_NAME%);'#13#10' if %FIELD_NAME% <> l_%FIELD_NAME% then %FIE' +'LD_NAME%.Free;'#13#10' // <%%% END IF_FIELD_BINARY_TYPE %%%>'#13#10' ' +'// <%%% START IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' TROSerializer(ASerializ' +'er).ReadEnumerated(''%FIELD_NAME%'', TypeInfo(boolean), l_%FIELD_NAME%);'#13 +#10' // <%%% END IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' // <%%% START IF_F' +'IELD_CURRENCY_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadDouble(''' +'%FIELD_NAME%'', ftCurr, l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_CU' +'RRENCY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DATETIME_TYPE %%%>'#13#10 +' TROSerializer(ASerializer).ReadDateTime(''%FIELD_NAME%'', l_%FIELD_NAME' +'%);'#13#10' // <%%% END IF_FIELD_DATETIME_TYPE %%%>'#13#10' // <%%% S' +'TART IF_FIELD_DECIMAL_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadD' +'ecimal(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_D' +'ECIMAL_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DOUBLE_TYPE %%%>'#13#10 +' TROSerializer(ASerializer).ReadDouble(''%FIELD_NAME%'', ftDouble, l_%FI' +'ELD_NAME%);'#13#10' // <%%% END IF_FIELD_DOUBLE_TYPE %%%>'#13#10' // ' +'<%%% START IF_FIELD_GUID_TYPE %%%>'#13#10' TROSerializer(ASerializer).Re' +'adGuid(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_G' +'UID_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INT64_TYPE %%%>'#13#10' ' +'TROSerializer(ASerializer).ReadInt64(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13 +#10' // <%%% END IF_FIELD_INT64_TYPE %%%>'#13#10' // <%%% START IF_FIE' +'LD_INTEGER_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadInteger(''%F' +'IELD_NAME%'', otSLong, l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INT' ,'EGER_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ANSISTRING_TYPE %%%>'#13#10 +' TROSerializer(ASerializer).ReadAnsiString(''%FIELD_NAME%'', l_%FIELD_NA' +'ME%);'#13#10' // <%%% END IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' // <%' +'%% START IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' TROSerializer(ASerializer' +').ReadUTF8String(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END ' +'IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_VARIANT_TYP' +'E %%%>'#13#10' TROSerializer(ASerializer).ReadVariant(''%FIELD_NAME%'', ' +'l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_VARIANT_TYPE %%%>'#13#10' ' +' // <%%% START IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' TROSerializer(ASe' +'rializer).ReadWideString(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <' +'%%% END IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_XML' +'_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadXml(''%FIELD_NAME%'', ' +'l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_XML_TYPE %%%>'#13#10' /' +'/ <%%% START IF_FIELD_ARRAY_TYPE %%%>'#13#10' TROSerializer(ASerializer)' +'.ReadArray(''%FIELD_NAME%'', %FIELD_TYPE%, l_%FIELD_NAME%);'#13#10' if %' +'FIELD_NAME% <> l_%FIELD_NAME% then %FIELD_NAME%.Free;'#13#10' // <%%% EN' +'D IF_FIELD_ARRAY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ENUM_TYPE %%%>' +#13#10' TROSerializer(ASerializer).ReadEnumerated(''%FIELD_NAME%'', TypeI' +'nfo(%FIELD_TYPE%), l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ENUM_TY' +'PE %%%>'#13#10' // <%%% START IF_FIELD_STRUCT_TYPE %%%>'#13#10' TROSe' +'rializer(ASerializer).ReadStruct(''%FIELD_NAME%'', %FIELD_TYPE%, l_%FIELD_N' +'AME%);'#13#10' if %FIELD_NAME% <> l_%FIELD_NAME% then %FIELD_NAME%.Free;' +#13#10' // <%%% END IF_FIELD_STRUCT_TYPE %%%>'#13#10' %FIELD_NAME% := ' +'l_%FIELD_NAME%;'#13#10' // <%%% END ENTIRE_HIERARCHY_FIELDS %%%>'#13#10 +' end;'#13#10'end;'#13#10#13#10'procedure %EXCEPTION_NAME%.WriteException(A' +'Serializer: TObject);'#13#10'var'#13#10' // <%%% START ENTIRE_HIERARCHY_FI' +'ELDS %%%>'#13#10' l_%FIELD_NAME%: %FIELD_TYPE%;'#13#10' // <%%% END ENTIR' +'E_HIERARCHY_FIELDS %%%>'#13#10'begin'#13#10' if TROSerializer(ASerializer)' +'.RecordStrictOrder then begin'#13#10' // <%%% START IF_STRUCT_HAS_ANCEST' +'OR %%%>'#13#10' inherited;'#13#10' // <%%% END IF_STRUCT_HAS_ANCESTOR' +' %%%>'#13#10' // <%%% START FIELDS_NO_STRIP %%%>'#13#10' l_%FIELD_NAM' +'E% := %FIELD_NAME%;'#13#10' // <%%% START IF_FIELD_BINARY_TYPE %%%>'#13 +#10' TROSerializer(ASerializer).WriteBinary(''%FIELD_NAME%'', l_%FIELD_NA' +'ME%);'#13#10' // <%%% END IF_FIELD_BINARY_TYPE %%%>'#13#10' // <%%% S' +'TART IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' TROSerializer(ASerializer).Write' +'Enumerated(''%FIELD_NAME%'', TypeInfo(boolean), l_%FIELD_NAME%);'#13#10' ' +' // <%%% END IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' // <%%% START IF_FIELD_C' +'URRENCY_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteDouble(''%FIEL' +'D_NAME%'', ftCurr, l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_CURRENC' +'Y_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DATETIME_TYPE %%%>'#13#10' ' +' TROSerializer(ASerializer).WriteDateTime(''%FIELD_NAME%'', l_%FIELD_NAME%)' +';'#13#10' // <%%% END IF_FIELD_DATETIME_TYPE %%%>'#13#10' // <%%% STA' +'RT IF_FIELD_DECIMAL_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteDe' +'cimal(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DE' +'CIMAL_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DOUBLE_TYPE %%%>'#13#10' ' +' TROSerializer(ASerializer).WriteDouble(''%FIELD_NAME%'', ftDouble, l_%FI' +'ELD_NAME%);'#13#10' // <%%% END IF_FIELD_DOUBLE_TYPE %%%>'#13#10' // ' +'<%%% START IF_FIELD_GUID_TYPE %%%>'#13#10' TROSerializer(ASerializer).Wr' +'iteGuid(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_' +'GUID_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INT64_TYPE %%%>'#13#10' ' +' TROSerializer(ASerializer).WriteInt64(''%FIELD_NAME%'', l_%FIELD_NAME%);' +#13#10' // <%%% END IF_FIELD_INT64_TYPE %%%>'#13#10' // <%%% START IF_' +'FIELD_INTEGER_TYPE %%%>'#13#10' 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' TROSerializer(ASerializer).WriteAnsiString(''%FIELD_NAME%'', l_%F' +'IELD_NAME%);'#13#10' // <%%% END IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' ' +' // <%%% START IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' TROSerializer(ASer' +'ializer).WriteUTF8String(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <' +'%%% END IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_VAR' +'IANT_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteVariant(''%FIELD_' +'NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_VARIANT_TYPE %%%>' +#13#10' // <%%% START IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' TROSeriali' +'zer(ASerializer).WriteWideString(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10 ,' // <%%% END IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' // <%%% START IF_F' +'IELD_XML_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteXml(''%FIELD_' +'NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_XML_TYPE %%%>'#13 +#10' // <%%% START IF_FIELD_ARRAY_TYPE %%%>'#13#10' TROSerializer(ASer' +'ializer).WriteArray(''%FIELD_NAME%'', l_%FIELD_NAME%, %FIELD_TYPE%);'#13#10 +' // <%%% END IF_FIELD_ARRAY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_' +'ENUM_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteEnumerated(''%FIE' +'LD_NAME%'', 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_NAME%'', l_%FIELD' +'_NAME%, %FIELD_TYPE%);'#13#10' // <%%% END IF_FIELD_STRUCT_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_NAME%'', l_%FIELD_NAME%' +');'#13#10' // <%%% END IF_FIELD_BINARY_TYPE %%%>'#13#10' // <%%% STAR' +'T IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteEnu' +'merated(''%FIELD_NAME%'', TypeInfo(boolean), l_%FIELD_NAME%);'#13#10' //' +' <%%% END IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' // <%%% START IF_FIELD_CURR' +'ENCY_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteDouble(''%FIELD_N' +'AME%'', ftCurr, l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_CURRENCY_T' +'YPE %%%>'#13#10' // <%%% START IF_FIELD_DATETIME_TYPE %%%>'#13#10' TR' +'OSerializer(ASerializer).WriteDateTime(''%FIELD_NAME%'', l_%FIELD_NAME%);' +#13#10' // <%%% END IF_FIELD_DATETIME_TYPE %%%>'#13#10' // <%%% START ' +'IF_FIELD_DECIMAL_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteDecim' +'al(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DECIM' +'AL_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DOUBLE_TYPE %%%>'#13#10' ' +'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' TROSerializer(ASerializer).Write' +'Guid(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_GUI' +'D_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INT64_TYPE %%%>'#13#10' TR' +'OSerializer(ASerializer).WriteInt64(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13 +#10' // <%%% END IF_FIELD_INT64_TYPE %%%>'#13#10' // <%%% START IF_FIE' +'LD_INTEGER_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteInteger(''%' +'FIELD_NAME%'', otSLong, l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_IN' +'TEGER_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ANSISTRING_TYPE %%%>'#13 +#10' TROSerializer(ASerializer).WriteAnsiString(''%FIELD_NAME%'', l_%FIEL' +'D_NAME%);'#13#10' // <%%% END IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' /' +'/ <%%% START IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' TROSerializer(ASerial' +'izer).WriteUTF8String(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%%' +' END IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_VARIAN' +'T_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteVariant(''%FIELD_NAM' +'E%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_VARIANT_TYPE %%%>'#13 +#10' // <%%% START IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' TROSerializer' +'(ASerializer).WriteWideString(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' ' +' // <%%% END IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' // <%%% START IF_FIEL' +'D_XML_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteXml(''%FIELD_NAM' +'E%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_XML_TYPE %%%>'#13#10 +' // <%%% START IF_FIELD_ARRAY_TYPE %%%>'#13#10' TROSerializer(ASerial' +'izer).WriteArray(''%FIELD_NAME%'', l_%FIELD_NAME%, %FIELD_TYPE%);'#13#10' ' +' // <%%% END IF_FIELD_ARRAY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_EN' +'UM_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteEnumerated(''%FIELD' +'_NAME%'', TypeInfo(%FIELD_TYPE%), l_%FIELD_NAME%);'#13#10' // <%%% END I' +'F_FIELD_ENUM_TYPE %%%>'#13#10' // <%%% START IF_FIELD_STRUCT_TYPE %%%>' +#13#10' TROSerializer(ASerializer).WriteStruct(''%FIELD_NAME%'', l_%FIELD' +'_NAME%, %FIELD_TYPE%);'#13#10' // <%%% END IF_FIELD_STRUCT_TYPE %%%>'#13 +#10' // <%%% END ENTIRE_HIERARCHY_FIELDS %%%>'#13#10' end;'#13#10'end;' +#13#10#13#10'// <%%% END IF_HAS_FIELDS %%%>'#13#10'// <%%% END EXCEPTIONS %%' +'%>'#13#10'// <%%% START ARRAYS %%%>'#13#10'{ %ARRAY_NAME% }'#13#10#13#10'pr' +'ocedure %ARRAY_NAME%.Assign(iSource: TPersistent);'#13#10'var lSource:%ARRA' +'Y_NAME%;'#13#10' i:integer;'#13#10'begin'#13#10' if (iSource is %ARRAY_' +'NAME%) then begin'#13#10' lSource := %ARRAY_NAME%(iSource);'#13#10' C' +'lear();'#13#10' Resize(lSource.Count);'#13#10' '#13#10' for i := 0' ,' to Count-1 do begin'#13#10' // <%%% START IF_ARRAY_TYPE_COMPLEX %%%>' +#13#10' if Assigned(lSource.Items[i]) then begin'#13#10' Items[i' +'].Assign(lSource.Items[i]);'#13#10' end;'#13#10' // <%%% END IF_A' +'RRAY_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' 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%.GetItemType: PTypeInfo;'#13#10'begin'#13#10' result ' +':= TypeInfo(%ARRAY_TYPE%);'#13#10'end;'#13#10#13#10'// <%%% START IF_ARRAY_' +'TYPE_COMPLEX %%%>'#13#10'class 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%.GetIte' +'mSize: integer;'#13#10'begin'#13#10' result := SizeOf(%ARRAY_TYPE%);'#13#10 +'end;'#13#10#13#10'function %ARRAY_NAME%.GetItems(aIndex: integer): %ARRAY_T' +'YPE%;'#13#10'begin'#13#10' if (aIndex < 0) or (aIndex >= Count) then Raise' +'Error(err_ArrayIndexOutOfBounds,[aIndex]);'#13#10' result := fItems[aIndex' +'];'#13#10'end;'#13#10#13#10'function %ARRAY_NAME%.GetItemRef(aIndex: intege' +'r): pointer;'#13#10'begin'#13#10' if (aIndex < 0) or (aIndex >= Count) the' +'n RaiseError(err_ArrayIndexOutOfBounds,[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_SIMPL' +'E %%%>'#13#10' result := @fItems[aIndex];'#13#10' // <%%% END IF_ARRAY_TY' +'PE_SIMPLE %%%>'#13#10'end;'#13#10#13#10'// <%%% START IF_ARRAY_TYPE_COMPLEX' +' %%%>'#13#10'procedure %ARRAY_NAME%.SetItemRef(aIndex: integer; Ref: pointe' +'r);'#13#10'begin'#13#10' if (aIndex < 0) or (aIndex >= Count) then RaiseEr' +'ror(err_ArrayIndexOutOfBounds,[aIndex]);'#13#10' if Ref <> fItems[aIndex] ' +'then begin'#13#10' if fItems[aIndex] <> 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_COMPLEX %%%>'#13#10'var i: integer;'#13#10'// <' +'%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#13#10'begin'#13#10' // <%%% START IF_A' +'RRAY_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(err_InvalidIndex, [aIndex]);'#13#10#13#10' ' +'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' fItems[aIndex].Free();'#13 +#10' // <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' '#13#10' if (aIndex= Cou' +'nt) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);'#13#10' // <%%% S' +'TART IF_ARRAY_TYPE_COMPLEX %%%> '#13#10' if fItems[aIndex] <> Value then ' +'begin'#13#10' fItems[aIndex].Free; '#13#10' fItems[aIndex] := Valu' +'e;'#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_ARRAY_TYPE_SIMPLE %%%> '#13#10'end;'#13#10#13#10 +'procedure %ARRAY_NAME%.Resize(ElementCount: integer);'#13#10'// <%%% START ' +'IF_ARRAY_TYPE_COMPLEX %%%>'#13#10'var i: Integer;'#13#10'// <%%% END IF_ARR' +'AY_TYPE_COMPLEX %%%>'#13#10'begin'#13#10' if fCount = ElementCount then Ex' +'it;'#13#10'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' for i := FCoun' +'t -1 downto ElementCount do'#13#10' FItems[i].Free;'#13#10'// <%%% END I' +'F_ARRAY_TYPE_COMPLEX %%%>'#13#10' SetLength(fItems, ElementCount);'#13#10 +'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' for i := FCount to Elemen' +'tCount -1 do'#13#10' FItems[i] := %ARRAY_TYPE%.Create;'#13#10'// <%%% EN' +'D IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' FCount := ElementCount;'#13#10'end;' +#13#10#13#10'function %ARRAY_NAME%.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, Capacity: Integer;'#13#10'begin'#13#10' Capacity :=' +' Length(fItems);'#13#10' if Capacity > 64 then'#13#10' Delta := Capacit' +'y 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, Capa' +'city + Delta);'#13#10'end;'#13#10#13#10'// <%%% START IF_ARRAY_TYPE_COMPLEX' ,' %%%>'#13#10'function %ARRAY_NAME%.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%): integer;'#13#10'begin'#13#10' Result := Count;' +#13#10' if Length(fItems) = Result then'#13#10' Grow;'#13#10' fItems[re' +'sult] := Value;'#13#10' Inc(fCount);'#13#10'end;'#13#10#13#10'// <%%% STAR' +'T IF_ARRAY_TYPE_SIMPLE %%%>'#13#10'function %ARRAY_NAME%.GetIndex(const aPr' +'opertyName : string;'#13#10' const aPropertyValue : Variant; StartFrom : i' +'nteger;'#13#10' Options : TROSearchOptions) : 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'v' +'ar'#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) d' +'o'#13#10' // <%%% START IF_ARRAY_BINARY_TYPE %%%>'#13#10' ReadBin' +'ary(GetArrayElementName(GetItemType, GetItemRef(i)), lval, i);'#13#10' ' +' // <%%% END IF_ARRAY_BINARY_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_' +'BOOLEAN_TYPE %%%>'#13#10' ReadEnumerated(GetArrayElementName(GetItemTy' +'pe, GetItemRef(i)), TypeInfo(boolean), lval, i);'#13#10' // <%%% END I' +'F_ARRAY_BOOLEAN_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_CURRENCY_TYPE' +' %%%>'#13#10' ReadDouble(GetArrayElementName(GetItemType, GetItemRef(i' +')), ftCurr, lval, i);'#13#10' // <%%% END IF_ARRAY_CURRENCY_TYPE %%%>' +#13#10' // <%%% START IF_ARRAY_DATETIME_TYPE %%%>'#13#10' ReadDate' +'Time(GetArrayElementName(GetItemType, GetItemRef(i)), lval, i);'#13#10' ' +' // <%%% END IF_ARRAY_DATETIME_TYPE %%%>'#13#10' // <%%% START IF_ARR' +'AY_DECIMAL_TYPE %%%>'#13#10' ReadDecimal(GetArrayElementName(GetItemTy' +'pe, GetItemRef(i)), lval, i);'#13#10' // <%%% END IF_ARRAY_DECIMAL_TYP' +'E %%%>'#13#10' // <%%% START IF_ARRAY_DOUBLE_TYPE %%%>'#13#10' Re' +'adDouble(GetArrayElementName(GetItemType, GetItemRef(i)), ftDouble, lval, i' +');'#13#10' // <%%% END IF_ARRAY_DOUBLE_TYPE %%%>'#13#10' // <%%% ' +'START IF_ARRAY_GUID_TYPE %%%>'#13#10' ReadGuid(GetArrayElementName(Get' +'ItemType, GetItemRef(i)), lval, i);'#13#10' // <%%% END IF_ARRAY_GUID_' +'TYPE %%%>'#13#10' // <%%% START IF_ARRAY_INT64_TYPE %%%>'#13#10' ' +'ReadInt64(GetArrayElementName(GetItemType, GetItemRef(i)), lval, i);'#13#10 +' // <%%% END IF_ARRAY_INT64_TYPE %%%>'#13#10' // <%%% START IF_AR' +'RAY_INTEGER_TYPE %%%>'#13#10' ReadInteger(GetArrayElementName(GetItemT' +'ype, GetItemRef(i)), otSLong, lval, i);'#13#10' // <%%% END IF_ARRAY_I' +'NTEGER_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_ANSISTRING_TYPE %%%>' +#13#10' ReadUTF8String(GetArrayElementName(GetItemType, GetItemRef(i)),' +' lval, i);'#13#10' // <%%% END IF_ARRAY_ANSISTRING_TYPE %%%>'#13#10' ' +' // <%%% START IF_ARRAY_UTF8STRING_TYPE %%%>'#13#10' ReadUTF8String' +'(GetArrayElementName(GetItemType, GetItemRef(i)), lval, i);'#13#10' //' +' <%%% END IF_ARRAY_UTF8STRING_TYPE %%%>'#13#10' // <%%% START IF_ARRAY' +'_VARIANT_TYPE %%%>'#13#10' ReadVariant(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_WIDESTRING_TYPE %%%>'#13#10' // <%%% ' +'START IF_ARRAY_XML_TYPE %%%>'#13#10' ReadXml(GetArrayElementName(GetIt' +'emType, GetItemRef(i)), lval, i);'#13#10' // <%%% END IF_ARRAY_XML_TYP' +'E %%%>'#13#10' // <%%% START IF_ARRAY_ARRAY_TYPE %%%>'#13#10' Rea' +'dArray(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(GetArrayElementN' +'ame(GetItemType, GetItemRef(i)), TypeInfo(%ARRAY_TYPE%), lval, i);'#13#10' ' +' // <%%% END IF_ARRAY_ENUM_TYPE %%%>'#13#10' // <%%% START IF_ARRA' +'Y_STRUCT_TYPE %%%>'#13#10' ReadStruct(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%.WriteComplex(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_ARR' +'AY_BINARY_TYPE %%%>'#13#10' WriteBinary(GetArrayElementName(GetItemTyp' +'e, GetItemRef(i)), fItems[i], i);'#13#10' // <%%% END IF_ARRAY_BINARY_' +'TYPE %%%>'#13#10' // <%%% START IF_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' Writ' +'eDouble(GetArrayElementName(GetItemType, GetItemRef(i)), ftCurr, fItems[i],' +' i);'#13#10' // <%%% END IF_ARRAY_CURRENCY_TYPE %%%>'#13#10' // <' +'%%% START IF_ARRAY_DATETIME_TYPE %%%>'#13#10' WriteDateTime(GetArrayEl' +'ementName(GetItemType, GetItemRef(i)), fItems[i], i);'#13#10' // <%%% ' +'END IF_ARRAY_DATETIME_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_DECIMAL' +'_TYPE %%%>'#13#10' WriteDecimal(GetArrayElementName(GetItemType, GetIt' +'emRef(i)), fItems[i], i);'#13#10' // <%%% END IF_ARRAY_DECIMAL_TYPE %%' +'%>'#13#10' // <%%% START IF_ARRAY_DOUBLE_TYPE %%%>'#13#10' WriteD' +'ouble(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_ARR' +'AY_GUID_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_INT64_TYPE %%%>'#13#10 +' WriteInt64(GetArrayElementName(GetItemType, GetItemRef(i)), fItems[i]' +', i);'#13#10' // <%%% END IF_ARRAY_INT64_TYPE %%%>'#13#10' // <%%' +'% START IF_ARRAY_INTEGER_TYPE %%%>'#13#10' WriteInteger(GetArrayElemen' +'tName(GetItemType, GetItemRef(i)), otSLong, fItems[i], i);'#13#10' // ' +'<%%% END IF_ARRAY_INTEGER_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_ANS' +'ISTRING_TYPE %%%>'#13#10' WriteUTF8String(GetArrayElementName(GetItemT' +'ype, GetItemRef(i)), fItems[i], i);'#13#10' // <%%% END IF_ARRAY_ANSIS' +'TRING_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_UTF8STRING_TYPE %%%>'#13 +#10' WriteUTF8String(GetArrayElementName(GetItemType, GetItemRef(i)), f' +'Items[i], i);'#13#10' // <%%% END IF_ARRAY_UTF8STRING_TYPE %%%>'#13#10 +' // <%%% START IF_ARRAY_VARIANT_TYPE %%%>'#13#10' WriteVariant(Ge' +'tArrayElementName(GetItemType, GetItemRef(i)), fItems[i], i);'#13#10' ' +'// <%%% END IF_ARRAY_VARIANT_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_' +'WIDESTRING_TYPE %%%>'#13#10' WriteWideString(GetArrayElementName(GetIt' +'emType, GetItemRef(i)), fItems[i], i);'#13#10' // <%%% END IF_ARRAY_WI' +'DESTRING_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_XML_TYPE %%%>'#13#10 +' WriteXml(GetArrayElementName(GetItemType, GetItemRef(i)), fItems[i], ' +'i);'#13#10' // <%%% END IF_ARRAY_XML_TYPE %%%>'#13#10' // <%%% ST' +'ART IF_ARRAY_ARRAY_TYPE %%%>'#13#10' WriteArray(GetArrayElementName(Ge' +'tItemType, GetItemRef(i)), fItems[i], , %ARRAY_TYPE%, i);'#13#10' // <' +'%%% END IF_ARRAY_ARRAY_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_ENUM_T' +'YPE %%%>'#13#10' WriteEnumerated(GetArrayElementName(GetItemType, GetI' +'temRef(i)), TypeInfo(%ARRAY_TYPE%), fItems[i], i);'#13#10' // <%%% END' +' IF_ARRAY_ENUM_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_STRUCT_TYPE %%' +'%>'#13#10' WriteStruct(GetArrayElementName(GetItemType, GetItemRef(i))' +', fItems[i], %ARRAY_TYPE%, i);'#13#10' // <%%% END IF_ARRAY_STRUCT_TYP' +'E %%%>'#13#10'end;'#13#10#13#10'// <%%% END ARRAYS %%%>'#13#10'// <%%% STAR' +'T 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 Assign(iSource);'#13#10' // <%%% START ' +'IF_HAS_FIELDS %%%>'#13#10' if (iSource is %STRUCT_NAME%) then begin'#13#10 +' lSource := %STRUCT_NAME%(iSource);'#13#10#13#10' // <%%% END IF_HAS_FI' +'ELDS %%%>'#13#10' // <%%% START FIELDS_NO_STRIP %%%>'#13#10' // <%%% ' +'START IF_FIELD_TYPE_SIMPLE %%%>'#13#10' %FIELD_NAME% := lSource.%FIELD_N' +'AME%;'#13#10' // <%%% END IF_FIELD_TYPE_SIMPLE %%%>'#13#10' // <%%% S' +'TART IF_FIELD_TYPE_COMPLEX %%%>'#13#10' // <%%% START IF_NOT_AUTO_CREATE' +'_FIELDS %%%>'#13#10' if Assigned(f%FIELD_NAME%) then begin'#13#10' ' +'if Assigned(lSource.%FIELD_NAME%) then'#13#10' %FIELD_NAME%.Assign(l' +'Source.%FIELD_NAME%)'#13#10' else'#13#10' FreeAndNil(f%FIELD_NA' +'ME%);'#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_TYPE_COMPLEX %%%>'#13#10' // <%%% E' +'ND FIELDS_NO_STRIP %%%>'#13#10' // <%%% START IF_HAS_FIELDS %%%>'#13#10' ' +'end;'#13#10' // <%%% END IF_HAS_FIELDS %%%>'#13#10'end;'#13#10#13#10'// <%' +'%% START STRUCT_GENERATE_DEFAULT_VALUES %%%>'#13#10'constructor %STRUCT_NAM' +'E%.Create(aCollection : TCollection);'#13#10'begin'#13#10' inherited Creat' ,'e(aCollection);'#13#10' // <%%% START FIELDS_NO_STRIP %%%>'#13#10' // <%%' +'% START IF_FIELD_HAS_DEFAULT_VALUE %%%>'#13#10' // <%%% START IF_FIELD_BOO' +'LEAN_TYPE %%%>'#13#10' f%FIELD_NAME% := %DEFAULT_VALUE%;'#13#10' // <%%% ' +'END IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' // <%%% START IF_FIELD_CURRENCY_TYP' +'E %%%>'#13#10' f%FIELD_NAME% := %DEFAULT_VALUE%;'#13#10' // <%%% END IF_F' +'IELD_CURRENCY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DATETIME_TYPE %%%>' +#13#10' f%FIELD_NAME% := StrToDateTimeDef(''%DEFAULT_VALUE%'',0);'#13#10' ' +'// <%%% END IF_FIELD_DATETIME_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DEC' +'IMAL_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_VALUE%;'#13#10' // <%%% END IF_FIE' +'LD_DOUBLE_TYPE %%%>'#13#10' // <%%% START IF_FIELD_GUID_TYPE %%%>'#13#10' ' +' f%FIELD_NAME% := ''%DEFAULT_VALUE%'';'#13#10' // <%%% END IF_FIELD_GUID_T' +'YPE %%%>'#13#10' // <%%% START IF_FIELD_INT64_TYPE %%%>'#13#10' f%FIELD_N' +'AME% := %DEFAULT_VALUE%;'#13#10' // <%%% END IF_FIELD_INT64_TYPE %%%>'#13 +#10' // <%%% START IF_FIELD_INTEGER_TYPE %%%>'#13#10' f%FIELD_NAME% := %DE' +'FAULT_VALUE%;'#13#10' // <%%% END IF_FIELD_INTEGER_TYPE %%%>'#13#10' // <' +'%%% START IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' f%FIELD_NAME% := ''%DEFAUL' +'T_VALUE%'';'#13#10' // <%%% END IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' // ' +'<%%% START IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' f%FIELD_NAME% := ''%DEFAU' +'LT_VALUE%'';'#13#10' // <%%% END IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' //' +' <%%% START IF_FIELD_VARIANT_TYPE %%%>'#13#10' f%FIELD_NAME% := ''%DEFAULT' +'_VALUE%'';'#13#10' // <%%% END IF_FIELD_VARIANT_TYPE %%%>'#13#10' // <%%%' +' START IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' f%FIELD_NAME% := ''%DEFAULT_V' +'ALUE%'';'#13#10' // <%%% END IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' // <%%' +'% END IF_FIELD_HAS_DEFAULT_VALUE %%%>'#13#10' // <%%% END FIELDS_NO_STRIP ' +'%%%>'#13#10'end;'#13#10'// <%%% END STRUCT_GENERATE_DEFAULT_VALUES %%%>'#13 +#10#13#10'destructor %STRUCT_NAME%.Destroy;'#13#10'begin'#13#10' FDestroyin' +'g := True;'#13#10' try'#13#10' inherited Destroy;'#13#10' finally'#13 +#10' FDestroying := False;'#13#10' end;'#13#10'end;'#13#10#13#10'// <%%%' +' START FIELDS_NO_STRIP %%%>'#13#10'// <%%% START 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%FI' +'ELD_NAME%) and not FDestroying then'#13#10' f%FIELD_NAME% := %FIELD_TYPE' +'%.Create();'#13#10' // <%%% END IF_AUTO_CREATE_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: TObjec' +'t);'#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_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' TROSerializ' +'er(ASerializer).ReadBinary(''%FIELD_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_TYP' +'E %%%>'#13#10' TROSerializer(ASerializer).ReadEnumerated(''%FIELD_NAME%' +''', TypeInfo(boolean), l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_BOO' +'LEAN_TYPE %%%>'#13#10' // <%%% START IF_FIELD_CURRENCY_TYPE %%%>'#13#10 +' TROSerializer(ASerializer).ReadDouble(''%FIELD_NAME%'', ftCurr, l_%FIEL' +'D_NAME%);'#13#10' // <%%% END IF_FIELD_CURRENCY_TYPE %%%>'#13#10' // ' +'<%%% START IF_FIELD_DATETIME_TYPE %%%>'#13#10' TROSerializer(ASerializer' +').ReadDateTime(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF' +'_FIELD_DATETIME_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DECIMAL_TYPE %%' +'%>'#13#10' TROSerializer(ASerializer).ReadDecimal(''%FIELD_NAME%'', l_%F' +'IELD_NAME%);'#13#10' // <%%% END IF_FIELD_DECIMAL_TYPE %%%>'#13#10' /' +'/ <%%% START IF_FIELD_DOUBLE_TYPE %%%>'#13#10' 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' TROSerializer(ASerializer).ReadGuid(''%FIELD_NAME%'', l_%F' +'IELD_NAME%);'#13#10' // <%%% END IF_FIELD_GUID_TYPE %%%>'#13#10' // <' +'%%% START IF_FIELD_INT64_TYPE %%%>'#13#10' TROSerializer(ASerializer).Re' ,'adInt64(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_' +'INT64_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INTEGER_TYPE %%%>'#13#10 +' TROSerializer(ASerializer).ReadInteger(''%FIELD_NAME%'', otSLong, l_%FI' +'ELD_NAME%);'#13#10' // <%%% END IF_FIELD_INTEGER_TYPE %%%>'#13#10' //' +' <%%% START IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' TROSerializer(ASeriali' +'zer).ReadAnsiString(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% E' +'ND IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_UTF8STRI' +'NG_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadUTF8String(''%FIELD_' +'NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_UTF8STRING_TYPE %' +'%%>'#13#10' // <%%% START IF_FIELD_VARIANT_TYPE %%%>'#13#10' TROSeria' +'lizer(ASerializer).ReadVariant(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' ' +' // <%%% END IF_FIELD_VARIANT_TYPE %%%>'#13#10' // <%%% START IF_FIELD_' +'WIDESTRING_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadWideString(' +'''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_WIDESTRI' +'NG_TYPE %%%>'#13#10' // <%%% START IF_FIELD_XML_TYPE %%%>'#13#10' TRO' +'Serializer(ASerializer).ReadXml(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' ' +' // <%%% END IF_FIELD_XML_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ARR' +'AY_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadArray(''%FIELD_NAME%' +''', %FIELD_TYPE%, l_%FIELD_NAME%);'#13#10' if %FIELD_NAME% <> l_%FIELD_N' +'AME% then %FIELD_NAME%.Free;'#13#10' // <%%% END IF_FIELD_ARRAY_TYPE %%%' +'>'#13#10' // <%%% START IF_FIELD_ENUM_TYPE %%%>'#13#10' TROSerializer' +'(ASerializer).ReadEnumerated(''%FIELD_NAME%'', TypeInfo(%FIELD_TYPE%), l_%F' +'IELD_NAME%);'#13#10' // <%%% END IF_FIELD_ENUM_TYPE %%%>'#13#10' // <' +'%%% START IF_FIELD_STRUCT_TYPE %%%>'#13#10' TROSerializer(ASerializer).R' +'eadStruct(''%FIELD_NAME%'', %FIELD_TYPE%, l_%FIELD_NAME%);'#13#10' if %F' +'IELD_NAME% <> l_%FIELD_NAME% then %FIELD_NAME%.Free;'#13#10' // <%%% END' +' IF_FIELD_STRUCT_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% :=' +' %FIELD_NAME%;'#13#10' // <%%% START IF_FIELD_BINARY_TYPE %%%>'#13#10' ' +' TROSerializer(ASerializer).ReadBinary(''%FIELD_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(ASerializer).ReadEnumerated(''%' +'FIELD_NAME%'', TypeInfo(boolean), l_%FIELD_NAME%);'#13#10' // <%%% END I' +'F_FIELD_BOOLEAN_TYPE %%%>'#13#10' // <%%% START IF_FIELD_CURRENCY_TYPE %' +'%%>'#13#10' TROSerializer(ASerializer).ReadDouble(''%FIELD_NAME%'', ftCu' +'rr, l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_CURRENCY_TYPE %%%>'#13 +#10' // <%%% START IF_FIELD_DATETIME_TYPE %%%>'#13#10' TROSerializer(A' +'Serializer).ReadDateTime(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <' +'%%% END IF_FIELD_DATETIME_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DECIM' +'AL_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadDecimal(''%FIELD_NAM' +'E%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DECIMAL_TYPE %%%>'#13 +#10' // <%%% START IF_FIELD_DOUBLE_TYPE %%%>'#13#10' TROSerializer(ASe' +'rializer).ReadDouble(''%FIELD_NAME%'', ftDouble, l_%FIELD_NAME%);'#13#10' ' +' // <%%% END IF_FIELD_DOUBLE_TYPE %%%>'#13#10' // <%%% START IF_FIELD_G' +'UID_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadGuid(''%FIELD_NAME%' +''', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_GUID_TYPE %%%>'#13#10 +' // <%%% START IF_FIELD_INT64_TYPE %%%>'#13#10' TROSerializer(ASerial' +'izer).ReadInt64(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END I' +'F_FIELD_INT64_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INTEGER_TYPE %%%>' +#13#10' 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' TROSerializer(AS' +'erializer).ReadAnsiString(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // ' +'<%%% END IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_UT' +'F8STRING_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadUTF8String(''%' +'FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_UTF8STRING_' +'TYPE %%%>'#13#10' // <%%% START IF_FIELD_VARIANT_TYPE %%%>'#13#10' TR' +'OSerializer(ASerializer).ReadVariant(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13 +#10' // <%%% END IF_FIELD_VARIANT_TYPE %%%>'#13#10' // <%%% START IF_F' +'IELD_WIDESTRING_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadWideStr' +'ing(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_WIDE' +'STRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_XML_TYPE %%%>'#13#10' ' ,' TROSerializer(ASerializer).ReadXml(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13 +#10' // <%%% END IF_FIELD_XML_TYPE %%%>'#13#10' // <%%% START IF_FIELD' +'_ARRAY_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadArray(''%FIELD_N' +'AME%'', %FIELD_TYPE%, l_%FIELD_NAME%);'#13#10' if %FIELD_NAME% <> l_%FIE' +'LD_NAME% then %FIELD_NAME%.Free;'#13#10' // <%%% END IF_FIELD_ARRAY_TYPE' +' %%%>'#13#10' // <%%% START IF_FIELD_ENUM_TYPE %%%>'#13#10' TROSerial' +'izer(ASerializer).ReadEnumerated(''%FIELD_NAME%'', TypeInfo(%FIELD_TYPE%), ' +'l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ENUM_TYPE %%%>'#13#10' ' +'// <%%% START IF_FIELD_STRUCT_TYPE %%%>'#13#10' TROSerializer(ASerialize' +'r).ReadStruct(''%FIELD_NAME%'', %FIELD_TYPE%, l_%FIELD_NAME%);'#13#10' i' +'f %FIELD_NAME% <> l_%FIELD_NAME% then %FIELD_NAME%.Free;'#13#10' // <%%%' +' END IF_FIELD_STRUCT_TYPE %%%>'#13#10' %FIELD_NAME% := l_%FIELD_NAME%;' +#13#10' // <%%% END ENTIRE_HIERARCHY_FIELDS %%%>'#13#10' end;'#13#10'end' +';'#13#10#13#10'procedure %STRUCT_NAME%.WriteComplex(ASerializer: TObject);' +#13#10'var'#13#10' // <%%% START ENTIRE_HIERARCHY_FIELDS %%%>'#13#10' l_%F' +'IELD_NAME%: %FIELD_TYPE%;'#13#10' // <%%% END ENTIRE_HIERARCHY_FIELDS %%%>' +#13#10'begin'#13#10' if TROSerializer(ASerializer).RecordStrictOrder then b' +'egin'#13#10' // <%%% START IF_STRUCT_HAS_ANCESTOR %%%>'#13#10' inheri' +'ted;'#13#10' // <%%% END IF_STRUCT_HAS_ANCESTOR %%%>'#13#10' TROSeria' +'lizer(ASerializer).ChangeClass(%STRUCT_NAME%);'#13#10' // <%%% START FIE' +'LDS_NO_STRIP %%%>'#13#10' l_%FIELD_NAME% := %FIELD_NAME%;'#13#10' // ' +'<%%% START IF_FIELD_BINARY_TYPE %%%>'#13#10' TROSerializer(ASerializer).' +'WriteBinary(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FI' +'ELD_BINARY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_BOOLEAN_TYPE %%%>'#13 +#10' TROSerializer(ASerializer).WriteEnumerated(''%FIELD_NAME%'', TypeInf' +'o(boolean), l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_BOOLEAN_TYPE %' +'%%>'#13#10' // <%%% START IF_FIELD_CURRENCY_TYPE %%%>'#13#10' TROSeri' +'alizer(ASerializer).WriteDouble(''%FIELD_NAME%'', ftCurr, l_%FIELD_NAME%);' +#13#10' // <%%% END IF_FIELD_CURRENCY_TYPE %%%>'#13#10' // <%%% START ' +'IF_FIELD_DATETIME_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteDate' +'Time(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DAT' +'ETIME_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DECIMAL_TYPE %%%>'#13#10 +' TROSerializer(ASerializer).WriteDecimal(''%FIELD_NAME%'', l_%FIELD_NAME' +'%);'#13#10' // <%%% END IF_FIELD_DECIMAL_TYPE %%%>'#13#10' // <%%% ST' +'ART IF_FIELD_DOUBLE_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteDo' +'uble(''%FIELD_NAME%'', ftDouble, l_%FIELD_NAME%);'#13#10' // <%%% END IF' +'_FIELD_DOUBLE_TYPE %%%>'#13#10' // <%%% START IF_FIELD_GUID_TYPE %%%>'#13 +#10' TROSerializer(ASerializer).WriteGuid(''%FIELD_NAME%'', l_%FIELD_NAME' +'%);'#13#10' // <%%% END IF_FIELD_GUID_TYPE %%%>'#13#10' // <%%% START' +' IF_FIELD_INT64_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteInt64(' +'''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INT64_TY' +'PE %%%>'#13#10' // <%%% START IF_FIELD_INTEGER_TYPE %%%>'#13#10' TROS' +'erializer(ASerializer).WriteInteger(''%FIELD_NAME%'', otSLong, l_%FIELD_NAM' +'E%);'#13#10' // <%%% END IF_FIELD_INTEGER_TYPE %%%>'#13#10' // <%%% S' +'TART IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' TROSerializer(ASerializer).Wr' +'iteAnsiString(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_' +'FIELD_ANSISTRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_UTF8STRING_TYP' +'E %%%>'#13#10' TROSerializer(ASerializer).WriteUTF8String(''%FIELD_NAME%' +''', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_UTF8STRING_TYPE %%%>' +#13#10' // <%%% START IF_FIELD_VARIANT_TYPE %%%>'#13#10' TROSerializer' +'(ASerializer).WriteVariant(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' //' +' <%%% END IF_FIELD_VARIANT_TYPE %%%>'#13#10' // <%%% START IF_FIELD_WIDE' +'STRING_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteWideString(''%F' +'IELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_WIDESTRING_T' +'YPE %%%>'#13#10' // <%%% START IF_FIELD_XML_TYPE %%%>'#13#10' TROSeri' +'alizer(ASerializer).WriteXml(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' ' +'// <%%% END IF_FIELD_XML_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ARRAY_' +'TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteArray(''%FIELD_NAME%''' +', 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_NAME%'', TypeInfo(%FIELD_TYPE%),' +' l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ENUM_TYPE %%%>'#13#10' ' +' // <%%% START IF_FIELD_STRUCT_TYPE %%%>'#13#10' TROSerializer(ASerializ' +'er).WriteStruct(''%FIELD_NAME%'', l_%FIELD_NAME%, %FIELD_TYPE%);'#13#10' ' ,' // <%%% END IF_FIELD_STRUCT_TYPE %%%>'#13#10' // <%%% END FIELDS_NO_STR' +'IP %%%>'#13#10' end'#13#10' else begin'#13#10' // <%%% START ENTIRE_HI' +'ERARCHY_FIELDS %%%>'#13#10' l_%FIELD_NAME% := %FIELD_NAME%;'#13#10' /' +'/ <%%% START IF_FIELD_BINARY_TYPE %%%>'#13#10' TROSerializer(ASerializer' +').WriteBinary(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_' +'FIELD_BINARY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_BOOLEAN_TYPE %%%>' +#13#10' TROSerializer(ASerializer).WriteEnumerated(''%FIELD_NAME%'', Type' +'Info(boolean), l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_BOOLEAN_TYP' +'E %%%>'#13#10' // <%%% START IF_FIELD_CURRENCY_TYPE %%%>'#13#10' TROS' +'erializer(ASerializer).WriteDouble(''%FIELD_NAME%'', ftCurr, l_%FIELD_NAME%' +');'#13#10' // <%%% END IF_FIELD_CURRENCY_TYPE %%%>'#13#10' // <%%% ST' +'ART IF_FIELD_DATETIME_TYPE %%%>'#13#10' TROSerializer(ASerializer).Write' +'DateTime(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD' +'_DATETIME_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DECIMAL_TYPE %%%>'#13 +#10' TROSerializer(ASerializer).WriteDecimal(''%FIELD_NAME%'', l_%FIELD_N' +'AME%);'#13#10' // <%%% END IF_FIELD_DECIMAL_TYPE %%%>'#13#10' // <%%%' +' START IF_FIELD_DOUBLE_TYPE %%%>'#13#10' TROSerializer(ASerializer).Writ' +'eDouble(''%FIELD_NAME%'', ftDouble, l_%FIELD_NAME%);'#13#10' // <%%% END' +' IF_FIELD_DOUBLE_TYPE %%%>'#13#10' // <%%% START IF_FIELD_GUID_TYPE %%%>' +#13#10' TROSerializer(ASerializer).WriteGuid(''%FIELD_NAME%'', 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_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INT64' +'_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INTEGER_TYPE %%%>'#13#10' T' +'ROSerializer(ASerializer).WriteInteger(''%FIELD_NAME%'', otSLong, l_%FIELD_' +'NAME%);'#13#10' // <%%% END IF_FIELD_INTEGER_TYPE %%%>'#13#10' // <%%' +'% START IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' TROSerializer(ASerializer)' +'.WriteAnsiString(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END ' +'IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_UTF8STRING_' +'TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteUTF8String(''%FIELD_NA' +'ME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_UTF8STRING_TYPE %%%' +'>'#13#10' // <%%% START IF_FIELD_VARIANT_TYPE %%%>'#13#10' TROSeriali' +'zer(ASerializer).WriteVariant(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' ' +' // <%%% END IF_FIELD_VARIANT_TYPE %%%>'#13#10' // <%%% START IF_FIELD_W' +'IDESTRING_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteWideString(' +'''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_WIDESTRI' +'NG_TYPE %%%>'#13#10' // <%%% START IF_FIELD_XML_TYPE %%%>'#13#10' TRO' +'Serializer(ASerializer).WriteXml(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10 +' // <%%% END IF_FIELD_XML_TYPE %%%>'#13#10' // <%%% START IF_FIELD_AR' +'RAY_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteArray(''%FIELD_NAM' +'E%'', l_%FIELD_NAME%, %FIELD_TYPE%);'#13#10' // <%%% END IF_FIELD_ARRAY_' +'TYPE %%%>'#13#10' // <%%% START IF_FIELD_ENUM_TYPE %%%>'#13#10' TROSe' +'rializer(ASerializer).WriteEnumerated(''%FIELD_NAME%'', TypeInfo(%FIELD_TYP' +'E%), l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ENUM_TYPE %%%>'#13#10 +' // <%%% START IF_FIELD_STRUCT_TYPE %%%>'#13#10' TROSerializer(ASeria' +'lizer).WriteStruct(''%FIELD_NAME%'', l_%FIELD_NAME%, %FIELD_TYPE%);'#13#10 +' // <%%% END IF_FIELD_STRUCT_TYPE %%%>'#13#10' // <%%% END ENTIRE_HIE' +'RARCHY_FIELDS %%%>'#13#10' end;'#13#10'end;'#13#10#13#10'// <%%% END IF_HA' +'S_FIELDS %%%>'#13#10'{ %STRUCT_COLLECTION_NAME% }'#13#10'constructor %STRUC' +'T_COLLECTION_NAME%.Create;'#13#10'begin'#13#10' inherited Create(%STRUCT_N' +'AME%);'#13#10'end;'#13#10#13#10'constructor %STRUCT_COLLECTION_NAME%.Create' +'(aItemClass: TCollectionItemClass);'#13#10'begin'#13#10' inherited Create(' +'aItemClass);'#13#10'end;'#13#10#13#10'function %STRUCT_COLLECTION_NAME%.Add' +': %STRUCT_NAME%;'#13#10'begin'#13#10' result := %STRUCT_NAME%(inherited Ad' +'d);'#13#10'end;'#13#10#13#10'function %STRUCT_COLLECTION_NAME%.GetItems(aIn' +'dex: integer): %STRUCT_NAME%;'#13#10'begin'#13#10' result := %STRUCT_NAME%' +'(inherited 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' Cle' +'ar;'#13#10' for i := 0 to (anArray.Count-1) do'#13#10' Add.Assign(anArr' +'ay[i]);'#13#10'end;'#13#10#13#10'procedure %STRUCT_COLLECTION_NAME%.SaveToA' +'rray(anArray: %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 (Count-1) do begin'#13#10' anArray[i] := %STRUCT_NAME%.Create;'#13#10 ,' anArray[i].Assign(Items[i]);'#13#10' end;'#13#10'end;'#13#10#13#10'// ' +'<%%% END ARRAYS_IS_FOUND %%%>'#13#10#13#10'procedure %STRUCT_COLLECTION_NAM' +'E%.SetItems(aIndex: integer; const Value: %STRUCT_NAME%);'#13#10'begin'#13 +#10' %STRUCT_NAME%(inherited Items[aIndex]).Assign(Value);'#13#10'end;'#13 +#10#13#10'// <%%% END STRUCTS %%%>'#13#10'// <%%% START SERVICES %%%>'#13#10 +'{ Co%SERVICE_NAME% }'#13#10#13#10'class function Co%SERVICE_NAME%.Create(co' +'nst aMessage: IROMessage; aTransportChannel: IROTransportChannel): I%SERVIC' +'E_NAME%;'#13#10'begin'#13#10' result := T%SERVICE_NAME%_Proxy.Create(aMess' +'age, aTransportChannel);'#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'// <%' +'%% START FUNCTION_OPERATIONS %%%>'#13#10'function T%SERVICE_NAME%_Proxy.%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'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' // <%%% START IF_RESULT_COMPLEX %%%>'#13#10' Result := nil;'#13#10' ' +'// <%%% END IF_RESULT_COMPLEX %%%>'#13#10' try'#13#10' __Message.Initia' +'lizeRequestMessage(__TransportChannel, ''%LIBRARY_NAME%'', __InterfaceName,' +' ''%OPERATION_NAME%'');'#13#10' // <%%% START IN_PARAMS_NO_STRIP %%%>'#13 +#10' __Message.Write(''%PARAM_NAME%'', TypeInfo(%PARAM_TYPE%), %PARAM_NAM' +'E%, [%PARAM_ATTRIBUTE%]);'#13#10' // <%%% END IN_PARAMS_NO_STRIP %%%>'#13 +#10' __Message.Finalize;'#13#10#13#10' __TransportChannel.Dispatch(__M' +'essage);'#13#10#13#10' __Message.Read(''Result'', TypeInfo(%OPERATION_RE' +'SULT%), result, [%OPERATION_RESULT_ATTRIBUTE%]);'#13#10' // <%%% START O' +'UT_PARAMS_NO_STRIP %%%>'#13#10' __Message.Read(''%PARAM_NAME%'', TypeInf' +'o(%PARAM_TYPE%), %PARAM_NAME%, [%PARAM_ATTRIBUTE%]);'#13#10' // <%%% END' +' OUT_PARAMS_NO_STRIP %%%>'#13#10' finally'#13#10' __Message.FreeStream;' +#13#10' end'#13#10'end;'#13#10#13#10'// <%%% END FUNCTION_OPERATIONS %%%>' +#13#10'// <%%% START PROCEDURE_OPERATIONS %%%>'#13#10'procedure T%SERVICE_NA' +'ME%_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_PARAM_TYPE' +'_COMPLEX %%%>'#13#10' %PARAM_NAME% := nil;'#13#10' // <%%% END IF_PARAM_T' +'YPE_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%'', TypeIn' +'fo(%PARAM_TYPE%), %PARAM_NAME%, [%PARAM_ATTRIBUTE%]);'#13#10' // <%%% EN' +'D IN_PARAMS_NO_STRIP %%%>'#13#10' __Message.Finalize;'#13#10#13#10' _' +'_TransportChannel.Dispatch(__Message);'#13#10#13#10' // <%%% START OUT_P' +'ARAMS_NO_STRIP %%%>'#13#10' __Message.Read(''%PARAM_NAME%'', TypeInfo(%P' +'ARAM_TYPE%), %PARAM_NAME%, [%PARAM_ATTRIBUTE%]);'#13#10' // <%%% END OUT' +'_PARAMS_NO_STRIP %%%>'#13#10' finally'#13#10' __Message.FreeStream;'#13 +#10' end'#13#10'end;'#13#10#13#10'// <%%% END PROCEDURE_OPERATIONS %%%>'#13 +#10'// <%%% END SERVICES %%%>'#13#10'// <%%% START EVENT_SINKS %%%>'#13#10't' +'ype'#13#10' { T%EVENT_SINK_NAME%_Writer }'#13#10' T%EVENT_SINK_NAME%_Writ' +'er = class(T%EVENT_SINK_WRITER_ANCESTOR_NAME%, I%EVENT_SINK_NAME%_Writer)' +#13#10' protected'#13#10' // <%%% START OPERATIONS %%%>'#13#10' proce' +'dure %OPERATION_NAME%(const __Sender : TGUID'#13#10' // <%%%' +' START PARAMS %%%>'#13#10' ; %PARAM_FRONT_MODIFIER% %PARAM_N' +'AME%: %PARAM_TYPE%'#13#10' // <%%% END PARAMS %%%>'#13#10' ' +' );'#13#10' // <%%% END OPERATIONS %%%>'#13#10' end;'#13#10 +#13#10'// <%%% START OPERATIONS %%%>'#13#10'procedure T%EVENT_SINK_NAME%_Wri' +'ter.%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'var __eventdata : Binary;'#13#10 +'begin'#13#10' __eventdata := Binary.Create;'#13#10' try'#13#10' __Mess' +'age.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_NO_STRIP %%%>'#13#10' ' +' __Message.Finalize;'#13#10#13#10' __Message.WriteToStream(__eventdata' +');'#13#10#13#10' Repository.StoreEventData(__Sender, __eventdata, Exclud' +'eSender, ExcludeSessionList, SessionList.CommaText);'#13#10' finally'#13#10 +' __eventdata.Free;'#13#10' end;'#13#10'end;'#13#10#13#10'// <%%% END OP' +'ERATIONS %%%>'#13#10'type'#13#10' { T%EVENT_SINK_NAME%_Invoker }'#13#10' ' +'T%EVENT_SINK_NAME%_Invoker = class(T%EVENT_SINK_INVOKER_ANCESTOR_NAME%)'#13 +#10' published'#13#10' // <%%% START OPERATIONS %%%>'#13#10' procedur' +'e Invoke_%OPERATION_NAME%(__EventReceiver : TROEventReceiver; const __Messa' +'ge : IROMessage; const __Target : IUnknown);'#13#10' // <%%% END OPERATI' +'ONS %%%>'#13#10' end;'#13#10#13#10'// <%%% START OPERATIONS %%%>'#13#10'pr' +'ocedure T%EVENT_SINK_NAME%_Invoker.Invoke_%OPERATION_NAME%(__EventReceiver ' +': TROEventReceiver; const __Message : IROMessage; const __Target : IUnknown' +');'#13#10'var'#13#10' // <%%% START PARAMS_NO_STRIP %%%>'#13#10' %PARAM_N' +'AME%: %PARAM_TYPE%;'#13#10' // <%%% END PARAMS_NO_STRIP %%%>'#13#10' // <' +'%%% START IF_HAS_COMPLEX_TYPE %%%>'#13#10' __lObjectDisposer: TROObjectDis' +'poser;'#13#10' // <%%% END IF_HAS_COMPLEX_TYPE %%%>'#13#10' __%EVENT_SINK' +'_NAME%Instance: I%EVENT_SINK_NAME%;'#13#10'begin'#13#10' // <%%% START PAR' +'AMS_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' try'#13#10' // <%%% START' +' PARAMS_NO_STRIP %%%>'#13#10' __Message.Read(''%PARAM_NAME%'', TypeInfo(' +'%PARAM_TYPE%), %PARAM_NAME%, [%PARAM_ATTRIBUTE%]);'#13#10' // <%%% END P' +'ARAMS_NO_STRIP %%%>'#13#10#13#10' __%EVENT_SINK_NAME%Instance := (__Targ' +'et as I%EVENT_SINK_NAME%);'#13#10' __%EVENT_SINK_NAME%Instance.%OPERATIO' +'N_NAME%('#13#10' // <%%% START PARAMS %%%>' +#13#10' %PARAM_NAME%,'#13#10' ' +' // <%%% END PARAMS %%%>'#13#10' ' +' );'#13#10#13#10' finally'#13#10' // <%%% START IF_HAS_COMPLEX' +'_TYPE %%%>'#13#10' __lObjectDisposer := TROObjectDisposer.Create(__Event' +'Receiver);'#13#10' try'#13#10' // <%%% START PARAMS_NO_STRIP %%%>' +#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' __lObject' +'Disposer.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_H' +'AS_COMPLEX_TYPE %%%>'#13#10' end'#13#10'end;'#13#10#13#10'// <%%% END OPER' +'ATIONS %%%>'#13#10'// <%%% END EVENT_SINKS %%%>'#13#10'initialization'#13#10 +' // <%%% START STRUCTS %%%>'#13#10' RegisterROClass(%STRUCT_NAME%);'#13#10 +' // <%%% END STRUCTS %%%>'#13#10' // <%%% START ARRAYS %%%>'#13#10' Regi' +'sterROClass(%ARRAY_NAME%);'#13#10' // <%%% END ARRAYS %%%>'#13#10' // <%%' +'% START EXCEPTIONS %%%>'#13#10' RegisterExceptionClass(%EXCEPTION_NAME%);' +#13#10' // <%%% END EXCEPTIONS %%%>'#13#10' // <%%% START SERVICES %%%>'#13 +#10' RegisterProxyClass(I%SERVICE_NAME%_IID, T%SERVICE_NAME%_Proxy);'#13#10 +' // <%%% END SERVICES %%%> '#13#10' // <%%% START 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' UnregisterROCl' +'ass(%STRUCT_NAME%);'#13#10' // <%%% END STRUCTS %%%>'#13#10' // <%%% STAR' +'T ARRAYS %%%>'#13#10' UnregisterROClass(%ARRAY_NAME%);'#13#10' // <%%% EN' +'D ARRAYS %%%>'#13#10' // <%%% START EXCEPTIONS %%%>'#13#10' UnregisterExc' +'eptionClass(%EXCEPTION_NAME%);'#13#10' // <%%% END EXCEPTIONS %%%>'#13#10 +' // <%%% START SERVICES %%%>'#13#10' UnregisterProxyClass(I%SERVICE_NAME%' +'_IID);'#13#10' // <%%% END SERVICES %%%>'#13#10' // <%%% START EVENT_SINK' +'S %%%>'#13#10' UnregisterEventWriterClass(I%EVENT_SINK_NAME%_Writer);'#13 +#10' UnregisterEventInvokerClass(EID_%EVENT_SINK_NAME%);'#13#10' // <%%% E' +'ND 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 '#13#10'#include '#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(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(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' return &fItems[Index]' +';'#13#10'}'#13#10#13#10'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10'voi' +'d __fastcall %ARRAY_NAME%::SetItemRef(const int Index, void* Ref)'#13#10'{' +#13#10' if ((Index < 0) || (Index >= Count))'#13#10' {'#13#10' RaiseErr' +'or(LoadResourceString(&_err_ArrayIndexOutOfBounds), ARRAYOFCONST((Index)));' +#13#10' }'#13#10#13#10' if (Ref != fItems[Index])'#13#10' {'#13#10' de' +'lete fItems[Index];'#13#10' fItems[Index] = reinterpret_cast<%ARRAY_TYPE' +'%*>(Ref);'#13#10' }'#13#10'}'#13#10#13#10'// <%%% END IF_ARRAY_TYPE_COMPLE' +'X %%%>'#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_COM' +'PLEX %%%>'#13#10' fItems.set_length(0);'#13#10' fCount = 0;'#13#10'}'#13 +#10#13#10'void __fastcall %ARRAY_NAME%::Delete(const int Index)'#13#10'{'#13 +#10' if (Index >= Count)'#13#10' {'#13#10' RaiseError(LoadResourceStrin' +'g(&_err_InvalidIndex), ARRAYOFCONST((Index)));'#13#10' }'#13#10#13#10' //' +' <%%% START 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] = fItems[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 ElementCount)'#13#10'{'#13#10'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>' +#13#10' int i;'#13#10' for(i = fCount -1; i >= ElementCount; --i)'#13#10' ' ,' delete fItems[i];'#13#10'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' ' +' fItems.set_length(ElementCount);'#13#10'// <%%% START IF_ARRAY_TYPE_COMPLE' +'X %%%>'#13#10' for(i = fCount; i <= ElementCount -1; ++i)'#13#10' fItem' +'s[i] = new %ARRAY_TYPE%();'#13#10'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#13 +#10' fCount = ElementCount;'#13#10'}'#13#10#13#10'// <%%% START IF_ARRAY_TY' +'PE_COMPLEX %%%>'#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_COMP' +'LEX %%%>'#13#10'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10'int __fastc' +'all %ARRAY_NAME%::Add(%ARRAY_TYPE%* Value)'#13#10'// <%%% END IF_ARRAY_TYPE' +'_COMPLEX %%%>'#13#10'// <%%% START IF_ARRAY_TYPE_SIMPLE %%%>'#13#10'int __f' +'astcall %ARRAY_NAME%::Add(%ARRAY_TYPE% Value)'#13#10'// <%%% END IF_ARRAY_T' +'YPE_SIMPLE %%%>'#13#10'{'#13#10' int result = Count;'#13#10' if (fItems.L' +'ength == result)'#13#10' Grow();'#13#10#13#10' fItems[result] = Value;' +#13#10' fCount++;'#13#10' return result;'#13#10'}'#13#10'// <%%% END ARRAY' +'S %%%>'#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' ' +' , %FIELD_TYPE% a%FIELD_NAME% '#13#10' // <%%% END IF_FI' +'ELD_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_FIEL' +'D_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 FIELDS_NO_' +'STRIP %%%>'#13#10' ): %EXCEPTION_ANCESTOR_NAME%(anExcepti' +'onMessage'#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'}'#13#10#13#10'// <%%% STAR' +'T IF_HAS_FIELDS %%%>'#13#10'void __fastcall %EXCEPTION_NAME%::ReadException' +'(TObject* ASerializer)'#13#10'{'#13#10' if (dynamic_cast(A' +'Serializer)->RecordStrictOrder)'#13#10' {'#13#10' // <%%% START IF_STRU' +'CT_HAS_ANCESTOR %%%>'#13#10' inherited::ReadException(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(ASerializer)->ReadBinary("%FI' +'ELD_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(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(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(ASerial' +'izer)->ReadDateTime("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% EN' +'D IF_FIELD_DATETIME_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DECIMAL_TYP' +'E %%%>'#13#10' dynamic_cast(ASerializer)->ReadDecimal("%' +'FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DECIMAL_TYP' +'E %%%>'#13#10' // <%%% START IF_FIELD_DOUBLE_TYPE %%%>'#13#10' dynami' +'c_cast(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(ASerializer)->ReadGuid("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' //' +' <%%% END IF_FIELD_GUID_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INT64_T' +'YPE %%%>'#13#10' dynamic_cast(ASerializer)->ReadInt64("%' +'FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INT64_TYPE ' +'%%%>'#13#10' // <%%% START IF_FIELD_INTEGER_TYPE %%%>'#13#10' dynamic' +'_cast(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(ASerializer)->ReadAnsiString("%FIELD_NAME%", &l_%FIELD_NAME%);' +#13#10' // <%%% END IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' // <%%% STAR' +'T IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' dynamic_cast(ASe' +'rializer)->ReadUTF8String("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <' +'%%% END IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_VAR' +'IANT_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->ReadVa' +'riant("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_VAR' +'IANT_TYPE %%%>'#13#10' // <%%% START IF_FIELD_WIDESTRING_TYPE %%%>'#13#10 +' dynamic_cast(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(ASerializer)->ReadXml("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10 +' // <%%% END IF_FIELD_XML_TYPE %%%>'#13#10' // <%%% START IF_FIELD_AR' +'RAY_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->ReadArr' +'ay("%FIELD_NAME%", __classid(%FIELD_TYPE%), &l_%FIELD_NAME%);'#13#10' if' +' (%FIELD_NAME% != l_%FIELD_NAME%) delete %FIELD_NAME%;'#13#10' // <%%% E' +'ND IF_FIELD_ARRAY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ENUM_TYPE %%%' +'>'#13#10' dynamic_cast(ASerializer)->ReadEnumerated("%FI' +'ELD_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(ASerializer)->ReadStruct("%FIELD_NAM' +'E%", __classid(%FIELD_TYPE%), &l_%FIELD_NAME%);'#13#10' if (%FIELD_NAME%' +' != l_%FIELD_NAME%) delete %FIELD_NAME%;'#13#10' // <%%% END IF_FIELD_ST' +'RUCT_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_FI' +'ELD_TYPE_COMPLEX %%%>'#13#10' %FIELD_TYPE%* l_%FIELD_NAME% = %FIELD_NAME' +'%;'#13#10' // <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#13#10' // <%%% STA' +'RT IF_FIELD_BINARY_TYPE %%%>'#13#10' dynamic_cast(ASeria' +'lizer)->ReadBinary("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' if (%FIELD_' +'NAME% != l_%FIELD_NAME%) delete %FIELD_NAME%;'#13#10' // <%%% END IF_FIE' +'LD_BINARY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_BOOLEAN_TYPE %%%>'#13 +#10' dynamic_cast(ASerializer)->ReadEnumerated("%FIELD_NA' +'ME%", __GetboolInfo, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_BOOL' +'EAN_TYPE %%%>'#13#10' // <%%% START IF_FIELD_CURRENCY_TYPE %%%>'#13#10' ' +' dynamic_cast(ASerializer)->ReadDouble("%FIELD_NAME%", ft' +'Curr, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_CURRENCY_TYPE %%%>' +#13#10' // <%%% START IF_FIELD_DATETIME_TYPE %%%>'#13#10' dynamic_cast' +'(ASerializer)->ReadDateTime("%FIELD_NAME%", &l_%FIELD_NAME%' +');'#13#10' // <%%% END IF_FIELD_DATETIME_TYPE %%%>'#13#10' // <%%% ST' +'ART IF_FIELD_DECIMAL_TYPE %%%>'#13#10' dynamic_cast(ASer' +'ializer)->ReadDecimal("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% ' +'END IF_FIELD_DECIMAL_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DOUBLE_TYP' +'E %%%>'#13#10' dynamic_cast(ASerializer)->ReadDouble("%F' +'IELD_NAME%", ftDouble, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DO' +'UBLE_TYPE %%%>'#13#10' // <%%% START IF_FIELD_GUID_TYPE %%%>'#13#10' ' +'dynamic_cast(ASerializer)->ReadGuid("%FIELD_NAME%", &l_%FIE' +'LD_NAME%);'#13#10' // <%%% END IF_FIELD_GUID_TYPE %%%>'#13#10' // <%%' +'% START IF_FIELD_INT64_TYPE %%%>'#13#10' dynamic_cast(AS' +'erializer)->ReadInt64("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% ' +'END IF_FIELD_INT64_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INTEGER_TYPE' +' %%%>'#13#10' dynamic_cast(ASerializer)->ReadInteger("%F' +'IELD_NAME%", otSLong, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INT' +'EGER_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ANSISTRING_TYPE %%%>'#13#10 ,' dynamic_cast(ASerializer)->ReadAnsiString("%FIELD_NAME%' +'", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ANSISTRING_TYPE %%%>' +#13#10' // <%%% START IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' dynamic_ca' +'st(ASerializer)->ReadUTF8String("%FIELD_NAME%", &l_%FIELD_N' +'AME%);'#13#10' // <%%% END IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' // <' +'%%% START IF_FIELD_VARIANT_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->ReadVariant("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' //' +' <%%% END IF_FIELD_VARIANT_TYPE %%%>'#13#10' // <%%% START IF_FIELD_WIDE' +'STRING_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->Read' +'WideString("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIEL' +'D_WIDESTRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_XML_TYPE %%%>'#13 +#10' dynamic_cast(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(ASerializer)->ReadArray("%FIELD_NAME%", __classid(%FIELD_TYPE%), &l_%FIE' +'LD_NAME%);'#13#10' if (%FIELD_NAME% != l_%FIELD_NAME%) delete %FIELD_NAM' +'E%;'#13#10' // <%%% END IF_FIELD_ARRAY_TYPE %%%>'#13#10' // <%%% STAR' +'T IF_FIELD_ENUM_TYPE %%%>'#13#10' dynamic_cast(ASerializ' +'er)->ReadEnumerated("%FIELD_NAME%", __Get%FIELD_TYPE%Info, &l_%FIELD_NAME%)' +';'#13#10' // <%%% END IF_FIELD_ENUM_TYPE %%%>'#13#10' // <%%% START I' +'F_FIELD_STRUCT_TYPE %%%>'#13#10' dynamic_cast(ASerialize' +'r)->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 %EXCEPTION_NAME%::WriteException(TObject*' +' ASerializer)'#13#10'{'#13#10' if (dynamic_cast(ASerialize' +'r)->RecordStrictOrder)'#13#10' {'#13#10' // <%%% START IF_STRUCT_HAS_AN' +'CESTOR %%%>'#13#10' inherited::WriteException(ASerializer);'#13#10' /' +'/ <%%% END IF_STRUCT_HAS_ANCESTOR %%%>'#13#10' // <%%% START FIELDS_NO_S' +'TRIP %%%>'#13#10' // <%%% START IF_FIELD_TYPE_SIMPLE %%%>'#13#10' %FI' +'ELD_TYPE% l_%FIELD_NAME% = %FIELD_NAME%;'#13#10' // <%%% END IF_FIELD_TY' +'PE_SIMPLE %%%>'#13#10' // <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#13#10' ' +' %FIELD_TYPE%* l_%FIELD_NAME% = %FIELD_NAME%;'#13#10' // <%%% END IF_F' +'IELD_TYPE_COMPLEX %%%>'#13#10' // <%%% START IF_FIELD_BINARY_TYPE %%%>' +#13#10' dynamic_cast(ASerializer)->WriteBinary("%FIELD_NA' +'ME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_BINARY_TYPE %%%>'#13 +#10' // <%%% START IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->WriteEnumerated("%FIELD_NAME%", __GetboolInfo, &' +'l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' ' +' // <%%% START IF_FIELD_CURRENCY_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->WriteDouble("%FIELD_NAME%", ftCurr, &l_%FIELD_NAME%' +');'#13#10' // <%%% END IF_FIELD_CURRENCY_TYPE %%%>'#13#10' // <%%% ST' +'ART IF_FIELD_DATETIME_TYPE %%%>'#13#10' dynamic_cast(ASe' +'rializer)->WriteDateTime("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%' +'%% END IF_FIELD_DATETIME_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DECIMA' +'L_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->WriteDeci' +'mal("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DECIM' +'AL_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DOUBLE_TYPE %%%>'#13#10' ' +'dynamic_cast(ASerializer)->WriteDouble("%FIELD_NAME%", ftDo' +'uble, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DOUBLE_TYPE %%%>'#13 +#10' // <%%% START IF_FIELD_GUID_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->WriteGuid("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10 +' // <%%% END IF_FIELD_GUID_TYPE %%%>'#13#10' // <%%% START IF_FIELD_I' +'NT64_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->WriteI' +'nt64("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INT6' +'4_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INTEGER_TYPE %%%>'#13#10' ' +'dynamic_cast(ASerializer)->WriteInteger("%FIELD_NAME%", otS' +'Long, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INTEGER_TYPE %%%>' +#13#10' // <%%% START IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' dynamic_ca' +'st(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(ASerializer)->WriteUTF8String("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10 ,' // <%%% END IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' // <%%% START IF_F' +'IELD_VARIANT_TYPE %%%>'#13#10' dynamic_cast(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(ASerializer)->WriteWideString("' +'%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_WIDESTRING' +'_TYPE %%%>'#13#10' // <%%% START IF_FIELD_XML_TYPE %%%>'#13#10' dynam' +'ic_cast(ASerializer)->WriteXml("%FIELD_NAME%", &l_%FIELD_NA' +'ME%);'#13#10' // <%%% END IF_FIELD_XML_TYPE %%%>'#13#10' // <%%% STAR' +'T IF_FIELD_ARRAY_TYPE %%%>'#13#10' dynamic_cast(ASeriali' +'zer)->WriteArray("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END I' +'F_FIELD_ARRAY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ENUM_TYPE %%%>'#13 +#10' dynamic_cast(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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' +'(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(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(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(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(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(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(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(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(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(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(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(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(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(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(' +'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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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' +'(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(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(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(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(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(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(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(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(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(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(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(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' +'(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(&__%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 // Pascal u' +'nit'#13#10'#include // Pascal unit'#13#10'#include // Pascal unit'#13#10'#include // Pa' +'scal unit'#13#10'#include // Pascal unit'#13#10'#inclu' +'de // 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 _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(&' +'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 _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 _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 '#13#10'#include '#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 '#9#9#9' // Pascal unit'#13#10 +'#include '#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 '#9' // Pascal unit'#13 +#10'// <%%% START IF_DATA_MODULE %%%>'#13#10'#include '#13#10'#' +'include '#13#10'#include '#13#10'#include '#13#10'#include // Pascal unit'#13#10'// ' +'<%%% END IF_DATA_MODULE %%%>'#13#10'#include // 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 '#9#9#9' // Pa' +'scal unit'#13#10'#include '#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 _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(&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' %VALUE_NAME%: return @"%VALUE_NAME%"; ' +#10#9#9' // <%%% END VALUES_NO_STRIP %%%>'#10#9#9' default: return [NSString' +' 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'// <%%% STAR' +'T FIELDS_NO_STRIP %%%>'#10'@synthesize %FIELD_NAME%;'#10'// <%%% END FIELDS' +'_NO_STRIP %%%>'#10#10'// <%%% START IF_HAS_FIELDS %%%>'#10'-(id) init'#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'[super deall' +'oc];'#10'}'#10'// <%%% END IF_HAS_FIELDS %%%>'#10#10'-(void) assignFrom:(RO' +'ComplexType*) aSource'#10'{'#10'}'#10#10'// <%%% START IF_HAS_FIELDS %%%>' +#10'-(void)writeToMessage:(ROMessage *) aMessage withName:(NSString *) aName' +#10'{'#10#9'// <%%% START ENTIRE_HIERARCHY_FIELDS %%%>'#10#9'[aMessage write' +'%FIELD_READER_WRITER%:%FIELD_NAME% withName:@"%FIELD_NAME%"];'#10#9'// <%%%' +' END ENTIRE_HIERARCHY_FIELDS %%%>'#10'}'#10'-(void)readFromMessage:(ROMessa' +'ge *) aMessage withName:(NSString *) aName'#10'{'#10#9'// <%%% START ENTIRE' +'_HIERARCHY_FIELDS %%%>'#10#9'// <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#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'[aMessage read%FI' +'ELD_READER_WRITER%:&%FIELD_NAME% withName:@"%FIELD_NAME%"];'#10#9'// <%%% E' +'ND 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#10'@end'#10'// <%%% END STRUCTS %%%>'#10 +#10'#pragma mark arrays'#10#10'// <%%% START ARRAYS %%%>'#10'@implementation' +' %ARRAY_NAME% '#10#10'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#10'- (%ARRA' +'Y_TYPE%) add'#10'{'#10#9'%ARRAY_TYPE% __new = [[%ARRAY_TYPE_NAME% alloc] in' +'it];'#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_COMPLEX %%%>'#10 +#9'[super addItem:object];'#10#9'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#10#9 +'// <%%% START IF_ARRAY_TYPE_SIMPLE %%%>'#10#9'[super addItem:[NSNumber numb' +'erWithLongLong:object]];'#10#9'// <%%% END IF_ARRAY_TYPE_SIMPLE %%%>'#10'}' +#10#10'- (void)insertItem:(%ARRAY_TYPE%)object atIndex:(NSUInteger)index'#10 +'{'#10#9'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#10#9'[super insertItem:ob' +'ject atIndex:index];'#10#9'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#10#9'// ' +'<%%% START IF_ARRAY_TYPE_SIMPLE %%%>'#10#9'[super insertItem:[NSNumber numb' +'erWithLongLong:object] atIndex:index];'#10#9'// <%%% END IF_ARRAY_TYPE_SIMP' +'LE %%%>'#10'}'#10#10'- (void)replaceItemAtIndex:(NSUInteger)index withObjec' +'t:(%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 withObject:[NSNumber numberWithLongLong:o' +'bject]];'#10#9'// <%%% END IF_ARRAY_TYPE_SIMPLE %%%>'#10'}'#10#10'- (%ARRAY' +'_TYPE%)itemAtIndex:(NSUInteger)index;'#10'{'#10#9'// <%%% START IF_ARRAY_TY' +'PE_COMPLEX %%%>'#10#9'return (%ARRAY_TYPE%)[super itemAtIndex:index];'#10#9 +'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#10#9'// <%%% START IF_ARRAY_TYPE_SI' +'MPLE %%%>'#10#9'return [(NSNumber *)[super itemAtIndex:index] longLongValue' +'];'#10#9'// <%%% END IF_ARRAY_TYPE_SIMPLE %%%>'#10'}'#10#10'// <%%% START I' +'F_ARRAY_TYPE_COMPLEX %%%>'#10'- (Class) itemClass'#10'{'#10#9'return [%ARRA' ,'Y_TYPE_NAME% class];'#10'}'#10'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#10#10 +'- (void)writeItemToMessage:(ROMessage *)aMessage fromIndex:(int)i'#10'{'#10 +#9'[aMessage write%ARRAY_TYPE_READER_WRITER%:[self itemAtIndex:i] withName:n' +'il];'#10'}'#10#10'- (void)readItemFromMessage:(ROMessage *)aMessage toIndex' +':(int)i'#10'{'#10#9'%ARRAY_TYPE% __item;'#10#9'// <%%% START IF_ARRAY_TYPE_' +'COMPLEX %%%>'#10#9'[aMessage read%ARRAY_TYPE_READER_WRITER%:&__item withNam' +'e: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 replaceItemAtIndex:i withObject:__item];'#10#9 +'[self addItem:__item]; // assumes this is called in ascending order'#10'}' +#10#10'@end;'#10#10'// <%%% END ARRAYS %%%>'#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_STRI' +'P %%%>'#10'@synthesize %FIELD_NAME%;'#10'// <%%% END FIELDS_NO_STRIP %%%>' +#10#10'-(id) initWithMessage:(NSString *) anExceptionMessage'#10' ' +' // <%%% START ANCESTOR_FIELDS %%%>'#10' : (%FIELD' +'_TYPE%) a%FIELD_NAME% '#10' // <%%% END ANCESTOR_FIELDS %' +'%%>'#10' // <%%% START FIELDS_NO_STRIP %%%>'#10' ' +' : (%FIELD_TYPE%) a%FIELD_NAME% '#10' // <%%% EN' +'D FIELDS_NO_STRIP %%%>'#10'{'#10#9'self = [super initWithMessage:anExceptio' +'nMessage'#10#9#9'// <%%% START ANCESTOR_FIELDS %%%>'#10#9#9':a%FIELD_NAME% ' +#10#9#9'// <%%% END ANCESTOR_FIELDS %%%>'#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_ST' +'RIP %%%>'#10#9#9'// <%%% START FIELDS_NO_STRIP %%%>'#10#9#9'// <%%% START I' +'F_FIELD_TYPE_COMPLEX %%%>'#10#9#9'[%FIELD_NAME% retain];'#10#9#9'// <%%% EN' +'D 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'-(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'/' +'/ <%%% 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 *) aMes' +'sage withName:(NSString *) aName'#10'{'#10#9'// <%%% START ENTIRE_HIERARCHY' +'_FIELDS %%%>'#10#9'[aMessage write%FIELD_READER_WRITER%:%FIELD_NAME% withNa' +'me:@"%FIELD_NAME%"];'#10#9'// <%%% END ENTIRE_HIERARCHY_FIELDS %%%>'#10'}' +#10'-(void)readFromMessage:(ROMessage *) aMessage withName:(NSString *) aNam' +'e'#10'{'#10#9'// <%%% START ENTIRE_HIERARCHY_FIELDS %%%>'#10#9'// <%%% STAR' +'T IF_FIELD_TYPE_COMPLEX %%%>'#10#9'[aMessage read%FIELD_READER_WRITER%:&%FI' +'ELD_NAME% withName:@"%FIELD_NAME%" asClass:[%FIELD_TYPE_NAME% class]];'#10#9 +'// <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#10#9'// <%%% START IF_FIELD_TYPE_SI' +'MPLE %%%>'#10#9'[aMessage 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_FIEL' +'DS %%%>'#10#9'// <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#10#9'[%FIELD_NAME% ' +'retain];'#10#9'// <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#10#9'// <%%% END ENT' +'IRE_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:(ROMessage*) aMessage channel:(ROClientChannel*) aCha' +'nnel'#10'{'#10#9'self = [super initWithMessage: aMessage channel: aChannel]' +';'#10#9'return self;'#10'}'#10#10'-(void) dealloc'#10'{'#10#9'[super deallo' +'c];'#10'}'#10#10'-(NSString*) __getInterfaceName'#10'{'#10#9'return @"%SERV' +'ICE_NAME%";'#10'}'#10#10'// <%%% START OPERATIONS %%%>'#10'- (%OPERATION_RE' +'SULT_TYPE%) %OPERATION_NAME%'#10#9'// <%%% START PARAMS %%%>'#10#9':(%PARAM' +'_TYPE%%PARAM_BACK_MODIFIER%) %PARAM_NAME% '#10#9'// <%%% END PARAMS %%%>' +#10'{'#10#9'// <%%% START IF_OPERATION_HAS_RESULT %%%>'#10#9'%OPERATION_RESU' +'LT_TYPE% __result;'#10#9'// <%%% END IF_OPERATION_HAS_RESULT %%%>'#10#10#9 +'[[self __message] initializeAsRequestMessage:[self __clientChannel] library' +'Name:@"%LIBRARY_NAME%" interfaceName:[self __getActiveInterfaceName] messag' +'eName:@"%OPERATION_NAME%"];'#10#9'@try'#10#9'{'#10#9#9'// <%%% START IN_PAR' ,'AMS_NO_STRIP %%%> '#10#9#9'[[self __message] write%PARAM_READER_WRITER%:' +'%PARAM_NAME% withName:@"%PARAM_NAME%"];'#10#9#9'// <%%% END IN_PARAMS_NO_ST' +'RIP %%%>'#10#9#9'[[self __message] finalizeMessage];'#10#9#9#10#9#9'[[self ' +'__clientChannel] dispatch:[self __message]];'#10#10#9#9'// <%%% START IF_RE' +'SULT_COMPLEX %%%>'#10#9#9'[[self __message] read%OPERATION_RESULT_READER_WR' +'ITER%:&__result withName:@"%OPERATION_RESULT_NAME%" asClass:[%OPERATION_RES' +'ULT_TYPE_NAME% class]];'#10#9#9'// <%%% END IF_RESULT_COMPLEX %%%>'#10#9#9 +'// <%%% START IF_RESULT_SIMPLE %%%>'#10#9#9'[[self __message] read%OPERATIO' +'N_RESULT_READER_WRITER%:&__result withName:@"%OPERATION_RESULT_NAME%"];'#10 +#9#9'// <%%% END IF_RESULT_SIMPLE %%%>'#10#9#9'// <%%% START OUT_PARAMS_NO_S' +'TRIP %%%> '#10#9#9'// <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#10#9#9'[[sel' +'f __message] read%PARAM_READER_WRITER%:%PARAM_NAME% withName:@"%PARAM_NAME%' +'" asClass:[%PARAM_TYPE_NAME% class]];'#10#9#9'// <%%% END IF_PARAM_TYPE_COM' +'PLEX %%%>'#10#9#9'// <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#10#9#9'[[self __' +'message] read%PARAM_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] cle' +'ar];'#10#9'}'#10#10#9'// <%%% START IF_OPERATION_HAS_RESULT %%%>'#10#9'retu' +'rn __result;'#10#9'// <%%% END IF_OPERATION_HAS_RESULT %%%>'#10'}'#10#10'//' +' <%%% END OPERATIONS %%%>'#10' '#10'@end'#10#10'// <%%% END SERVICES %%%>' +#10#10'void Initialize%LIBRARY_NAME%()'#10'{'#10#9'// <%%% START STRUCTS %%%' +'>'#10#9'[[ROTypeManager typeManager] addType:[%STRUCT_NAME% class] classNam' +'e:@"%STRUCT_NAME%"];'#10#9'// <%%% END STRUCTS %%%>'#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 %UNIT_NAME%_H'#10'#define %UNIT_NAME%_H'#10#10'#import '#10'// <%%% START REQUIRED_UNITS %%%>'#10'#import' +' <%REQUIRED_UNIT_NAME%.h>'#10'// <%%% END REQUIRED_UNITS %%%>'#10#10'#pragm' +'a mark defines'#10#10'// Library ID'#10'////#define LibraryID "%LIBRARY_UID' +'%"'#10'////#define TargetNamespace "%NAMESPACE_NAME%"'#10#10'// Service Int' +'erface ID''s'#10'// <%%% START SERVICES %%%>'#10'#define I%SERVICE_NAME%_I' +'ID "%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_%EVENT_SINK_NAME% "%EVENT_SIN' +'K_NAME%"'#10'const GUID I%EVENT_SINK_NAME%_IID = ROStringToGUID("%EVENT_SIN' +'K_UID%");'#10'// <%%% END EVENT_SINKS %%%>'#10#10'// Type Registration'#10 +'void Initialize%LIBRARY_NAME%();'#10#10'// Forward declarations'#10'// <%%%' +' START SERVICES %%%>'#10'@protocol I%SERVICE_NAME%; '#10'// <%%% END SERVIC' +'ES %%%>'#10'// <%%% START ARRAYS %%%>'#10'@class %ARRAY_NAME%;'#10'// <%%% ' +'END ARRAYS %%%>'#10'// <%%% START STRUCTS %%%>'#10'@class %STRUCT_NAME%;'#10 +'// <%%% END STRUCTS %%%>'#10'// <%%% START EXCEPTIONS %%%>'#10'@class %EXCE' +'PTION_NAME%;'#10'// <%%% END EXCEPTIONS %%%>'#10'// <%%% START EVENT_SINKS ' +'%%%>'#10'@protocol I%EVENT_SINK_NAME%;'#10'// <%%% END EVENT_SINKS %%%>'#10 +#10'// <%%% START ENUMS %%%>'#10'enum %ENUM_NAME% '#10'{'#10#9'// <%%% START' +' VALUES %%%>'#10#9'%VALUE_NAME%, '#10#9'// <%%% END 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% : %STRUCT_ANCEST' +'OR_NAME% { '#10#9'// <%%% START FIELDS_NO_STRIP %%%>'#10#9'%FIELD_TYPE% %F' +'IELD_NAME%;'#10#9'// <%%% END FIELDS_NO_STRIP %%%>'#10'}'#10#10#9'// <%%% S' +'TART FIELDS_NO_STRIP %%%>'#10#9'// <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#10 +#9'@property (retain) %FIELD_TYPE% %FIELD_NAME%;'#10#9'// <%%% END IF_FIELD_' +'TYPE_COMPLEX %%%>'#10#9'// <%%% START IF_FIELD_TYPE_SIMPLE %%%>'#10#9'@prop' +'erty (assign) %FIELD_TYPE% %FIELD_NAME%;'#10#9'// <%%% END IF_FIELD_TYPE_SI' +'MPLE %%%>'#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)writeToMessage:(ROMessage *' +') aMessage withName:(NSString *) aName;'#10#9'-(void)readFromMessage:(ROMes' +'sage *) aMessage withName:(NSString *) aName;'#10#9'// <%%% END IF_HAS_FIEL' +'DS %%%>'#10#10'@end'#10'// <%%% END STRUCTS %%%>'#10#10'#pragma mark arrays' +#10#10'// <%%% START ARRAYS %%%>'#10'@interface %ARRAY_NAME% : 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 atIndex:(NSUInteger)in' +'dex;'#10'- (void)replaceItemAtIndex:(NSUInteger)index withObject:(%ARRAY_TY' +'PE%)object;'#10'- (%ARRAY_TYPE%)itemAtIndex:(NSUInteger)index;'#10#10'- (vo' +'id)writeItemToMessage:(ROMessage *)aMessage fromIndex:(int)i;'#10'- (void)r' +'eadItemFromMessage:(ROMessage *)aMessage toIndex:(int)i;'#10'@end;'#10#10'/' +'/ <%%% END ARRAYS %%%>'#10'#pragma mark exceptions'#10#10'// <%%% START EXC' +'EPTIONS %%%>'#10'// <%%% START DOCUMENTATION %%%>'#10#10'/* Description:'#10 +' %CONTENT% */'#10'// <%%% END DOCUMENTATION %%%>'#10'@interface %EXCEPTI' +'ON_NAME% : %EXCEPTION_ANCESTOR_NAME% { '#10#9'// <%%% START FIELDS_NO_STRI' +'P %%%>'#10#9'%FIELD_TYPE% %FIELD_NAME%;'#10#9'// <%%% END FIELDS_NO_STRIP %' +'%%>'#10'}'#10' '#10'// <%%% START FIELDS_NO_STRIP %%%>'#10'// <%%% START I' +'F_FIELD_TYPE_COMPLEX %%%>'#10'@property (retain) %FIELD_TYPE% %FIELD_NAME%;' +#10'// <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#10'// <%%% START IF_FIELD_TYPE_S' +'IMPLE %%%>'#10'@property (assign) %FIELD_TYPE% %FIELD_NAME%;'#10'// <%%% EN' +'D IF_FIELD_TYPE_SIMPLE %%%>'#10'// <%%% END FIELDS_NO_STRIP %%%>'#10' '#10 +'-(id) initWithMessage:(NSString *) anExceptionMessage'#10' ' +' // <%%% START ANCESTOR_FIELDS %%%>'#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'// <%%% START IF_HAS_FIELDS %%%' +'>'#10'-(void)writeToMessage:(ROMessage *) aMessage withName:(NSString *) aN' +'ame;'#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 service protocols'#10 +#10'// <%%% START SERVICES %%%>'#10'@protocol I%SERVICE_NAME%'#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' // <%%% START PROCEDURE_OPERATIONS ' +'%%%>'#10' - (void) %OPERATION_NAME%'#10' // <%%% START PARAMS %%%>'#10 +' :(%PARAM_TYPE%%PARAM_BACK_MODIFIER%) %PARAM_NAME% '#10' // <%%% END' +' PARAMS %%%>'#10' ;'#10#9'// <%%% END PROCEDURE_OPERATIONS %%%>'#10'@end' +#10#10'#pragma mark service proxies'#10#10'@interface %SERVICE_NAME%_Proxy :' +' %SERVICE_PROXY_ANCESTOR_NAME% '#10'{'#10'}'#10' -(id) i' +'nitWithMessage:(ROMessage*) aMessage channel:(ROClientChannel*) aChannel;' +#10' -(void) dealloc;'#10' -(NSString*) __getInterfaceName;'#10#10' // <%' +'%% START FUNCTION_OPERATIONS %%%>'#10' - (%OPERATION_RESULT_TYPE%) %OPERAT' +'ION_NAME%'#10' // <%%% START PARAMS %%%>'#10' :(%PARAM_TYPE%%PARAM_BA' +'CK_MODIFIER%) %PARAM_NAME%'#10' // <%%% END PARAMS %%%>'#10' ;'#10' ' +'// <%%% END FUNCTION_OPERATIONS %%%>'#10' // <%%% START PROCEDURE_OPERATIO' +'NS %%%>'#10' - (void) %OPERATION_NAME%'#10' // <%%% START PARAMS %%%>' +#10' :(%PARAM_TYPE%%PARAM_BACK_MODIFIER%) %PARAM_NAME% '#10' // <%%% ' +'END PARAMS %%%>'#10' ;'#10#9'// <%%% END PROCEDURE_OPERATIONS %%%>'#10' ' +' '#10'@end'#10#10'// <%%% END SERVICES %%%>'#10#10'#pragma mark event sinks' +#10#10'// <%%% START EVENT_SINKS %%%>'#10'/* I%EVENT_SINK_NAME% */'#10'// <%' +'%% START DOCUMENTATION %%%>'#10#10'/* Description:'#10' %CONTENT% */'#10 +'// <%%% END DOCUMENTATION %%%>'#10'__interface I%EVENT_SINK_NAME%;'#10'type' +'def System::DelphiInterface _di_I%EVENT_SINK_NAME%;'#10 +'__interface INTERFACE_UUID("%EVENT_SINK_UID%") I%EVENT_SINK_NAME% : public ' +'%EVENT_SINK_ANCESTOR_NAME%'#10'{'#10'public:'#10' // <%%% START OPERATIONS' +' %%%>'#10' virtual void __fastcall %OPERATION_NAME%('#10' // <%%% START' +' PARAMS %%%>'#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#10' %PARAM' +'_FRONT_MODIFIER% %PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#10' /' +'/ <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#10' // <%%% START IF_PARAM_TYPE_CO' +'MPLEX %%%>'#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MODIFIE' +'R% %PARAM_NAME%,'#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#10' // ' +'<%%% END PARAMS %%%>'#10' ) = 0; // pure virtual function - interface on' +'ly'#10' // <%%% END OPERATIONS %%%>'#10'};'#10#10'/* I%EVENT_SINK_NAME%_Wr' +'iter */'#10'// <%%% START DOCUMENTATION %%%>'#10#10'/* Description:'#10' ' +' %CONTENT% */'#10'// <%%% END DOCUMENTATION %%%>'#10'__interface I%EVENT_SI' +'NK_NAME%_Writer;'#10'typedef System::DelphiInterface _di_I%EVENT_SINK_NAME%_Writer;'#10'__interface INTERFACE_UUID("%EVENT_' +'SINK_UID%") I%EVENT_SINK_NAME%_Writer : public I%EVENT_SINK_WRITER_ANCESTOR' +'_NAME%'#10'{'#10'public:'#10' // <%%% START OPERATIONS %%%>'#10' virtual ' +'void __fastcall %OPERATION_NAME%(GUID __Sender '#10' // <%%% START PARAM' +'S %%%>'#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#10' , %PARAM_FRO' +'NT_MODIFIER% %PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM_NAME%'#10' // <%%' +'% END IF_PARAM_TYPE_SIMPLE %%%>'#10' // <%%% START IF_PARAM_TYPE_COMPLEX' +' %%%>'#10' , %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MODIFIER% ' +'%PARAM_NAME%'#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#10' // <%%%' +' END PARAMS %%%>'#10' ) = 0; // pure virtual function - interface only' +#10' // <%%% END OPERATIONS %%%>'#10'};'#10#10'// <%%% END EVENT_SINKS %%%>' +#10#10'#endif // %UNIT_NAME%_H'#10#10 ]);