/*-------------------------------------------------------------------
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;
}