/*------------------------------------------------------------------- Fichier : $monmodule$1.cpp Objet : Module : $Mon ! Module$ Auteur-Date : DUVAL-Jean-Pierre - Novembre 2003. --------------------------------------------------------------------- Observations Substituer $monmodule$ par le nom du module en minuscule -> upskrn. Substituer $MonModule$ par le nom du module en maj/minuscule -> UpsKrn. Substituer $Mon Module$ par le libelle du module -> Up ! Kernel. ---------------------------------------------------------------------*/ #include "$monmodule$1.h" static Typ$MonModule$Donnees_Pri1 $MonModule$VarGlo1=NULL; /* Variables globales statiques. */ /****************************************************************/ /* Procedures et fonctions. */ /****************************************************************/ /****************************************************************/ TypUpsVmUnsignedChar UpsVmAPI UpsCoTrt$MonModule$_1_1(TypUpsVmSession *Session, TypUpsVmShort NumeroParametre, TypUpsVmAdresse *AdresseResultat, TypPrmUpsVmEnumererParametres *UpsPrm) /* Procedure P(A:Enumere, B:Entier, C:Reel, D:Caractere, */ /* E:Objet); */ /****************************************************************/ { if (AdresseResultat&&UpsPrm) { $MonModule$ChargerDictionnaire(Session); return((*$MonModule$IntTrt$MonModule$D->CoTrt_1_1)(Session,NumeroParametre,AdresseResultat,UpsPrm)); } switch (NumeroParametre) { case 1 : return(PR_EnumereCourtParEntree); break; case 2 : return(PR_EntierParEntree); break; case 3 : return(PR_ReelParEntree); break; case 4 : return(PR_ObjetParEntree); break; case 5 : return(PR_ObjetParEntree); break; } return(0); } /****************************************************************/ TypUpsVmVoid UpsVmAPI UpsTrt$MonModule$_1_1(TypUpsVmSession *Session, TypPrm$MonModule$_1_1 *UpsPrm) /* Procedure P(A:Enumere, B:Entier, C:Reel, D:Caractere, E: */ /* Objet); */ /****************************************************************/ { /*--------------------------------------------------------------*/ /* A completer... */ /*--------------------------------------------------------------*/ } /****************************************************************/ TypUpsVmUnsignedChar UpsVmAPI UpsCoTrt$MonModule$_2_1(TypUpsVmSession *Session, TypUpsVmShort NumeroParametre, TypUpsVmAdresse *AdresseResultat, TypPrmUpsVmEnumererParametres *UpsPrm) /* F(A:Enumere, B:Entier, C:Reel, D:Caractere, E:Objet) */ /* Retourner Objet; */ /****************************************************************/ { if (AdresseResultat&&UpsPrm) { $MonModule$ChargerDictionnaire(Session); return((*$MonModule$IntTrt$MonModule$D->CoTrt_2_1)(Session,NumeroParametre,AdresseResultat,UpsPrm)); } switch (NumeroParametre) { case 1 : return(PR_EnumereCourtParEntree); break; case 2 : return(PR_EntierParEntree); break; case 3 : return(PR_ReelParEntree); break; case 4 : return(PR_ObjetParEntree); break; case 5 : return(PR_ObjetParEntree); break; case 0 : return(PR_ObjetParSortie); break; } return(0); } /****************************************************************/ TypUpsVmAdresse UpsVmAPI *UpsTrt$MonModule$_2_1(TypUpsVmSession *Session, TypUpsVmAdresse *AdresseResultat, TypPrm$MonModule$_2_1 *UpsPrm) /* F(A:Enumere, B:Entier, C:Reel, D:Caractere, E:Objet) */ /* Retourner Objet; */ /****************************************************************/ { (*$MonModule$IntTrtUpsOms->AdresseANul)(AdresseResultat); /*--------------------------------------------------------------*/ /* A completer... */ /*--------------------------------------------------------------*/ return(AdresseResultat); } /****************************************************************/ /* Types et interfaces. */ /****************************************************************/ /****************************************************************/ static TypUpsVmAdresse UpsVmAPI *AConstructeur(TypUpsVmSession *Session, TypUpsVmAdresse *AdresseResultat) /* A.Constructeur() */ /****************************************************************/ { UpsTypUpsKrn_7 *Resultat; /* Resultat de la methode. */ TypUpsVmUnsignedLong VerrouResultat; /* Verrou sur le resultat. */ UpsTyp$MonModule$_1 *ResultatA; /* Pour retrouver le corps de l'objet. */ Resultat=(*UpsKrnIntTrtUpsOms->AllouerUnObjet)(Session,AdresseResultat,&($MonModule$IntDonPro->UpsType1), &VerrouResultat,(TypUpsVmPointeurDonnees *)&ResultatA); /*--------------------------------------------------------------*/ /* A modifier... */ /*--------------------------------------------------------------*/ ObjetA->UpsChamp1=1; ObjetA->UpsChamp2=0; ObjetA->UpsChamp3=0.0; (*$MonModule$IntTrtUpsOms->AdresseANul)(&(ObjetA->UpsChamp4)); (*$MonModule$IntTrtUpsOms->AdresseANul)(&(ObjetA->UpsChamp5)); /*--------------------------------------------------------------*/ /* L'usage est pris en compte par l'appelant. */ /*--------------------------------------------------------------*/ Resultat->NbUtilisations=0; if (VerrouResultat) (*$MonModule$IntTrtUpsOms->LibererVerrou)(Session,VerrouResultat,1); return(AdresseResultat); } /****************************************************************/ static TypUpsVmVoid UpsVmAPI ADestructeur(TypUpsVmSession *Session, TypUpsVmAdresse *AdresseObjet) /* A.Destructeur(); */ /****************************************************************/ { UpsTypUpsKrn_7 *Objet; /* Objet. */ TypUpsVmUnsignedLong VerrouObjet; /* Verrou sur l'objet. */ UpsTyp$MonModule$_1 *ObjetA; /* Pour retrouver le corps de l'objet. */ Objet=(UpsTypUpsKrn_7 *)(*$MonModule$IntTrtUpsOms->RechercherObjet)(Session,AdresseObjet,&VerrouObjet, VR_ObjetEcritureExclusive,(TypUpsVmPointeurDonnees *)&ObjetA); /*--------------------------------------------------------------*/ /* A modifier... */ /*--------------------------------------------------------------*/ (*$MonModule$IntTrtUpsOms->NePlusUtiliserObjet)(Session,&(ObjetA->UpsChamp4)); (*$MonModule$IntTrtUpsOms->NePlusUtiliserObjet)(Session,&(ObjetA->UpsChamp5)); if (VerrouObjet) (*$MonModule$IntTrtUpsOms->LibererVerrou)(Session,VerrouObjet,1); } /****************************************************************/ static TypUpsVmAdresse UpsVmAPI *AMethodeCloner(TypUpsVmSession *Session, TypUpsVmAdresse *AdresseResultat, TypUpsVmAdresse *AdresseObjet, TypPrmUpsVmCloner *UpsPrm) /* Objet : A.Cloner(). */ /****************************************************************/ { UpsTypUpsKrn_7 *Objet; /* Objet. */ TypUpsVmUnsignedLong VerrouObjet; /* Verrou sur l'objet. */ UpsTyp$MonModule$_1 *ObjetA; /* Pour retrouver le corps de l'objet. */ UpsTypUpsKrn_7 *Resultat; /* Resultat de la methode. */ TypUpsVmUnsignedLong VerrouResultat; /* Verrou sur le resultat. */ UpsTyp$MonModule$_1 *RObjetA; /* Pour retrouver le corps de l'objet. */ TypUpsVmAdresse AdresseObjetClone; /* Adresse de l'objet clone. */ TypPrmUpsVmCloner UpsPrm2; /* Pour cloner une propriete. */ if (!AdresseObjet->NumeroSegment) { (*UpsSysIntTrtUpsOms->AdresseANul)(AdresseResultat); return(AdresseResultat); } Objet=(UpsTypUpsKrn_7 *)(*$MonModule$IntTrtUpsOms->RechercherObjet)(Session,AdresseObjet, &VerrouObjet,VR_ObjetLecturePartagee,(TypUpsVmPointeurDonnees *)&ObjetA); /*--------------------------------------------------------------*/ /* Allocation de l'objet clone. */ /*--------------------------------------------------------------*/ Resultat=(*$MonModule$IntTrtUpsOms->AllouerUnObjet)(Session,AdresseResultat,&($MonModule$IntDonPro->UpsType1), &VerrouResultat,(TypUpsVmPointeurDonnees *)&RObjetA); /*--------------------------------------------------------------*/ /* Clonage des proprietes. */ /*--------------------------------------------------------------*/ RObjetA->UpsChamp1=ObjetA->UpsChamp1; RObjetA->UpsChamp2=ObjetA->UpsChamp2; RObjetA->UpsChamp3=ObjetA->UpsChamp3; if (UpsPrm->UpsVar2==UpsEnuUpsKrn_3_1) /*--------------------------------------------------------------*/ /* Il faut cloner l'objet seul. */ /*--------------------------------------------------------------*/ (*$MonModule$IntTrtUpsOms->CopierAdresse)(&AdresseObjetClone,&(ObjetA->UpsChamp4)); else { /*--------------------------------------------------------------*/ /* Il faut cloner ses proprietes. */ /*--------------------------------------------------------------*/ (*$MonModule$IntTrtUpsOms->CopierAdresse)(&(UpsPrm2.UpsVar1),&(UpsPrm->UpsVar1)); UpsPrm2.UpsVar2=(TypUpsVmUnsignedChar)(UpsPrm->UpsVar2-1); (*$MonModule$IntTrtUpsKrn->ClonerObjet)(Session, &AdresseObjetClone,&(ObjetA->UpsChamp4),&UpsPrm2); } (*$MonModule$IntTrtUpsOms->UtiliserObjet)(Session, (*$MonModule$IntTrtUpsOms->CopierAdresse)(&(RObjetA->UpsChamp4),&AdresseObjetClone)); if (UpsPrm->UpsVar2==UpsEnuUpsKrn_3_1) /*--------------------------------------------------------------*/ /* Il faut cloner l'objet seul. */ /*--------------------------------------------------------------*/ (*$MonModule$IntTrtUpsOms->CopierAdresse)(&AdresseObjetClone,&(ObjetA->UpsChamp5)); else { /*--------------------------------------------------------------*/ /* Il faut cloner ses proprietes. */ /*--------------------------------------------------------------*/ (*$MonModule$IntTrtUpsOms->CopierAdresse)(&(UpsPrm2.UpsVar1),&(UpsPrm->UpsVar1)); UpsPrm2.UpsVar2=(TypUpsVmUnsignedChar)(UpsPrm->UpsVar2-1); (*$MonModule$IntTrtUpsKrn->ClonerObjet)(Session, &AdresseObjetClone,&(ObjetA->UpsChamp5),&UpsPrm2); } (*$MonModule$IntTrtUpsOms->UtiliserObjet)(Session, (*$MonModule$IntTrtUpsOms->CopierAdresse)(&(RObjetA->UpsChamp5),&AdresseObjetClone)); if (VerrouObjet) (*$MonModule$IntTrtUpsOms->LibererVerrou)(Session,VerrouObjet,0); /*--------------------------------------------------------------*/ /* L'usage est pris en compte par l'appelant. */ /*--------------------------------------------------------------*/ Resultat->NbUtilisations=0; if (VerrouResultat) (*$MonModule$IntTrtUpsOms->LibererVerrou)(Session,VerrouResultat,1); return(AdresseResultat); } /****************************************************************/ static TypUpsVmVoid UpsVmAPI AMethodeExporter(TypUpsVmSession *Session, TypUpsVmAdresse *AdresseObjet) /* Objet : Methode d'exportation pour un objet du type A. */ /****************************************************************/ { UpsTypUpsKrn_7 *Objet; /* Objet. */ TypUpsVmUnsignedLong VerrouObjet; /* Verrou sur l'objet. */ UpsTyp$MonModule$_1 *ObjetA; /* Pour retrouver le corps de l'objet. */ if ((*$MonModule$IntTrtUpsOms->ObjetDejaExporte)(Session,AdresseObjet)) return; (*$MonModule$IntTrtUpsOms->ExporterVersionRevision)(Session,1,0,0); Objet=(UpsTypUpsKrn_7 *)(*$MonModule$IntTrtUpsOms->RechercherObjet)(Session,AdresseObjet, &VerrouObjet,VR_ObjetLecturePartagee,(TypUpsVmPointeurDonnees *)&ObjetA); (*$MonModule$IntTrtUpsOms->ExporterEntier)(Session,(TypUpsVmLong)ObjetA->UpsChamp1); (*$MonModule$IntTrtUpsOms->ExporterEntier)(Session,ObjetA->UpsChamp2); (*$MonModule$IntTrtUpsOms->ExporterReel)(Session,ObjetA->UpsChamp3); (*$MonModule$IntTrtUpsOms->ExporterObjet)(Session,&(ObjetA->UpsChamp4)); (*$MonModule$IntTrtUpsOms->ExporterObjet)(Session,&(ObjetA->UpsChamp5)); if (VerrouObjet) (*$MonModule$IntTrtUpsOms->LibererVerrou)(Session,VerrouObjet,0); } /****************************************************************/ static TypUpsVmAdresse UpsVmAPI *AMethodeImporter(TypUpsVmSession *Session, TypUpsVmAdresse *AdresseResultat, TypPrmUpsVmImporter *UpsPrm) /* Objet : Methode d'importation pour un objet du type A. */ /****************************************************************/ { UpsTypUpsKrn_7 *Resultat; /* Resultat de la methode. */ TypUpsVmUnsignedLong VerrouResultat; /* Verrou sur le resultat. */ UpsTyp$MonModule$_1 *RObjetA; /* Pour retrouver le corps de l'objet. */ TypUpsVmShort Version; /* Version de l'objet. */ TypUpsVmShort Revision; /* Revision de l'objet. */ TypUpsVmShort Correction; /* Correction de l'objet. */ (*$MonModule$IntTrtUpsOms->ImporterVersionRevision)(Session,&Version,&Revision,&Correction); if (UpsVmComparerVersionRevision(1,0,0,Version,Revision,Correction)<0) /*--------------------------------------------------------------*/ /* L'import est incorrect. */ /*--------------------------------------------------------------*/ (*$MonModule$IntTrtUpsOms->ErreurLorsDeLImportationVersion)(Session,Version,Revision,Correction, (*$MonModule$IntTrtUpsNls->Traduire)($MonModule$NumeroModule,UpsEnuUpsNls_1_4,_T("TypeA"))); /*--------------------------------------------------------------*/ /* Allocation de l'objet importe. */ /*--------------------------------------------------------------*/ Resultat=(*$MonModule$IntTrtUpsOms->AllouerUnObjet)(Session,AdresseResultat,&($MonModule$IntDonPro->UpsType1), &VerrouResultat,(TypUpsVmPointeurDonnees *)&RObjetA); RObjetA->UpsChamp1=(TypUpsVmUnsignedChar)(*$MonModule$IntTrtUpsOms->ImporterEntier)(Session); RObjetA->UpsChamp2=(*$MonModule$IntTrtUpsOms->ImporterEntier)(Session); RObjetA->UpsChamp3=(*$MonModule$IntTrtUpsOms->ImporterReel)(Session); (*$MonModule$IntTrtUpsOms->ImporterObjet)(Session,&(RObjetA->UpsChamp4)); (*$MonModule$IntTrtUpsOms->UtiliserObjet)(Session,&(RObjetA->UpsChamp4)); (*$MonModule$IntTrtUpsOms->ImporterObjet)(Session,&(RObjetA->UpsChamp5)); (*$MonModule$IntTrtUpsOms->UtiliserObjet)(Session,&(RObjetA->UpsChamp5)); if (VerrouResultat) (*$MonModule$IntTrtUpsOms->LibererVerrou)(Session,VerrouResultat,1); return(AdresseResultat); } /****************************************************************/ static TypUpsVmAdresse UpsVmAPI *AMethodeLirePropriete(TypUpsVmSession *Session, TypUpsVmAdresse *AdresseResultat, TypUpsVmAdresse *AdresseObjet, TypPrmUpsVmLirePropriete *UpsPrm) /* Objet : Methode de lecture des proprietes dynamiques. */ /****************************************************************/ { $MonModule$ChargerDictionnaire(Session); return((*$MonModule$IntTrt$MonModule$D->UpsTrt1->EnteteMethodes.MethodeLirePropriete)(Session, AdresseResultat,AdresseObjet,UpsPrm)); } /****************************************************************/ static TypUpsVmVoid UpsVmAPI AMethodeEcrirePropriete(TypUpsVmSession *Session, TypUpsVmAdresse *AdresseObjet, TypPrmUpsVmEcrirePropriete *UpsPrm) /* Objet : Methode d'ecriture des proprietes dynamiques. */ /****************************************************************/ { $MonModule$ChargerDictionnaire(Session); (*$MonModule$IntTrt$MonModule$D->UpsTrt1->EnteteMethodes.MethodeEcrirePropriete)(Session, AdresseObjet,UpsPrm); } /****************************************************************/ static TypUpsVmAdresse UpsVmAPI *AMethodeIncrementerDecrementerPropriete(TypUpsVmSession *Session, TypUpsVmAdresse *AdresseResultat, TypUpsVmAdresse *AdresseObjet, TypPrmUpsVmIncrementerDecrementerPropriete *UpsPrm) /* Objet : Methode d'incrementation et de decrementation des */ /* proprietes dynamiques. */ /****************************************************************/ { $MonModule$ChargerDictionnaire(Session); return((*$MonModule$IntTrt$MonModule$D->UpsTrt1->EnteteMethodes.MethodeIncrementerDecrementerPropriete)(Session, AdresseResultat,AdresseObjet,UpsPrm)); } /****************************************************************/ static TypUpsVmVoid UpsVmAPI AMethodeSupprimerPropriete(TypUpsVmSession *Session, TypUpsVmAdresse *AdresseObjet, TypPrmUpsVmSupprimerPropriete *UpsPrm) /* Objet : Methode de suppression des proprietes dynamiques. */ /****************************************************************/ { $MonModule$ChargerDictionnaire(Session); (*$MonModule$IntTrt$MonModule$D->UpsTrt1->EnteteMethodes.MethodeSupprimerPropriete)(Session, AdresseObjet,UpsPrm); } /****************************************************************/ static TypUpsVmAdresse UpsVmAPI *AMethodeEnumererProprietes(TypUpsVmSession *Session, TypUpsVmAdresse *AdresseResultat, TypUpsVmAdresse *AdresseObjet, TypPrmUpsVmEnumererProprietes *UpsPrm) /* Objet : Methode d'enumeration des proprietes dynamiques. */ /****************************************************************/ { $MonModule$ChargerDictionnaire(Session); return((*$MonModule$IntTrt$MonModule$D->UpsTrt1->EnteteMethodes.MethodeEnumererProprietes)(Session, AdresseResultat,AdresseObjet,UpsPrm)); } /****************************************************************/ static TypUpsVmAdresse UpsVmAPI *AMethodeEnumererMethodes(TypUpsVmSession *Session, TypUpsVmAdresse *AdresseResultat, TypUpsVmAdresse *UpsObjet, TypPrmUpsVmEnumererAppels *UpsPrm) /* Objet : Enumere les methodes. */ /****************************************************************/ { $MonModule$ChargerDictionnaire(Session); return((*$MonModule$IntTrt$MonModule$D->UpsTrt1->EnteteMethodes.MethodeEnumererMethodes)(Session, AdresseResultat,UpsObjet,UpsPrm)); } /****************************************************************/ static TypUpsVmVoid UpsVmAPI AMethodeUtiliserObjetsChamps(TypUpsVmSession *Session, TypUpsVmChar *Adresse) /* Utilise les champs d'un objet pour une transaction; */ /****************************************************************/ { UpsTyp$MonModule$_1 *ObjetA; /* Pour retrouver le corps de l'objet. */ ObjetA=(UpsTyp$MonModule$_1 *)Adresse; (*$MonModule$IntTrtUpsOms->UtiliserObjet)(Session,&(ObjetA->UpsChamp4)); (*$MonModule$IntTrtUpsOms->UtiliserObjet)(Session,&(ObjetA->UpsChamp5)); } /****************************************************************/ static TypUpsVmVoid UpsVmAPI AMethodeNePlusUtiliserObjetsChamps(TypUpsVmSession *Session, TypUpsVmChar *Adresse) /* N'utilise plus les champs d'un objet pour une transaction; */ /****************************************************************/ { UpsTyp$MonModule$_1 *ObjetA; /* Pour retrouver le corps de l'objet. */ ObjetA=(UpsTyp$MonModule$_1 *)Adresse; (*$MonModule$IntTrtUpsOms->NePlusUtiliserObjet)(Session,&(ObjetA->UpsChamp4)); (*$MonModule$IntTrtUpsOms->NePlusUtiliserObjet)(Session,&(ObjetA->UpsChamp5)); } /****************************************************************/ static TypUpsVmUnsignedChar UpsVmAPI UpsCoMth$MonModule$_1_5_1(TypUpsVmSession *Session, TypUpsVmShort NumeroParametre, TypUpsVmAdresse *AdresseResultat, TypPrmUpsVmEnumererParametres *UpsPrm) /* Procedure A.P(A:Enumere, B:Entier, C:Reel, D:Caractere, */ /* E:Objet); */ /****************************************************************/ { if (AdresseResultat&&UpsPrm) { $MonModule$ChargerDictionnaire(Session); return((*$MonModule$IntTrt$MonModule$D->UpsTrt1->CoMth_5_1)(Session,NumeroParametre,AdresseResultat,UpsPrm)); } switch (NumeroParametre) { case 1 : return(PR_EnumereCourtParEntree); break; case 2 : return(PR_EntierParEntree); break; case 3 : return(PR_ReelParEntree); break; case 4 : return(PR_ObjetParEntree); break; case 5 : return(PR_ObjetParEntree); break; } return(0); } /****************************************************************/ static TypUpsVmVoid UpsVmAPI UpsMth$MonModule$_1_5_1(TypUpsVmSession *Session, TypUpsVmAdresse *AdresseObjet, TypPrm$MonModule$_1_5_1 *UpsPrm) /* Procedure A.P(A:Enumere, B:Entier, C:Reel, D:Caractere, E: */ /* Objet); */ /****************************************************************/ { if (!AdresseObjet->NumeroSegment) return; /*--------------------------------------------------------------*/ /* A completer... */ /*--------------------------------------------------------------*/ } /****************************************************************/ static TypUpsVmUnsignedChar UpsVmAPI UpsCoMth$MonModule$_1_6_1(TypUpsVmSession *Session, TypUpsVmShort NumeroParametre, TypUpsVmAdresse *AdresseResultat, TypPrmUpsVmEnumererParametres *UpsPrm) /* A.F(A:Enumere, B:Entier, C:Reel, D:Caractere, E:Objet) */ /* Retourner Objet; */ /****************************************************************/ { if (AdresseResultat&&UpsPrm) { $MonModule$ChargerDictionnaire(Session); return((*$MonModule$IntTrt$MonModule$D->UpsTrt1->CoMth_6_1)(Session,NumeroParametre,AdresseResultat,UpsPrm)); } switch (NumeroParametre) { case 1 : return(PR_EnumereCourtParEntree); break; case 2 : return(PR_EntierParEntree); break; case 3 : return(PR_ReelParEntree); break; case 4 : return(PR_ObjetParEntree); break; case 5 : return(PR_ObjetParEntree); break; case 0 : return(PR_ObjetParSortie); break; } return(0); } /****************************************************************/ static TypUpsVmAdresse UpsVmAPI UpsMth$MonModule$_1_6_1(TypUpsVmSession *Session, TypUpsVmAdresse *AdresseResultat, TypUpsVmAdresse *AdresseObjet, TypPrm$MonModule$_1_6_1 *UpsPrm) /* A.F(A:Enumere, B:Entier, C:Reel, D:Caractere, E:Objet) */ /* Retourner Objet; */ /****************************************************************/ { (*$MonModule$IntTrtUpsOms->AdresseANul)(AdresseResultat); if (!AdresseObjet->NumeroSegment) return(AdresseResultat); /*--------------------------------------------------------------*/ /* A completer... */ /*--------------------------------------------------------------*/ return(AdresseResultat); } /****************************************************************/ TypUpsVmAdresse UpsVmAPI *UpsType1_get(TypUpsVmSession *Session) /* Type A. */ /****************************************************************/ { Inutile(Session); return(&($MonModule$IntDonPro->UpsType1)); } /****************************************************************/ TypUpsVmLong UpsVmAPI UpsIndex1_1_0_0_get(TypUpsVmSession *Session, TypUpsVmShort Numero) /* Type A. */ /****************************************************************/ { switch (Numero) { case 1 : return(0); break; case 2 : return(4); break; case 3 : return(8); break; case 4 : return(16); break; case 5 : return(48); break; } (*$MonModule$IntTrtUpsKrn$->EnvoyerExceptionStandard)(Session,($MonModule$IntTrtUpsKrn->UpsException55_get)(Session)), (*$MonModule$IntTrtUpsNls->Traduire)($MonModule$NumeroModule,UpsEnuUpsNls_1_4,_T("TypeA")), NULL,NULL,NULL,NULL); return(0); } /****************************************************************/ static TypUpsVmAdresse UpsVmAPI *BConstructeur(TypUpsVmSession *Session, TypUpsVmAdresse *AdresseResultat) /* B.Constructeur() */ /****************************************************************/ { UpsTypUpsKrn_7 *Resultat; /* Resultat de la methode. */ TypUpsVmUnsignedLong VerrouResultat; /* Verrou sur le resultat. */ UpsTyp$MonModule$_2 *ResultatB; /* Pour retrouver le corps de l'objet. */ Resultat=(*UpsKrnIntTrtUpsOms->AllouerUnObjet)(Session,AdresseResultat,&($MonModule$IntDonPro->UpsType2), &VerrouResultat,(TypUpsVmPointeurDonnees *)&ResultatB); /*--------------------------------------------------------------*/ /* A modifier... */ /*--------------------------------------------------------------*/ ObjetB->UpsChamp1=1; ObjetB->UpsChamp2=0; ObjetB->UpsChamp3=0.0; (*$MonModule$IntTrtUpsOms->AdresseANul)(&(ObjetB->UpsChamp4)); (*$MonModule$IntTrtUpsOms->AdresseANul)(&(ObjetB->UpsChamp5)); /*--------------------------------------------------------------*/ /* L'usage est pris en compte par l'appelant. */ /*--------------------------------------------------------------*/ Resultat->NbUtilisations=0; if (VerrouResultat) (*$MonModule$IntTrtUpsOms->LibererVerrou)(Session,VerrouResultat,1); return(AdresseResultat); } /****************************************************************/ static TypUpsVmVoid UpsVmAPI BDestructeur(TypUpsVmSession *Session, TypUpsVmAdresse *AdresseObjet) /* B.Destructeur(); */ /****************************************************************/ { UpsTypUpsKrn_7 *Objet; /* Objet. */ TypUpsVmUnsignedLong VerrouObjet; /* Verrou sur l'objet. */ UpsTyp$MonModule$_2 *ObjetB; /* Pour retrouver le corps de l'objet. */ Objet=(UpsTypUpsKrn_7 *)(*$MonModule$IntTrtUpsOms->RechercherObjet)(Session,AdresseObjet,&VerrouObjet, VR_ObjetEcritureExclusive,(TypUpsVmPointeurDonnees *)&ObjetB); /*--------------------------------------------------------------*/ /* A modifier... */ /*--------------------------------------------------------------*/ (*$MonModule$IntTrtUpsOms->NePlusUtiliserObjet)(Session,&(ObjetB->UpsChamp4)); (*$MonModule$IntTrtUpsOms->NePlusUtiliserObjet)(Session,&(ObjetB->UpsChamp5)); if (VerrouObjet) (*$MonModule$IntTrtUpsOms->LibererVerrou)(Session,VerrouObjet,1); } /****************************************************************/ static TypUpsVmAdresse UpsVmAPI *BMethodeCloner(TypUpsVmSession *Session, TypUpsVmAdresse *AdresseResultat, TypUpsVmAdresse *AdresseObjet, TypPrmUpsVmCloner *UpsPrm) /* Objet : B.Cloner(). */ /****************************************************************/ { UpsTypUpsKrn_7 *Objet; /* Objet. */ TypUpsVmUnsignedLong VerrouObjet; /* Verrou sur l'objet. */ UpsTyp$MonModule$_2 *ObjetB; /* Pour retrouver le corps de l'objet. */ UpsTypUpsKrn_7 *Resultat; /* Resultat de la methode. */ TypUpsVmUnsignedLong VerrouResultat; /* Verrou sur le resultat. */ UpsTyp$MonModule$_2 *RObjetB; /* Pour retrouver le corps de l'objet. */ TypUpsVmAdresse AdresseObjetClone; /* Adresse de l'objet clone. */ TypPrmUpsVmCloner UpsPrm2; /* Pour cloner une propriete. */ if (!AdresseObjet->NumeroSegment) { (*UpsSysIntTrtUpsOms->AdresseANul)(AdresseResultat); return(AdresseResultat); } Objet=(UpsTypUpsKrn_7 *)(*$MonModule$IntTrtUpsOms->RechercherObjet)(Session,AdresseObjet, &VerrouObjet,VR_ObjetLecturePartagee,(TypUpsVmPointeurDonnees *)&ObjetB); /*--------------------------------------------------------------*/ /* Allocation de l'objet clone. */ /*--------------------------------------------------------------*/ Resultat=(*$MonModule$IntTrtUpsOms->AllouerUnObjet)(Session,AdresseResultat,&($MonModule$IntDonPro->UpsType2), &VerrouResultat,(TypUpsVmPointeurDonnees *)&RObjetB); /*--------------------------------------------------------------*/ /* Clonage des proprietes. */ /*--------------------------------------------------------------*/ RObjetB->UpsChamp1=ObjetA->UpsChamp1; RObjetB->UpsChamp2=ObjetA->UpsChamp2; RObjetB->UpsChamp3=ObjetA->UpsChamp3; if (UpsPrm->UpsVar2==UpsEnuUpsKrn_3_1) /*--------------------------------------------------------------*/ /* Il faut cloner l'objet seul. */ /*--------------------------------------------------------------*/ (*$MonModule$IntTrtUpsOms->CopierAdresse)(&AdresseObjetClone,&(ObjetB->UpsChamp4)); else { /*--------------------------------------------------------------*/ /* Il faut cloner ses proprietes. */ /*--------------------------------------------------------------*/ (*$MonModule$IntTrtUpsOms->CopierAdresse)(&(UpsPrm2.UpsVar1),&(UpsPrm->UpsVar1)); UpsPrm2.UpsVar2=(TypUpsVmUnsignedChar)(UpsPrm->UpsVar2-1); (*$MonModule$IntTrtUpsKrn->ClonerObjet)(Session, &AdresseObjetClone,&(ObjetB->UpsChamp4),&UpsPrm2); } (*$MonModule$IntTrtUpsOms->UtiliserObjet)(Session, (*$MonModule$IntTrtUpsOms->CopierAdresse)(&(RObjetB->UpsChamp4),&AdresseObjetClone)); if (UpsPrm->UpsVar2==UpsEnuUpsKrn_3_1) /*--------------------------------------------------------------*/ /* Il faut cloner l'objet seul. */ /*--------------------------------------------------------------*/ (*$MonModule$IntTrtUpsOms->CopierAdresse)(&AdresseObjetClone,&(ObjetB->UpsChamp5)); else { /*--------------------------------------------------------------*/ /* Il faut cloner ses proprietes. */ /*--------------------------------------------------------------*/ (*$MonModule$IntTrtUpsOms->CopierAdresse)(&(UpsPrm2.UpsVar1),&(UpsPrm->UpsVar1)); UpsPrm2.UpsVar2=(TypUpsVmUnsignedChar)(UpsPrm->UpsVar2-1); (*$MonModule$IntTrtUpsKrn->ClonerObjet)(Session, &AdresseObjetClone,&(ObjetB->UpsChamp5),&UpsPrm2); } (*$MonModule$IntTrtUpsOms->UtiliserObjet)(Session, (*$MonModule$IntTrtUpsOms->CopierAdresse)(&(RObjetB->UpsChamp5),&AdresseObjetClone)); if (VerrouObjet) (*$MonModule$IntTrtUpsOms->LibererVerrou)(Session,VerrouObjet,0); /*--------------------------------------------------------------*/ /* L'usage est pris en compte par l'appelant. */ /*--------------------------------------------------------------*/ Resultat->NbUtilisations=0; if (VerrouResultat) (*$MonModule$IntTrtUpsOms->LibererVerrou)(Session,VerrouResultat,1); return(AdresseResultat); } /****************************************************************/ static TypUpsVmVoid UpsVmAPI BMethodeExporter(TypUpsVmSession *Session, TypUpsVmAdresse *AdresseObjet) /* Objet : Methode d'exportation pour un objet du type B. */ /****************************************************************/ { UpsTypUpsKrn_7 *Objet; /* Objet. */ TypUpsVmUnsignedLong VerrouObjet; /* Verrou sur l'objet. */ UpsTyp$MonModule$_2 *ObjetB; /* Pour retrouver le corps de l'objet. */ if ((*$MonModule$IntTrtUpsOms->ObjetDejaExporte)(Session,AdresseObjet)) return; (*$MonModule$IntTrtUpsOms->ExporterVersionRevision)(Session,1,0,0); Objet=(UpsTypUpsKrn_7 *)(*$MonModule$IntTrtUpsOms->RechercherObjet)(Session,AdresseObjet, &VerrouObjet,VR_ObjetLecturePartagee,(TypUpsVmPointeurDonnees *)&ObjetB); (*$MonModule$IntTrtUpsOms->ExporterEntier)(Session,(TypUpsVmLong)ObjetB->UpsChamp1); (*$MonModule$IntTrtUpsOms->ExporterEntier)(Session,ObjetB->UpsChamp2); (*$MonModule$IntTrtUpsOms->ExporterReel)(Session,ObjetB->UpsChamp3); (*$MonModule$IntTrtUpsOms->ExporterObjet)(Session,&(ObjetB->UpsChamp4)); (*$MonModule$IntTrtUpsOms->ExporterObjet)(Session,&(ObjetB->UpsChamp5)); if (VerrouObjet) (*$MonModule$IntTrtUpsOms->LibererVerrou)(Session,VerrouObjet,0); } /****************************************************************/ static TypUpsVmAdresse UpsVmAPI *BMethodeImporter(TypUpsVmSession *Session, TypUpsVmAdresse *AdresseResultat, TypPrmUpsVmImporter *UpsPrm) /* Objet : Methode d'exportation pour un objet du type B. */ /****************************************************************/ { UpsTypUpsKrn_7 *Resultat; /* Resultat de la methode. */ TypUpsVmUnsignedLong VerrouResultat; /* Verrou sur le resultat. */ UpsTyp$MonModule$_2 *RObjetB; /* Pour retrouver le corps de l'objet. */ TypUpsVmShort Version; /* Version de l'objet. */ TypUpsVmShort Revision; /* Revision de l'objet. */ TypUpsVmShort Correction; /* Correction de l'objet. */ (*$MonModule$IntTrtUpsOms->ImporterVersionRevision)(Session,&Version,&Revision,&Correction); if (UpsVmComparerVersionRevision(1,0,0,Version,Revision,Correction)<0) /*--------------------------------------------------------------*/ /* L'import est incorrect. */ /*--------------------------------------------------------------*/ (*$MonModule$IntTrtUpsOms->ErreurLorsDeLImportationVersion)(Session,Version,Revision,Correction, (*$MonModule$IntTrtUpsNls->Traduire)($MonModuleNumeroModule,UpsEnuUpsNls_1_4,_T("TypeB"))); /*--------------------------------------------------------------*/ /* Allocation de l'objet importe. */ /*--------------------------------------------------------------*/ Resultat=(*$MonModule$IntTrtUpsOms->AllouerUnObjet)(Session,AdresseResultat,&($MonModule$IntDonPro->UpsType2), &VerrouResultat,(TypUpsVmPointeurDonnees *)&RObjetB); RObjetB->UpsChamp1=(TypUpsVmUnsignedChar)(*$MonModule$IntTrtUpsOms->ImporterEntier)(Session); RObjetB->UpsChamp2=(*$MonModule$IntTrtUpsOms->ImporterEntier)(Session); RObjetB->UpsChamp3=(*$MonModule$IntTrtUpsOms->ImporterReel)(Session); (*$MonModule$IntTrtUpsOms->ImporterObjet)(Session,&(RObjetB->UpsChamp4)); (*$MonModule$IntTrtUpsOms->UtiliserObjet)(Session,&(RObjetB->UpsChamp4)); (*$MonModule$IntTrtUpsOms->ImporterObjet)(Session,&(RObjetB->UpsChamp5)); (*$MonModule$IntTrtUpsOms->UtiliserObjet)(Session,&(RObjetB->UpsChamp5)); if (VerrouResultat) (*$MonModule$IntTrtUpsOms->LibererVerrou)(Session,VerrouResultat,1); return(AdresseResultat); } /****************************************************************/ static TypUpsVmAdresse UpsVmAPI *BMethodeLirePropriete(TypUpsVmSession *Session, TypUpsVmAdresse *AdresseResultat, TypUpsVmAdresse *AdresseObjet, TypPrmUpsVmLirePropriete *UpsPrm) /* Objet : Methode de lecture des proprietes dynamiques. */ /****************************************************************/ { $MonModule$ChargerDictionnaire(Session); return((*$MonModule$IntTrt$MonModule$D->UpsTrt2->EnteteMethodes.MethodeLirePropriete)(Session, AdresseResultat,AdresseObjet,UpsPrm)); } /****************************************************************/ static TypUpsVmVoid UpsVmAPI BMethodeEcrirePropriete(TypUpsVmSession *Session, TypUpsVmAdresse *AdresseObjet, TypPrmUpsVmEcrirePropriete *UpsPrm) /* Objet : Methode d'ecriture des proprietes dynamiques. */ /****************************************************************/ { $MonModule$ChargerDictionnaire(Session); (*$MonModule$IntTrt$MonModule$D->UpsTrt2->EnteteMethodes.MethodeEcrirePropriete)(Session, AdresseObjet,UpsPrm); } /****************************************************************/ static TypUpsVmAdresse UpsVmAPI *BMethodeIncrementerDecrementerPropriete(TypUpsVmSession *Session, TypUpsVmAdresse *AdresseResultat, TypUpsVmAdresse *AdresseObjet, TypPrmUpsVmIncrementerDecrementerPropriete *UpsPrm) /* Objet : Methode d'incrementation et de decrementation des */ /* proprietes dynamiques. */ /****************************************************************/ { $MonModule$ChargerDictionnaire(Session); return((*$MonModule$IntTrt$MonModule$D->UpsTrt2->EnteteMethodes.MethodeIncrementerDecrementerPropriete)(Session, AdresseResultat,AdresseObjet,UpsPrm)); } /****************************************************************/ static TypUpsVmVoid UpsVmAPI BMethodeSupprimerPropriete(TypUpsVmSession *Session, TypUpsVmAdresse *AdresseObjet, TypPrmUpsVmSupprimerPropriete *UpsPrm) /* Objet : Methode de suppression des proprietes dynamiques. */ /****************************************************************/ { $MonModule$ChargerDictionnaire(Session); (*$MonModule$IntTrt$MonModule$D->UpsTrt2->EnteteMethodes.MethodeSupprimerPropriete)(Session, AdresseObjet,UpsPrm); } /****************************************************************/ static TypUpsVmAdresse UpsVmAPI *BMethodeEnumererProprietes(TypUpsVmSession *Session, TypUpsVmAdresse *AdresseResultat, TypUpsVmAdresse *AdresseObjet, TypPrmUpsVmEnumererProprietes *UpsPrm) /* Objet : Methode d'enumeration des proprietes dynamiques. */ /****************************************************************/ { $MonModule$ChargerDictionnaire(Session); return((*$MonModule$IntTrt$MonModule$D->UpsTrt2->EnteteMethodes.MethodeEnumererProprietes)(Session, AdresseResultat,AdresseObjet,UpsPrm)); } /****************************************************************/ static TypUpsVmAdresse UpsVmAPI *BMethodeEnumererMethodes(TypUpsVmSession *Session, TypUpsVmAdresse *AdresseResultat, TypUpsVmAdresse *UpsObjet, TypPrmUpsVmEnumererAppels *UpsPrm) /* Objet : Enumere les methodes. */ /****************************************************************/ { $MonModule$ChargerDictionnaire(Session); return((*$MonModule$IntTrt$MonModule$D->UpsTrt2->EnteteMethodes.MethodeEnumererMethodes)(Session, AdresseResultat,UpsObjet,UpsPrm)); } /****************************************************************/ static TypUpsVmVoid UpsVmAPI BMethodeUtiliserObjetsChamps(TypUpsVmSession *Session, TypUpsVmChar *Adresse) /* Utilise les champs d'un objet pour une transaction; */ /****************************************************************/ { UpsTyp$MonModule$_2 *ObjetB; /* Pour retrouver le corps de l'objet. */ ObjetA=(UpsTyp$MonModule$_2 *)Adresse; (*$MonModule$IntTrtUpsOms->UtiliserObjet)(Session,&(ObjetB->UpsChamp4)); (*$MonModule$IntTrtUpsOms->UtiliserObjet)(Session,&(ObjetB->UpsChamp5)); } /****************************************************************/ static TypUpsVmVoid UpsVmAPI AMethodeNePlusUtiliserObjetsChamps(TypUpsVmSession *Session, TypUpsVmChar *Adresse) /* N'utilise plus les champs d'un objet pour une transaction; */ /****************************************************************/ { UpsTyp$MonModule$_2 *ObjetB; /* Pour retrouver le corps de l'objet. */ ObjetA=(UpsTyp$MonModule$_2 *)Adresse; (*$MonModule$IntTrtUpsOms->NePlusUtiliserObjet)(Session,&(ObjetB->UpsChamp4)); (*$MonModule$IntTrtUpsOms->NePlusUtiliserObjet)(Session,&(ObjetB->UpsChamp5)); } /****************************************************************/ static TypUpsVmUnsignedChar UpsVmAPI UpsCoMth$MonModule$_2_5_1(TypUpsVmSession *Session, TypUpsVmShort NumeroParametre, TypUpsVmAdresse *AdresseResultat, TypPrmUpsVmEnumererParametres *UpsPrm) /* Procedure B.P(A:Enumere, B:Entier, C:Reel, D:Caractere, */ /* E:Objet); */ /****************************************************************/ { if (AdresseResultat&&UpsPrm) { $MonModule$ChargerDictionnaire(Session); return((*$MonModule$IntTrt$MonModule$D->UpsTrt2->CoMth_5_1)(Session,NumeroParametre,AdresseResultat,UpsPrm)); } switch (NumeroParametre) { case 1 : return(PR_EnumereCourtParEntree); break; case 2 : return(PR_EntierParEntree); break; case 3 : return(PR_ReelParEntree); break; case 4 : return(PR_ObjetParEntree); break; case 5 : return(PR_ObjetParEntree); break; } return(0); } /****************************************************************/ static TypUpsVmVoid UpsVmAPI UpsMth$MonModule$_2_5_1(TypUpsVmSession *Session, TypUpsVmAdresse *AdresseObjet, TypPrm$MonModule$_2_5_1 *UpsPrm) /* Procedure B.P(A:Enumere, B:Entier, C:Reel, D:Caractere, E: */ /* Objet); */ /****************************************************************/ { if (!AdresseObjet->NumeroSegment) return; /*--------------------------------------------------------------*/ /* A completer... */ /*--------------------------------------------------------------*/ } /****************************************************************/ static TypUpsVmUnsignedChar UpsVmAPI UpsCoMth$MonModule$_2_6_1(TypUpsVmSession *Session, TypUpsVmShort NumeroParametre, TypUpsVmAdresse *AdresseResultat, TypPrmUpsVmEnumererParametres *UpsPrm) /* B.F(A:Enumere, B:Entier, C:Reel, D:Caractere, E:Objet) */ /* Retourner Objet; */ /****************************************************************/ { if (AdresseResultat&&UpsPrm) { $MonModule$ChargerDictionnaire(Session); return((*$MonModule$IntTrt$MonModule$D->UpsTrt2->CoMth_6_1)(Session,NumeroParametre,AdresseResultat,UpsPrm)); } switch (NumeroParametre) { case 1 : return(PR_EnumereCourtParEntree); break; case 2 : return(PR_EntierParEntree); break; case 3 : return(PR_ReelParEntree); break; case 4 : return(PR_ObjetParEntree); break; case 5 : return(PR_ObjetParEntree); break; case 0 : return(PR_ObjetParSortie); break; } return(0); } /****************************************************************/ static TypUpsVmAdresse UpsVmAPI UpsMth$MonModule$_2_6_1(TypUpsVmSession *Session, TypUpsVmAdresse *AdresseResultat, TypUpsVmAdresse *AdresseObjet, TypPrm$MonModule$_2_6_1 *UpsPrm) /* B.F(A:Enumere, B:Entier, C:Reel, D:Caractere, E:Objet) */ /* Retourner Objet; */ /****************************************************************/ { (*$MonModule$IntTrtUpsOms->AdresseANul)(AdresseResultat); if (!AdresseObjet->NumeroSegment) return(AdresseResultat); /*--------------------------------------------------------------*/ /* A completer... */ /*--------------------------------------------------------------*/ return(AdresseResultat); } /****************************************************************/ TypUpsVmAdresse UpsVmAPI *UpsType2_get(TypUpsVmSession *Session) /* Type B. */ /****************************************************************/ { Inutile(Session); return(&($MonModule$IntDonPro->UpsType2)); } /****************************************************************/ TypUpsVmLong UpsVmAPI UpsIndex2_1_0_0_get(TypUpsVmSession *Session, TypUpsVmShort Numero) /* Type B. */ /****************************************************************/ { switch (Numero) { case 1 : return(0); break; case 2 : return(4); break; case 3 : return(8); break; case 4 : return(16); break; case 5 : return(48); break; } (*$MonModule$IntTrtUpsKrn$->EnvoyerExceptionStandard)(Session,($MonModule$IntTrtUpsKrn->UpsException55_get)(Session)), (*$MonModule$IntTrtUpsNls->Traduire)($MonModule$NumeroModule,UpsEnuUpsNls_1_4,_T("TypeB")), NULL,NULL,NULL,NULL); return(0); } /****************************************************************/ /* Variables globales. */ /****************************************************************/ /****************************************************************/ TypUpsVmUnsignedChar UpsVmAPI UpsVar1_get(TypUpsVmSession *Session) /* A:Enumere; */ /****************************************************************/ { Inutile(Session); return($MonModule$IntDonPro->UpsVar1); } /****************************************************************/ TypUpsVmVoid UpsVmAPI UpsVar1_set(TypUpsVmSession *Session, TypUpsVmUnsignedChar UpsPrm) /* A:Enumere; */ /****************************************************************/ { (*$MonModule$IntTrtUpsKrn->MiseAJourVariableEnumereCourt)(Session,&($MonModule$IntDonPro->UpsVar1),UpsPrm); } /****************************************************************/ TypUpsVmLong UpsVmAPI UpsVar2_get(TypUpsVmSession *Session) /* B:Entier; */ /****************************************************************/ { Inutile(Session); return($MonModule$IntDonPro->UpsVar2); } /****************************************************************/ TypUpsVmVoid UpsVmAPI UpsVar2_set(TypUpsVmSession *Session, TypUpsVmLong UpsPrm, enum EnuUpsVmOperateur Operateur) /* B:Entier; */ /****************************************************************/ { (*$MonModule$IntTrtUpsKrn->MiseAJourVariableEntier)(Session,&($MonModule$IntDonPro->UpsVar2),UpsPrm,Operateur); } /****************************************************************/ TypUpsVmLong UpsVmAPI UpsVar3_inc(TypUpsVmSession *Session, TypUpsVmChar Incrementer, TypUpsVmChar Prefixe) /* B:Entier; */ /****************************************************************/ { return((*$MonModule$IntTrtUpsKrn->IncrementerDecrementerVariableEntier)(Session,&($MonModule$IntDonPro->UpsVar2),Incrementer,Prefixe)); } /****************************************************************/ TypUpsVmDouble UpsVmAPI UpsVar3_get(TypUpsVmSession *Session) /* C:Reel; */ /****************************************************************/ { Inutile(Session); return($MonModule$IntDonPro->UpsVar3); } /****************************************************************/ TypUpsVmVoid UpsVmAPI UpsVar3_set(TypUpsVmSession *Session, TypUpsVmDouble UpsPrm, enum EnuUpsVmOperateur Operateur) /* C:Reel; */ /****************************************************************/ { (*$MonModule$IntTrtUpsKrn->MiseAJourVariableReel)(Session,&($MonModule$IntDonPro->UpsVar3),UpsPrm,Operateur); } /****************************************************************/ TypUpsVmDouble UpsVmAPI UpsVar3_inc(TypUpsVmSession *Session, TypUpsVmChar Incrementer, TypUpsVmChar Prefixe) /* C:Reel; */ /****************************************************************/ { return((*$MonModule$IntTrtUpsKrn->IncrementerDecrementerVariableReel)(Session,&($MonModule$IntDonPro->UpsVar3),Incrementer,Prefixe)); } /****************************************************************/ TypUpsVmAdresse UpsVmAPI *UpsVar4_get(TypUpsVmSession *Session) /* D:Caractere; */ /****************************************************************/ { Inutile(Session); return(&($MonModule$IntDonPro->UpsVar4)); } /****************************************************************/ TypUpsVmVoid UpsVmAPI UpsVar4_set(TypUpsVmSession *Session, TypUpsVmAdresse *UpsPrm) /* D:Caractere; */ /****************************************************************/ { (*$MonModule$IntTrtUpsOms->NePlusUtiliserObjet)(Session,&($MonModule$IntDonPro->UpsVar4)); (*$MonModule$IntTrtUpsOms->UtiliserObjet)(Session, (*$MonModule$IntTrtUpsOms->CopierAdresse)(&($MonModule$IntDonPro->UpsVar4),UpsPrm)); } /****************************************************************/ TypUpsVmAdresse UpsVmAPI *UpsVar5_get(TypUpsVmSession *Session) /* E:Objet; */ /****************************************************************/ { Inutile(Session); return(&($MonModule$IntDonPro->UpsVar5)); } /****************************************************************/ TypUpsVmVoid UpsVmAPI UpsVar5_set(TypUpsVmSession *Session, TypUpsVmAdresse *UpsPrm) /* E:Objet; */ /****************************************************************/ { (*$MonModule$IntTrtUpsOms->NePlusUtiliserObjet)(Session,&($MonModule$IntDonPro->UpsVar5)); (*$MonModule$IntTrtUpsOms->UtiliserObjet)(Session, (*$MonModule$IntTrtUpsOms->CopierAdresse)(&($MonModule$IntDonPro->UpsVar5),UpsPrm)); } /****************************************************************/ /* Exceptions. */ /****************************************************************/ /****************************************************************/ TypUpsVmAdresse UpsVmAPI *UpsException1_get(TypUpsVmSession *Session) /* Exception A. */ /****************************************************************/ { Inutile(Session); return(&($MonModule$IntDonPro->UpsException1)); } /****************************************************************/ TypUpsVmAdresse UpsVmAPI *UpsException2_get(TypUpsVmSession *Session) /* Exception B. */ /****************************************************************/ { Inutile(Session); return(&($MonModule$IntDonPro->UpsException2)); } /****************************************************************/ /* Files d'attente. */ /****************************************************************/ /****************************************************************/ TypUpsVmAdresse UpsVmAPI *UpsFileDAttente1_get(TypUpsVmSession *Session) /* File d'attente A. */ /****************************************************************/ { Inutile(Session); return(&($MonModule$IntDonPro->UpsFileDAttente1)); } /****************************************************************/ TypUpsVmAdresse UpsVmAPI *UpsFileDAttente2_get(TypUpsVmSession *Session) /* File d'attente B. */ /****************************************************************/ { Inutile(Session); return(&($MonModule$IntDonPro->UpsFileDAttente2)); } /****************************************************************/ /* Entrepots. */ /****************************************************************/ /****************************************************************/ TypUpsVmAdresse UpsVmAPI *UpsEntrepot1_get(TypUpsVmSession *Session) /* Entrepot A. */ /****************************************************************/ { Inutile(Session); return(&($MonModule$IntDonPro->UpsEntrepot1)); } /****************************************************************/ TypUpsVmUnsignedShort UpsVmAPI UpsNumeroEntrepot1_get(TypUpsVmSession *Session) /* Numero de l'entrepot A. */ /****************************************************************/ { Inutile(Session); return($MonModule$IntDonPro->UpsNumeroEntrepot1); } /****************************************************************/ TypUpsVmAdresse UpsVmAPI *UpsEntrepot2_get(TypUpsVmSession *Session) /* Entrepot B. */ /****************************************************************/ { Inutile(Session); return(&($MonModule$IntDonPro->UpsEntrepot2)); } /****************************************************************/ TypUpsVmUnsignedShort UpsVmAPI UpsNumeroEntrepot2_get(TypUpsVmSession *Session) /* Numero de l'entrepot B. */ /****************************************************************/ { Inutile(Session); return($MonModule$IntDonPro->UpsNumeroEntrepot2); } /****************************************************************/ TypUpsVmVoid UpsVmAPI $MonModule$EnregistrerPersistance1(TypUpsVmVoid) /* Objet : Enregistre les donnees persistantes du composant. */ /****************************************************************/ { (*$MonModule$IntTrtUpsOms->ExporterAdresseObjet)(&($MonModule$IntDonUpsOms->SessionPrincipal),&($MonModule$IntDon$MonModule$->EnteteDonneesModule.Module)); /*--------------------------------------------------------------*/ /* Types et interfaces. */ /*--------------------------------------------------------------*/ (*$MonModule$IntTrtUpsOms->ExporterAdresseObjet)(&($MonModule$IntDonUpsOms->SessionPrincipal),&($MonModule$IntDonPro->UpsType1)); (*$MonModule$IntTrtUpsOms->ExporterAdresseObjet)(&($MonModule$IntDonUpsOms->SessionPrincipal),&($MonModule$IntDonPro->UpsType2)); /*--------------------------------------------------------------*/ /* Variables globales. */ /*--------------------------------------------------------------*/ (*$MonModule$IntTrtUpsOms->ExporterEntier)(&($MonModule$IntDonUpsOms->SessionPrincipal),(TypUpsVmLong)$MonModule$VarGlo1->UpsVar1); (*$MonModule$IntTrtUpsOms->ExporterEntier)(&($MonModule$IntDonUpsOms->SessionPrincipal),$MonModule$VarGlo1->UpsVar2); (*$MonModule$IntTrtUpsOms->ExporterReel)(&($MonModule$IntDonUpsOms->SessionPrincipal),$MonModule$VarGlo1->UpsVar3); (*$MonModule$IntTrtUpsOms->ExporterAdresseObjet)(&($MonModule$IntDonUpsOms->SessionPrincipal),&($MonModule$VarGlo1->UpsVar4)); (*$MonModule$IntTrtUpsOms->ExporterAdresseObjet)(&($MonModule$IntDonUpsOms->SessionPrincipal),&($MonModule$VarGlo1->UpsVar5)); /*--------------------------------------------------------------*/ /* Exceptions. */ /*--------------------------------------------------------------*/ (*$MonModule$IntTrtUpsOms->ExporterAdresseObjet)(&($MonModule$IntDonUpsOms->SessionPrincipal),&($MonModule$IntDonPro->UpsException1)); (*$MonModule$IntTrtUpsOms->ExporterAdresseObjet)(&($MonModule$IntDonUpsOms->SessionPrincipal),&($MonModule$IntDonPro->UpsException2)); /*--------------------------------------------------------------*/ /* Files d'attente. */ /*--------------------------------------------------------------*/ (*$MonModule$IntTrtUpsOms->ExporterAdresseObjet)(&($MonModule$IntDonUpsOms->SessionPrincipal),&($MonModule$IntDonPro->UpsFileDAttente1)); (*$MonModule$IntTrtUpsOms->ExporterAdresseObjet)(&($MonModule$IntDonUpsOms->SessionPrincipal),&($MonModule$IntDonPro->UpsFileDAttente2)); /*--------------------------------------------------------------*/ /* Entrepots. */ /*--------------------------------------------------------------*/ (*$MonModule$IntTrtUpsOms->ExporterAdresseObjet)(&($MonModule$IntDonUpsOms->SessionPrincipal),&($MonModule$IntDonPro->UpsEntrepot1)); (*$MonModule$IntTrtUpsOms->ExporterAdresseObjet)(&($MonModule$IntDonUpsOms->SessionPrincipal),&($MonModule$IntDonPro->UpsEntrepot2)); } /****************************************************************/ TypUpsVmShort UpsVmAPI $MonModule$ChargerPersistance1(TypUpsVmVoid) /* Objet : Charge les donnees persistantes du composant. */ /****************************************************************/ { (*$MonModule$IntTrtUpsOms->ImporterAdresseObjet)(&($MonModule$IntDonUpsOms->SessionPrincipal),&($MonModule$IntDon$MonModule$->EnteteDonneesModule.Module)); /*--------------------------------------------------------------*/ /* Types et interfaces. */ /*--------------------------------------------------------------*/ (*$MonModule$IntTrtUpsOms->ImporterAdresseObjet)(&($MonModule$IntDonUpsOms->SessionPrincipal),&($MonModule$IntDonPro->UpsType1)); (*$MonModule$IntTrtUpsOms->MiseAJourEnteteMethodesObjets)(&($MonModule$IntDonPro->UpsType1),&($MonModule$IntDonPri1->MethodesTypeA.EnteteMethodes)); (*$MonModule$IntTrtUpsOms->ImporterAdresseObjet)(&($MonModule$IntDonUpsOms->SessionPrincipal),&($MonModule$IntDonPro->UpsType2)); (*$MonModule$IntTrtUpsOms->MiseAJourEnteteMethodesObjets)(&($MonModule$IntDonPro->UpsType2),&($MonModule$IntDonPri1->MethodesTypeB.EnteteMethodes)); /*--------------------------------------------------------------*/ /* Variables globales. */ /*--------------------------------------------------------------*/ $MonModule$VarGlo1->UpsVar1=(TypUpsVmUnsignedChar)(*$MonModule$IntTrtUpsOms->ImporterEntier)(&($MonModule$IntDonUpsOms->SessionPrincipal)); $MonModule$VarGlo1->UpsVar2=(*$MonModule$IntTrtUpsOms->ImporterEntier)(&($MonModule$IntDonUpsOms->SessionPrincipal)); $MonModule$VarGlo1->UpsVar3=(*$MonModule$IntTrtUpsOms->ImporterReel)(&($MonModule$IntDonUpsOms->SessionPrincipal)); (*$MonModule$IntTrtUpsOms->ImporterAdresseObjet)(&($MonModule$IntDonUpsOms->SessionPrincipal),&($MonModule$VarGlo1->UpsVar4)); (*$MonModule$IntTrtUpsOms->ImporterAdresseObjet)(&($MonModule$IntDonUpsOms->SessionPrincipal),&($MonModule$VarGlo1->UpsVar5)); /*--------------------------------------------------------------*/ /* Exceptions. */ /*--------------------------------------------------------------*/ (*$MonModule$IntTrtUpsOms->ImporterAdresseObjet)(&($MonModule$IntDonUpsOms->SessionPrincipal),&($MonModule$IntDonPro->UpsException1)); (*$MonModule$IntTrtUpsOms->ImporterAdresseObjet)(&($MonModule$IntDonUpsOms->SessionPrincipal),&($MonModule$IntDonPro->UpsException2)); /*--------------------------------------------------------------*/ /* Files d'attente. */ /*--------------------------------------------------------------*/ (*$MonModule$IntTrtUpsOms->ImporterAdresseObjet)(&($MonModule$IntDonUpsOms->SessionPrincipal),&($MonModule$IntDonPro->UpsFileDAttente1)); (*$MonModule$IntTrtUpsOms->ImporterAdresseObjet)(&($MonModule$IntDonUpsOms->SessionPrincipal),&($MonModule$IntDonPro->UpsFileDAttente2)); /*--------------------------------------------------------------*/ /* Entrepots. */ /*--------------------------------------------------------------*/ (*$MonModule$IntTrtUpsOms->ImporterAdresseObjet)(&($MonModule$IntDonUpsOms->SessionPrincipal),&($MonModule$IntDonPro->UpsEntrepot1)); (*$MonModule$IntTrtUpsOms->ImporterAdresseObjet)(&($MonModule$IntDonUpsOms->SessionPrincipal),&($MonModule$IntDonPro->UpsEntrepot2)); return(1); } /****************************************************************/ TypUpsVmShort UpsVmAPI $MonModule$Initialiser1(TypUpsVmVoid) /* Objet : Initialisation du composant. */ /****************************************************************/ { if ($MonModule$IntDon$MonModule$->EnteteDonneesModule.EnteteSegmentDonnees.NbUtilisations!=1) return(1); /*--------------------------------------------------------------*/ /* Interface des methodes du type A. */ /*--------------------------------------------------------------*/ $MonModule$VarGlo1->MethodesTypeA.EnteteMethodes.Liberer=$MonModule$IntTrtUpsOms->LibererObjetStandard; $MonModule$VarGlo1->MethodesTypeA.EnteteMethodes.Constructeur=AConstructeur; $MonModule$VarGlo1->MethodesTypeA.EnteteMethodes.Destructeur=ADestructeur; $MonModule$VarGlo1->MethodesTypeA.EnteteMethodes.MethodeAffecter=$MonModule$IntTrtUpsKrn->MethodeAffecter; $MonModule$VarGlo1->MethodesTypeA.EnteteMethodes.MethodeEgal=$MonModule$IntTrtUpsKrn->MethodeEgal; $MonModule$VarGlo1->MethodesTypeA.EnteteMethodes.MethodeDifferent=$MonModule$IntTrtUpsKrn->MethodeDifferent; $MonModule$VarGlo1->MethodesTypeA.EnteteMethodes.MethodeCloner=AMethodeCloner; $MonModule$VarGlo1->MethodesTypeA.EnteteMethodes.MethodeExporter=AMethodeExporter; $MonModule$VarGlo1->MethodesTypeA.EnteteMethodes.MethodeImporter=AMethodeImporter; $MonModule$VarGlo1->MethodesTypeA.EnteteMethodes.MethodeAllouerRessource=NULL; $MonModule$VarGlo1->MethodesTypeA.EnteteMethodes.MethodeLibererRessource=NULL; $MonModule$VarGlo1->MethodesTypeA.EnteteMethodes.MethodeLirePropriete=AMethodeLirePropriete; $MonModule$VarGlo1->MethodesTypeA.EnteteMethodes.MethodeEcrirePropriete=AMethodeEcrirePropriete; $MonModule$VarGlo1->MethodesTypeA.EnteteMethodes.MethodeIncrementerDecrementerPropriete=AMethodeIncrementerDecrementerPropriete; $MonModule$VarGlo1->MethodesTypeA.EnteteMethodes.MethodeSupprimerPropriete=AMethodeSupprimerPropriete; $MonModule$VarGlo1->MethodesTypeA.EnteteMethodes.MethodeEnumererProprietes=AMethodeEnumererProprietes; $MonModule$VarGlo1->MethodesTypeA.EnteteMethodes.MethodeEnumererMethodes=AMethodeEnumererMethodes; $MonModule$VarGlo1->MethodesTypeA.EnteteMethodes.MethodeUtiliserObjetsChamps=AMethodeUtiliserObjetsChamps; $MonModule$VarGlo1->MethodesTypeA.EnteteMethodes.MethodeNePlusUtiliserObjetsChamps=AMethodeNePlusUtiliserObjetsChamps; $MonModule$VarGlo1->MethodesTypeA.Mth_5_1=UpsMth$MonModule$_1_5_1; $MonModule$VarGlo1->MethodesTypeA.Mth_6_1=UpsMth$MonModule$_1_6_1; $MonModule$VarGlo1->MethodesTypeA.CoMth_5_1=UpsCoMth$MonModule$_1_5_1; $MonModule$VarGlo1->MethodesTypeA.CoMth_6_1=UpsCoMth$MonModule$_1_6_1; if (!(*$MonModule$IntTrtUpsKrn->VerifierInterfaceMethodes)((TypUpsVmPointeurTraitements *)$MonModule$IntTrt$MonModule$->UpsTrt1, sizeof(struct upstrttyp$monmodule$_1_1_0_0),_T("$MonModule$.TypeA"))) return(0); /*--------------------------------------------------------------*/ /* Interface des methodes du type B. */ /*--------------------------------------------------------------*/ $MonModule$VarGlo1->MethodesTypeB.EnteteMethodes.Liberer=$MonModule$IntTrtUpsOms->LibererObjetStandard; $MonModule$VarGlo1->MethodesTypeB.EnteteMethodes.Constructeur=BConstructeur; $MonModule$VarGlo1->MethodesTypeB.EnteteMethodes.Destructeur=BDestructeur; $MonModule$VarGlo1->MethodesTypeB.EnteteMethodes.MethodeAffecter=$MonModule$IntTrtUpsKrn->MethodeAffecter; $MonModule$VarGlo1->MethodesTypeB.EnteteMethodes.MethodeEgal=$MonModule$IntTrtUpsKrn->MethodeEgal; $MonModule$VarGlo1->MethodesTypeB.EnteteMethodes.MethodeDifferent=$MonModule$IntTrtUpsKrn->MethodeDifferent; $MonModule$VarGlo1->MethodesTypeB.EnteteMethodes.MethodeCloner=BMethodeCloner; $MonModule$VarGlo1->MethodesTypeB.EnteteMethodes.MethodeExporter=BMethodeExporter; $MonModule$VarGlo1->MethodesTypeB.EnteteMethodes.MethodeImporter=BMethodeImporter; $MonModule$VarGlo1->MethodesTypeB.EnteteMethodes.MethodeAllouerRessource=NULL; $MonModule$VarGlo1->MethodesTypeB.EnteteMethodes.MethodeLibererRessource=NULL; $MonModule$VarGlo1->MethodesTypeB.EnteteMethodes.MethodeLirePropriete=BMethodeLirePropriete; $MonModule$VarGlo1->MethodesTypeB.EnteteMethodes.MethodeEcrirePropriete=BMethodeEcrirePropriete; $MonModule$VarGlo1->MethodesTypeB.EnteteMethodes.MethodeIncrementerDecrementerPropriete=BMethodeIncrementerDecrementerPropriete; $MonModule$VarGlo1->MethodesTypeB.EnteteMethodes.MethodeSupprimerPropriete=BMethodeSupprimerPropriete; $MonModule$VarGlo1->MethodesTypeB.EnteteMethodes.MethodeEnumererProprietes=BMethodeEnumererProprietes; $MonModule$VarGlo1->MethodesTypeB.EnteteMethodes.MethodeEnumererMethodes=BMethodeEnumererMethodes; $MonModule$VarGlo1->MethodesTypeB.EnteteMethodes.MethodeUtiliserObjetsChamps=BMethodeUtiliserObjetsChamps; $MonModule$VarGlo1->MethodesTypeB.EnteteMethodes.MethodeNePlusUtiliserObjetsChamps=BMethodeNePlusUtiliserObjetsChamps; $MonModule$VarGlo1->MethodesTypeB.Mth_5_1=UpsMth$MonModule$_2_5_1; $MonModule$VarGlo1->MethodesTypeB.Mth_6_1=UpsMth$MonModule$_2_6_1; $MonModule$VarGlo1->MethodesTypeB.CoMth_5_1=UpsCoMth$MonModule$_2_5_1; $MonModule$VarGlo1->MethodesTypeB.CoMth_6_1=UpsCoMth$MonModule$_2_6_1; if (!(*$MonModule$IntTrtUpsKrn->VerifierInterfaceMethodes)((TypUpsVmPointeurTraitements *)$MonModule$IntTrt$MonModule$->UpsTrt2, sizeof(struct upstrttyp$monmodule$_2_1_0_0),_T("$MonModule$.TypeB"))) return(0); $MonModule$IntDonPro->UpsNumeroEntrepot1=(*$MonModule$IntTrtUpsOms->RechercherEntrepot)(_T("EntrepotA")); $MonModule$IntDonPro->UpsNumeroEntrepot2=(*$MonModule$IntTrtUpsOms->RechercherEntrepot)(_T("EntrepotB")); if (!(*$MonModule$IntTrtUpsOms->EstLeServeurDeSysteme)()) { /*--------------------------------------------------------------*/ /* Types et interfaces. */ /*--------------------------------------------------------------*/ (*$MonModule$IntTrtUpsNet->LireAdresseType)(&($MonModule$IntDonUpsOms->SessionPrincipal),_T("$MonModule$"),1,0,0, _T("TypeA"),&($MonModule$IntDonPro->UpsType1),1); (*$MonModule$IntTrtUpsNet->LireAdresseType)(&(UpsSysIntDonUpsOms->SessionPrincipal),_T("$MonModule$"),1,0,0, _T("TypeB"),&($MonModule$IntDonPro->UpsType2),1); /*--------------------------------------------------------------*/ /* Exceptions. */ /*--------------------------------------------------------------*/ (*$MonModule$IntTrtUpsNet->LireAdresseException)(&($MonModule$IntDonUpsOms->SessionPrincipal),_T("$MonModule$"),1,0,0, _T("ExceptionA"),&(UpsSysIntDonPro->UpsException1),1); (*$MonModule$IntTrtUpsNet->LireAdresseException)(&($MonModule$IntDonUpsOms->SessionPrincipal),_T("$MonModule$"),1,0,0, _T("ExceptionB"),&(UpsSysIntDonPro->UpsException2),1); /*--------------------------------------------------------------*/ /* Files d'attente. */ /*--------------------------------------------------------------*/ (*$MonModule$IntTrtUpsNet->LireAdresseFile)(&($MonModule$IntDonUpsOms->SessionPrincipal),_T("$MonModule$"),1,0,0, _T("FileDAttenteA"),&(UpsSysIntDonPro->UpsFileDAttente1),1); (*$MonModule$IntTrtUpsNet->LireAdresseFile)(&($MonModule$IntDonUpsOms->SessionPrincipal),_T("$MonModule$"),1,0,0, _T("FileDAttenteB"),&(UpsSysIntDonPro->UpsFileDAttente2),1); /*--------------------------------------------------------------*/ /* Entrepots. */ /*--------------------------------------------------------------*/ (*$MonModule$IntTrtUpsNet->LireAdresseEntrepot)(&($MonModule$IntDonUpsOms->SessionPrincipal),_T("$MonModule$"),1,0,0, _T("EntrepotA"),&(UpsSysIntDonPro->UpsFileDAttente1),1); (*$MonModule$IntTrtUpsNet->LireAdresseEntrepot)(&($MonModule$IntDonUpsOms->SessionPrincipal),_T("$MonModule$"),1,0,0, _T("EntrepotB"),&(UpsSysIntDonPro->UpsFileDAttente2),1); } else if ($MonModule$IntDonUpsOms->IlExisteFichierPersistantEnLecture) { /*--------------------------------------------------------------*/ /* Lecture des objets standards. */ /*--------------------------------------------------------------*/ if (!(*$MonModule$IntTrtUpsOms->DebuterChargementPersistanceModule)(_T("$MonModule$"))) return(0); if (!$MonModule$ChargerPersistance1()) return(0); (*UpsSysIntTrtUpsOms->TerminerChargementPersistanceModule)(); } else { /*--------------------------------------------------------------*/ /* Types et interfaces. */ /*--------------------------------------------------------------*/ (*$MonModule$IntTrtUpsOms->UtiliserObjet)(&($MonModule$IntDonUpsOms->SessionPrincipal), (*$MonModule$IntTrtUpsOms->CreerObjetType)(&($MonModule$IntDonUpsOms->SessionPrincipal),&($MonModule$IntDonPro->UpsType1), (*$MonModule$IntTrtUpsNls->Traduire)($MonModule$NumeroModule,UpsEnuUpsNls_1_4,_T("TypeA")), NULL,sizeof(UpsTyp$MonModule$_1),&($MonModule$IntDonPri1->MethodesTypeA.EnteteMethodes), CO_TaillePaquet,0,0,_T("$MonModule$"),&($MonModule$IntDon$MonModule$->EnteteDonneesModule.Module),0,0,0,0,0,0,0,0,0,0)); (*$MonModule$IntTrtUpsOms->UtiliserObjet)(&($MonModule$IntDonUpsOms->SessionPrincipal), (*$MonModule$IntTrtUpsOms->CreerObjetType)(&($MonModule$IntDonUpsOms->SessionPrincipal),&($MonModule$IntDonPro->UpsType2), (*$MonModule$IntTrtUpsNls->Traduire)($MonModule$NumeroModule,UpsEnuUpsNls_1_4,_T("TypeB")), NULL,sizeof(UpsTyp$MonModule$_2),&($MonModule$IntDonPri1->MethodesTypeB.EnteteMethodes), CO_TaillePaquet,0,0,_T("$MonModule$"),&($MonModule$IntDon$MonModule$->EnteteDonneesModule.Module),0,0,0,0,0,0,0,0,0,0)); /*--------------------------------------------------------------*/ /* Exceptions. */ /*--------------------------------------------------------------*/ (*$MonModule$IntTrtUpsOms->UtiliserObjet)(&($MonMod$IntDonUpsOms->SessionPrincipal), (*$MonMod$IntTrtUpsKrn->CreerObjetException)(&($MonMod$IntDonUpsOms->SessionPrincipal),&($MonMod$IntDonPro->UpsException1), _T("ExceptionA"),1,&($MonMod$IntDon$MonMod$->EnteteDonneesModule.Module),UpsEnuUpsKrn_8_3)); (*$MonModule$IntTrtUpsOms->UtiliserObjet)(&($MonMod$IntDonUpsOms->SessionPrincipal), (*$MonMod$IntTrtUpsKrn->CreerObjetException)(&($MonMod$IntDonUpsOms->SessionPrincipal),&($MonMod$IntDonPro->UpsException2), _T("ExceptionB"),2,&($MonMod$IntDon$MonMod$->EnteteDonneesModule.Module),UpsEnuUpsKrn_8_3)); /*--------------------------------------------------------------*/ /* Files d'attente. */ /*--------------------------------------------------------------*/ (*$MonModule$IntTrtUpsOms->UtiliserObjet)(&($MonMod$IntDonUpsOms->SessionPrincipal), (*$MonModule$IntTrtUpsSys->CreerObjetFile)(&($MonMod$IntDonUpsOms->SessionPrincipal),&($MonMod$IntDonPro->UpsFileDAttente1), _T("FileDAttenteA),1,&($MonMod$IntDon$MonMod$->EnteteDonneesModule.Module)); (*$MonModule$IntTrtUpsOms->UtiliserObjet)(&($MonMod$IntDonUpsOms->SessionPrincipal), (*$MonModule$IntTrtUpsSys->CreerObjetFile)(&($MonMod$IntDonUpsOms->SessionPrincipal),&($MonMod$IntDonPro->UpsFileDAttente2), _T("FileDAttenteB),1,&($MonMod$IntDon$MonMod$->EnteteDonneesModule.Module)); /*--------------------------------------------------------------*/ /* Entrepots. */ /*--------------------------------------------------------------*/ (*$MonModuleIntTrtUpsKrn->CreerObjetEntrepot)(&($MonModule$IntDonUpsOms->SessionPrincipal),&($MonModule$IntDonPro->UpsEntrepot1), $MonModule$IntDonPro->UpsNumeroEntrepot1,NULL); (*$MonModule$IntTrtUpsOms->UtiliserObjet)(&($MonModule$IntDonUpsOms->SessionPrincipal), &($MonModule$IntDonPro->UpsEntrepot1)); (*$MonModuleIntTrtUpsKrn->CreerObjetEntrepot)(&($MonModule$IntDonUpsOms->SessionPrincipal),&($MonModule$IntDonPro->UpsEntrepot2), $MonModule$IntDonPro->UpsNumeroEntrepot2,NULL); (*$MonModule$IntTrtUpsOms->UtiliserObjet)(&($MonModule$IntDonUpsOms->SessionPrincipal), &($MonModule$IntDonPro->UpsEntrepot2)); } /*--------------------------------------------------------------*/ /* Variables globales. */ /*--------------------------------------------------------------*/ $MonModule$VarGlo1->UpsVar1=1; $MonModule$VarGlo1->UpsVar2=0; $MonModule$VarGlo1->UpsVar3=0.0; (*$MonModule$IntTrtUpsOms->AdresseANul)(&($MonModule$VarGlo1->UpsVar4)); (*$MonModule$IntTrtUpsOms->AdresseANul)(&($MonModule$VarGlo1->UpsVar5)); return(1); } /****************************************************************/ TypUpsVmVoid UpsVmAPI $MonModule$Terminer1(TypUpsVmVoid) /* Objet : Terminaison du composant. */ /****************************************************************/ { if ($MonModule$IntDon$MonModule$->EnteteDonneesModule.EnteteSegmentDonnees.NbUtilisations!=1) return; /*--------------------------------------------------------------*/ /* Liberation des variables globales. */ /*--------------------------------------------------------------*/ (*$MonModuleIntTrtUpsOms->NePlusUtiliserObjet)(&($MonModuleIntDonUpsOms->SessionPrincipal),&($MonModuleIntDonPro->UpsVar1)); (*$MonModuleIntTrtUpsOms->NePlusUtiliserObjet)(&($MonModuleIntDonUpsOms->SessionPrincipal),&($MonModuleIntDonPro->UpsVar2)); if (!(*$MonModule$IntTrtUpsOms->EstLeServeurDeSysteme)() ||!$MonModule$IntDonUpsOms->IlExisteFichierPersistantEnEcriture) { /*--------------------------------------------------------------*/ /* Types et interfaces. */ /*--------------------------------------------------------------*/ (*$MonModule$IntTrtUpsOms->NePlusUtiliserObjet)(&($MonModule$IntDonUpsOms->SessionPrincipal),&($MonModule$IntDonPro->UpsType1)); (*$MonModule$IntTrtUpsOms->NePlusUtiliserObjet)(&($MonModule$IntDonUpsOms->SessionPrincipal),&($MonModule$IntDonPro->UpsType2)); /*--------------------------------------------------------------*/ /* Exceptions. */ /*--------------------------------------------------------------*/ (*$MonModule$IntTrtUpsOms->NePlusUtiliserObjet)(&($MonModule$IntDonUpsOms->SessionPrincipal),&($MonModule$IntDonPro->UpsException1)); (*$MonModule$IntTrtUpsOms->NePlusUtiliserObjet)(&($MonModule$IntDonUpsOms->SessionPrincipal),&($MonModule$IntDonPro->UpsException2)); /*--------------------------------------------------------------*/ /* Files d'attente. */ /*--------------------------------------------------------------*/ (*$MonModule$IntTrtUpsOms->NePlusUtiliserObjet)(&($MonModule$IntDonUpsOms->SessionPrincipal),&($MonModule$IntDonPro->UpsFileDAttente1)); (*$MonModule$IntTrtUpsOms->NePlusUtiliserObjet)(&($MonModule$IntDonUpsOms->SessionPrincipal),&($MonModule$IntDonPro->UpsFileDAttente2)); /*--------------------------------------------------------------*/ /* Entrepots. */ /*--------------------------------------------------------------*/ (*$MonModule$IntTrtUpsOms->NePlusUtiliserObjet)(&($MonModule$IntDonUpsOms->SessionPrincipal),&($MonModule$IntDonPro->UpsEntrepot1)); (*$MonModule$IntTrtUpsOms->NePlusUtiliserObjet)(&($MonModule$IntDonUpsOms->SessionPrincipal),&($MonModule$IntDonPro->UpsEntrepot2)); } } /****************************************************************/ TypUpsVmVoid UpsVmAPI $MonModule$Demarrer1(TypUpsVtmSegmentsDonnees *SegmentsDonnees) /* Objet : Demarrage du composant. */ /****************************************************************/ { SegmentsDonnees->Protege.Taille=0; SegmentsDonnees->Protege.Donnees=(TypUpsVmPointeurDonnees *)NULL; SegmentsDonnees->Prive.Taille=sizeof(struct typ$monmodule$donnees_pri1); SegmentsDonnees->Prive.Donnees=(TypUpsVmPointeurDonnees *)&$MonModule$VarGlo1; }