/*------------------------------------------------------------------- Fichier : $monmodule$0.cpp Objet : Interface avec Up ! Module. 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$0.h" TypUpsVtmTraitements $MonModule$IntTrtUpsVtm=NULL; /* Interface de traitements de Ups Mod. */ TypUpsVtmDonnees $MonModule$IntDonUpsVtm=NULL; /* Interface de traitements de Ups Mod. */ TypUpsSysTraitements $MonModule$IntTrtUpsSys=NULL; /* Interface de traitements Ups Sys. */ TypUpsSysDonnees $MonModule$IntDonUpsSys=NULL; /* Interface de donnees Ups Sys. */ TypUpsNlsTraitements $MonModule$IntTrtUpsNls=NULL; /* Interface de traitements Ups Nls. */ TypUpsNlsDonnees $MonModule$IntDonUpsNls=NULL; /* Interface de donnees Ups Nls. */ TypUpsKrnTraitements $MonModule$IntTrtUpsKrn=NULL; /* Interface de traitements Ups Krn. */ TypUpsKrnDonnees $MonModule$IntDonUpsKrn=NULL; /* Interface de donnees Ups Krn. */ TypUpsOrbTraitements $MonModule$IntTrtUpsOrb=NULL; /* Interface de traitements Ups Orb. */ TypUpsOrbDonnees $MonModule$IntDonUpsOrb=NULL; /* Interface de donnees Ups Orb. */ TypUpsOmsTraitements $MonModule$IntTrtUpsOms=NULL; /* Interface de traitements Ups Oms. */ TypUpsOmsDonnees $MonModule$IntDonUpsOms=NULL; /* Interface de donnees Ups Oms. */ TypUpsSecTraitements $MonModule$IntTrtUpsSec=NULL; /* Interface de traitements Ups Sec. */ TypUpsSecDonnees $MonModule$IntDonUpsSec=NULL; /* Interface de donnees Ups Sec. */ TypUpsNetTraitements $MonModule$IntTrtUpsNet=NULL; /* Interface de traitements Ups Net. */ TypUpsNetDonnees $MonModule$IntDonUpsNet=NULL; /* Interface de donnees Ups Net. */ TypUpsMatTraitements $MonModule$IntTrtUpsMat=NULL; /* Interface de traitements Ups Mat. */ TypUpsMatDonnees $MonModule$IntDonUpsMat=NULL; /* Interface de donnees Ups Mat. */ Typ$MonModule$Traitements $MonModule$IntTrt$MonModule$=NULL; /* Interface de traitements $Mon Module$. */ Typ$MonModule$Donnees $MonModule$IntDon$MonModule$=NULL; /* Interface de donnees $Mon Module$. */ Typ$MonModule$TraitementsD $MonModule$IntTrt$MonModule$D=NULL; /* Interface de traitements $Mon Module$ D. */ Typ$MonModule$Donnees $MonModule$IntDon$MonModule$D=NULL; /* Interface de donnees $Mon Module$ D. */ Typ$MonModule$TraitementsSU $MonModule$IntTrt$MonModule$SU=NULL; /* Interface de traitements $Mon Module$ SU. */ Typ$MonModule$Donnees $MonModule$IntDon$MonModule$SU=NULL; /* Interface de donnees $Mon Module$ SU. */ Typ$MonModule$MachineInterface $MonModule$MachineInterfaceUpsVtm=NULL; /* Interface avec la machine pour Ups Tuyau nomme. */ TypUpsSysMachineInterface $MonModule$MachineInterfaceUpsSys=NULL; /* Interface avec la machine pour Ups System. */ TypUpsSysSystemeDeFichiersInterface $MonModule$SystemeDeFichiersInterfaceUpsSys=NULL; /* Interface avec le systeme de fichiers pour Ups Sys. */ TypUpsMatMachineInterface $MonModule$MachineInterfaceUpsMat=NULL; /* Interface avec la machine pour Ups Mat. */ TypUpsVmShort $MonModule$NumeroModule; /* Numero du module de $Mon Module$. */ TypUpsVmShort $MonModule$NumeroModule$MonModule$D; /* Numero du module de $Mon Module$ D. */ TypUpsVmShort $MonModule$NumeroModule$MonModule$SU; /* Numero du module de $Mon Module$ SU. */ static struct typupsvtmdemarrer Demarrer; /* Interface technique de $Mon Module$. */ static struct typ$monmodule$traitements_1_0_0 IntTrt$MonModule$_1_0_0; /* Interface fonctionnelle de $Mon Module$. */ /*******************************************************************/ TypUpsVmLong UpsVmAPI $MonModule$CalculerIndexAppel(TypUpsVmPointeurDonnees InterfaceAppel, TypUpsVmPointeurDonnees AppelCourant) /* Objet : Calcule l'index de l'appel. */ /*******************************************************************/ { TypUpsVmLong Delta; /* Variable de travail. */ if (!InterfaceAppel) Delta=(TypUpsVmLong)AppelCourant-((TypUpsVmLong)&IntTrt$MonModule$_1_0_0+sizeof(struct typupsvmentetemethodesmodule)); else Delta=(TypUpsVmLong)AppelCourant-(TypUpsVmLong)InterfaceAppel; return(Delta/sizeof(TypUpsVmPointeurTraitements)); } /*******************************************************************/ TypUpsVmVoid UpsVmAPI $MonModule$ChargerDictionnaire(TypUpsVmSession *Session) /* Objet : Charge le dictionnaire. */ /*******************************************************************/ { $MonModule$IntTrtUpsSysD=(Typ$MonModule$DTraitements)(*$MonModule$IntTrtUpsNls->LireInterfaceModule)(_T("$MonModule$"), LI_ChargerDictionnaire,CO_Version,CO_Revision,CO_Correction); if (!$MonModule$IntTrt$MonModule$D) { (*$MonModule$IntTrtUpsKrn->EnvoyerExceptionStandard)(Session, (*$MonModule$IntTrtUpsKrn->UpsException47_get)(Session),_T("$MonModule$D"),_T("$MonModule$"),NULL,NULL,NULL); return; } $MonModule$NumeroModule$MonModule$D=(*$MonModule$IntTrtUpsNls->LireNumeroModule)(_T("$MonModule$"),LI_ChargerDictionnaire); } /*******************************************************************/ TypUpsVmVoid UpsVmAPI $MonModule$ChargerLienUpsNet(TypUpsVmSession *Session) /* Objet : Charge le serveur Ups Net. */ /*******************************************************************/ { $MonModule$IntTrt$MonModule$SU=(Typ$MonModule$SUTraitements)(*$MonModule$IntTrtUpsNls->LireInterfaceModule)(_T("$MonModule$"), LI_ChargerServeurUpsNet,CO_Version,CO_Revision,CO_Correction); if (!$MonModule$IntTrt$MonModule$SU) { (*$MonModule$IntTrtUpsKrn->EnvoyerExceptionStandard)(Session, (*$MonModule$IntTrtUpsKrn->UpsException47_get)(Session),_T("$MonModule$SU"),_T("$MonModule$"),NULL,NULL,NULL); return; } $MonModule$NumeroModule$MonModule$SU=(*$MonModule$IntTrtUpsNls->LireNumeroModule)(_T("$MonModule$"),LI_ChargerServeurUpsNet); } /*******************************************************************/ static TypUpsVmPointeurDonnees UpsVmAPI LireEnteteDonneesModule(TypUpsVmVoid) /* Objet : Lit l'entete de l'interface de donnees du module. */ /*******************************************************************/ { return($MonModule$IntDon$MonModule$); } /****************************************************************/ static TypUpsVmVoid UpsVmAPI ExecuterAppelDistant(TypUpsVmSession *Session, TypUpsNetProtocoleUpsNet *BufferProtocole$MonModule$, TypUpsVmPointeurDonnees Parametres) /* Objet : Partie de l'adapteur serveur des traitements */ /* distribues. */ /****************************************************************/ { Inutile(BufferProtocole$MonModule$); Inutile(Parametres); (*$MonModule$IntTrtUpsKrn->EnvoyerExceptionStandard)(Session, (*$MonModule$IntTrtUpsKrn->UpsException47_get)(Session),_T("$MonModule$SU"),_T("$MonModule$"),NULL,NULL,NULL); } /*******************************************************************/ static TypUpsVmVoid UpsVmAPI EnregistrerPersistance(TypUpsVmVoid) /* Objet : Enregistre la persistance du module. */ /*******************************************************************/ { $MonModule$EnregistrerPersistance1(); } /*******************************************************************/ static TypUpsVmShort UpsVmAPI ChargerPersistance(TypUpsVmVoid) /* Objet : Charge la persistance du module. */ /*******************************************************************/ { if (!(*$MonModule$IntTrtUpsOms->DebuterChargementPersistanceModule)(_T("$MonModule$"))) return(0); if (!$MonModule$ChargerPersistance1()) return(0); (*$MonModule$IntTrtUpsOms->TerminerChargementPersistanceModule)(); return(1); } /*******************************************************************/ static TypUpsVmVoid AffecterAppelImpossibleApiNull(TypUpsVmPointeurTraitements *Adresse) /* Objet : Mise a jour de l'Api indefinie. */ /*******************************************************************/ { if ($MonModule$IntTrtUpsKrn) *Adresse=(TypUpsVmPointeurTraitements)$MonModule$IntTrtUpsKrn->AppelImpossibleApiNull; else *Adresse=(TypUpsVmPointeurTraitements)NULL; } /*******************************************************************/ static TypUpsVmEnteteMethodesModule UpsVmAPI *LireInterfaceModule(TypUpsVmShort Version, TypUpsVmShort Revision, TypUpsVmShort Correction) /* Objet : Lit l'interface des traitements du module et transmet */ /* la au serveur de modules. */ /*******************************************************************/ { if (UpsVmComparerVersionRevision(Version,Revision,Correction,CO_Version,CO_Revision,CO_Correction)<0) return(NULL); if (UpsVmComparerVersionRevision(CO_Version,CO_Revision,CO_Correction,Version,Revision,Correction)>0) return(NULL); if (!$MonModule$IntTrt$MonModule$||!$MonModule$IntTrt$MonModule$->EnteteOption.EnteteMethodesModule.Principal) { /*--------------------------------------------------------------*/ /* Version 1.0.0. */ /*--------------------------------------------------------------*/ IntTrt$MonModule$_1_0_0.EnteteOption.EnteteMethodesModule.Version=CO_Version; IntTrt$MonModule$_1_0_0.EnteteOption.EnteteMethodesModule.Revision=CO_Revision; IntTrt$MonModule$_1_0_0.EnteteOption.EnteteMethodesModule.Correction=CO_Correction; AffecterAppelImpossibleApiNull((TypUpsVmPointeurTraitements *)&(IntTrt$MonModule$_1_0_0.EnteteOption.EnteteMethodesModule.RechercherImplementationInterface)); IntTrt$MonModule$_1_0_0.EnteteOption.EnteteMethodesModule.ExecuterAppelDistant=ExecuterAppelDistant; IntTrt$MonModule$_1_0_0.EnteteOption.EnteteMethodesModule.LireEnteteDonneesModule=LireEnteteDonneesModule; AffecterAppelImpossibleApiNull((TypUpsVmPointeurTraitements *)&(IntTrt$MonModule$_1_0_0.EnteteOption.EnteteMethodesModule.Principal)); IntTrt$MonModule$_1_0_0.EnteteOption.EnteteMethodesModule.EnregistrerPersistance=EnregistrerPersistance; IntTrt$MonModule$_1_0_0.EnteteOption.EnteteMethodesModule.ChargerPersistance=ChargerPersistance; IntTrt$MonModule$_1_0_0.EnteteOption.EnteteMethodesModule.MethodeEnumererEnumeres=$MonModule$MethodeEnumererEnumeres; IntTrt$MonModule$_1_0_0.EnteteOption.EnteteMethodesModule.MethodeEnumererValeursEnumeres=$MonModule$MethodeEnumererValeursEnumeres; IntTrt$MonModule$_1_0_0.EnteteOption.EnteteMethodesModule.MethodeEnumererEntrepots=$MonModule$MethodeEnumererEntrepots; IntTrt$MonModule$_1_0_0.EnteteOption.EnteteMethodesModule.MethodeEnumererTypes=$MonModule$MethodeEnumererTypes; IntTrt$MonModule$_1_0_0.EnteteOption.EnteteMethodesModule.MethodeEnumererVariables=$MonModule$MethodeEnumererVariables; IntTrt$MonModule$_1_0_0.EnteteOption.EnteteMethodesModule.MethodeEnumererExceptions=$MonModule$MethodeEnumererExceptions; IntTrt$MonModule$_1_0_0.EnteteOption.EnteteMethodesModule.MethodeEnumererAppels=$MonModule$MethodeEnumererAppels; IntTrt$MonModule$_1_0_0.EnteteOption.EnteteMethodesModule.MethodeEcrireVariable=$MonModule$MethodeEcrireVariable; IntTrt$MonModule$_1_0_0.EnteteOption.EnteteMethodesModule.MethodeLireVariable=$MonModule$MethodeLireVariable; IntTrt$MonModule$_1_0_0.EnteteOption.EnteteMethodesModule.MethodeIncrementerDecrementerVariable=$MonModule$MethodeIncrementerDecrementerVariable; AffecterAppelImpossibleApiNull((TypUpsVmPointeurTraitements *)&(IntTrt$MonModule$_1_0_0.EnteteOption.EnteteMethodesModule.MethodeChercherTypeClientDCom)); AffecterAppelImpossibleApiNull((TypUpsVmPointeurTraitements *)&(IntTrt$MonModule$_1_0_0.EnteteOption.EnteteMethodesModule.MethodeChercherTypeServeurDCom)); AffecterAppelImpossibleApiNull((TypUpsVmPointeurTraitements *)&(IntTrt$MonModule$_1_0_0.EnteteOption.EnteteMethodesModule.MethodeChercherTypeClientCorba)); AffecterAppelImpossibleApiNull((TypUpsVmPointeurTraitements *)&(IntTrt$MonModule$_1_0_0.EnteteOption.EnteteMethodesModule.MethodeChercherTypeServeurCorba)); AffecterAppelImpossibleApiNull((TypUpsVmPointeurTraitements *)&(IntTrt$MonModule$_1_0_0.EnteteOption.EnteteMethodesModule.MethodeChercherTypeClientJava)); AffecterAppelImpossibleApiNull((TypUpsVmPointeurTraitements *)&(IntTrt$MonModule$_1_0_0.EnteteOption.EnteteMethodesModule.MethodeChercherTypeServeurJava)); /*--------------------------------------------------------------*/ /* Procedures et fonctions. */ /*--------------------------------------------------------------*/ IntTrt$MonModule$_1_0_0.Trt_1_1=UpsTrt$MonModule$_1_1; IntTrt$MonModule$_1_0_0.Trt_2_1=UpsTrt$MonModule$_2_1; IntTrt$MonModule$_1_0_0.CoTrt_1_1=UpsCoTrt$MonModule$_1_1; IntTrt$MonModule$_1_0_0.CoTrt_2_1=UpsCoTrt$MonModule$_2_1; /*--------------------------------------------------------------*/ /* Tables des methodes. */ /*--------------------------------------------------------------*/ AffecterAppelImpossibleApiNull((TypUpsVmPointeurTraitements *)&(IntTrt$MonModule$_1_0_0.UpsTrt1)); AffecterAppelImpossibleApiNull((TypUpsVmPointeurTraitements *)&(IntTrt$MonModule$_1_0_0.UpsTrt2)); /*--------------------------------------------------------------*/ /* Types et interfaces. */ /*--------------------------------------------------------------*/ IntTrt$MonModule$_1_0_0.UpsType1_get=UpsType1_get; IntTrt$MonModule$_1_0_0.UpsIndex1_get=UpsIndex1_1_0_0_get; IntTrt$MonModule$_1_0_0.UpsType2_get=UpsType2_get; IntTrt$MonModule$_1_0_0.UpsIndex2_get=UpsIndex2_1_0_0_get; /*--------------------------------------------------------------*/ /* Variables globales. */ /*--------------------------------------------------------------*/ IntTrt$MonModule$_1_0_0.UpsVar1_get=UpsVar1_get; IntTrt$MonModule$_1_0_0.UpsVar1_set=UpsVar1_set; IntTrt$MonModule$_1_0_0.UpsVar2_get=UpsVar2_get; IntTrt$MonModule$_1_0_0.UpsVar2_set=UpsVar2_set; IntTrt$MonModule$_1_0_0.UpsVar2_inc=UpsVar2_inc; IntTrt$MonModule$_1_0_0.UpsVar3_get=UpsVar3_get; IntTrt$MonModule$_1_0_0.UpsVar3_set=UpsVar3_set; IntTrt$MonModule$_1_0_0.UpsVar3_inc=UpsVar3_inc; IntTrt$MonModule$_1_0_0.UpsVar4_get=UpsVar4_get; IntTrt$MonModule$_1_0_0.UpsVar4_set=UpsVar4_set; IntTrt$MonModule$_1_0_0.UpsVar5_get=UpsVar5_get; IntTrt$MonModule$_1_0_0.UpsVar5_set=UpsVar5_set; /*--------------------------------------------------------------*/ /* Exceptions. */ /*--------------------------------------------------------------*/ IntTrt$MonModule$_1_0_0.UpsException1_get=UpsException1_get; IntTrt$MonModule$_1_0_0.UpsException2_get=UpsException2_get; /*--------------------------------------------------------------*/ /* Files d'attente. */ /*--------------------------------------------------------------*/ IntTrt$MonModule$_1_0_0.UpsFileDAttente1_get=UpsException1_get; IntTrt$MonModule$_1_0_0.UpsFileDAttente2_get=UpsException2_get; /*--------------------------------------------------------------*/ /* Entrepots. */ /*--------------------------------------------------------------*/ IntTrt$MonModule$_1_0_0.UpsEntrepot1_get=UpsEntrepot1_get; IntTrt$MonModule$_1_0_0.UpsNumeroEntrepot1_get=UpsNumeroEntrepot1_get; IntTrt$MonModule$_1_0_0.UpsEntrepot2_get=UpsEntrepot2_get; IntTrt$MonModule$_1_0_0.UpsNumeroEntrepot2_get=UpsNumeroEntrepot2_get; /*--------------------------------------------------------------*/ /* Application Program Interfaces proprietaires. */ /*--------------------------------------------------------------*/ IntTrt$MonModule$_1_0_0.LireMachineInterface=$MonModule$LireMachineInterface; /*--------------------------------------------------------------*/ /* La version courante est la 1.0.0. */ /*--------------------------------------------------------------*/ $MonModule$IntTrt$MonModule$=&IntTrt$MonModule$_1_0_0; if ($MonModule$IntTrtUpsKrn &&!(*$MonModule$IntTrtUpsKrn->VerifierInterfaceTraitements)((TypUpsVmPointeurTraitements *)$MonModule$IntTrt$MonModule$, sizeof(struct typ$monmodule$traitements_1_0_0),_T("$MonModule$"))) return(NULL); } if ((Version==1)&&!Revision&&!Correction) /*--------------------------------------------------------------*/ /* Version 1.0.0 demandee. */ /*--------------------------------------------------------------*/ return(&($MonModule$IntTrt$MonModule$->EnteteOption.EnteteMethodesModule)); return(NULL); } /*******************************************************************/ static TypUpsVmShort UpsVmAPI InitialiserModule(TypUpsVmVoid) /* Objet : Initialise le module $Mon Module$. */ /*******************************************************************/ { if ($MonModule$IntDon$MonModule$->EnteteOption.EnteteDonneesModule.EnteteSegmentDonnees.NbUtilisations==1) { $MonModule$IntTrtUpsVtm=IntTrtUpsVtm; $MonModule$IntDonUpsVtm=IntDonUpsVtm; $MonModule$IntDon$MonModule$->EnteteOption.EnteteDonneesModule.LicenceDefautChargementDynamique=0; $MonModule$IntTrtUpsSys=(TypUpsSysTraitements)(*$MonModule$IntTrtUpsVtm->LireInterfaceModule)("UpsSys", LI_NePasCharger,CO_Version,CO_Revision,CO_Correction); if (!$MonModule$IntTrtUpsSys) return(0); $MonModule$IntTrtUpsNls=(TypUpsNlsTraitements)(*$MonModule$IntTrtUpsVtm->LireInterfaceModule)("UpsNls", LI_NePasCharger,CO_Version,CO_Revision,CO_Correction); if (!$MonModule$IntTrtUpsNls) return(0); $MonModule$IntTrtUpsKrn=(TypUpsKrnTraitements)(*$MonModule$IntTrtUpsVtm->LireInterfaceModule)("UpsKrn", LI_NePasCharger,CO_Version,CO_Revision,CO_Correction); if (!$MonModule$IntTrtUpsKrn) return(0); $MonModule$IntTrtUpsOms=(TypUpsOmsTraitements)(*$MonModule$IntTrtUpsVtm->LireInterfaceModule)("UpsOms", LI_NePasCharger,CO_Version,CO_Revision,CO_Correction); if (!$MonModule$IntTrtUpsOms) return(0); $MonModule$IntTrtUpsSec=(TypUpsSecTraitements)(*$MonModule$IntTrtUpsVtm->LireInterfaceModule)("UpsSec", LI_NePasCharger,CO_Version,CO_Revision,CO_Correction); if (!$MonModule$IntTrtUpsSec) return(0); $MonModule$IntTrtUpsOrb=(TypUpsOrbTraitements)(*$MonModule$IntTrtUpsVtm->LireInterfaceModule)("UpsOrb", LI_NePasCharger,CO_Version,CO_Revision,CO_Correction); if (!$MonModule$IntTrtUpsOrb) return(0); $MonModule$IntTrtUpsNet=(TypUpsNetTraitements)(*$MonModule$IntTrtUpsVtm->LireInterfaceModule)("UpsNet", LI_NePasCharger,CO_Version,CO_Revision,CO_Correction); if (!$MonModule$IntTrtUpsNet) return(0); $MonModule$IntTrtUpsMat=(TypUpsMatTraitements)(*$MonModule$IntTrtUpsVtm->LireInterfaceModule)("UpsMat", LI_NePasCharger,CO_Version,CO_Revision,CO_Correction); if (!$MonModule$IntTrtUpsMat) return(0); if (!(*$MonModule$IntTrtUpsNls->ChargerModule)($MonModule$NumeroModule,NULL)) return(0); LireInterfaceModule(0,0,0); $MonModule$NumeroModule$MonModule$D=0; $MonModule$NumeroModule$MonModule$SU=0; $MonModule$MachineInterfaceUpsSys=(*$MonModule$IntTrtUpsSys->LireMachineInterface)(); if (!$MonModule$MachineInterfaceUpsSys) return(0); $MonModule$SystemeDeFichiersInterfaceUpsSys=(*$MonModule$IntTrtUpsSys->LireSystemeDeFichiersInterface)(); if (!$MonModule$SystemeDeFichiersInterfaceUpsSys) return(0); $MonModule$MachineInterfaceUpsMat=(*$MonModule$IntTrtUpsMat->LireMachineInterface)(); if (!$MonModule$MachineInterfaceUpsMat) return(0); } if (!$MonModule$Initialiser1()) return(0); if (!$MonModule$Initialiser99()) return(0); return(1); } /*******************************************************************/ static TypUpsVmVoid UpsVmAPI TerminerModule(TypUpsVmVoid) /* Objet : Termine le module $Mon Module$. */ /*******************************************************************/ { $MonModule$Terminer99(); $MonModule$Terminer1(); } /*******************************************************************/ static TypUpsVmVoid UpsVmAPI ChangerInstance(TypUpsVmChar *NomModule, TypUpsVmEnteteDonneesModule *Interface) /* Objet : Previent le module d'un changement d'instance. */ /*******************************************************************/ { if (!(*$MonModule$MachineInterfaceUpsVm->StrCmp)(NomModule,"UpsSys")) $MonModule$IntDonUpsSys=(TypUpsSysDonnees)Interface; else if (!(*$MonModule$MachineInterfaceUpsVm->StrCmp)(NomModule,"UpsNls")) $MonModule$IntDonUpsNls=(TypUpsNlsDonnees)Interface; else if (!(*$MonModule$MachineInterfaceUpsVm->StrCmp)(NomModule,"UpsKrn")) $MonModule$IntDonUpsKrn=(TypUpsKrnDonnees)Interface; else if (!(*$MonModule$MachineInterfaceUpsVm->StrCmp)(NomModule,"UpsOrb")) $MonModule$IntDonUpsOrb=(TypUpsOrbDonnees)Interface; else if (!(*$MonModule$MachineInterfaceUpsVm->StrCmp)(NomModule,"UpsOms")) $MonModule$IntDonUpsOms=(TypUpsOmsDonnees)Interface; else if (!(*$MonModule$MachineInterfaceUpsVm->StrCmp)(NomModule,"UpsNet")) $MonModule$IntDonUpsNet=(TypUpsNetDonnees)Interface; else if (!(*$MonModule$MachineInterfaceUpsVm->StrCmp)(NomModule,"UpsMat")) $MonModule$IntDonUpsMat=(TypUpsMatDonnees)Interface; else if (!(*$MonModule$MachineInterfaceUpsVm->StrCmp)(NomModule,"$MonModule$")) $MonModule$IntDon$MonModule$=(Typ$MonModule$Donnees)Interface; } /*******************************************************************/ DllExport TypUpsVtmDemarrer UpsVmAPI $MonModule$DemarrerModule(TypUpsVmShort Numero, TypUpsVtmMachineInterface MachineInterfaceUpsVtm, TypUpsVtmTraitements IntTrtUpsVtm, TypUpsVtmDonnees IntDonUpsVtm) /* Objet : Retourne la description de $Mon Module$. */ /*******************************************************************/ { TypUpsVmShort i; /* Compteur. */ $MonModule$MachineInterfaceUpsVtm=MachineInterfaceUpsVtm; $MonModule$IntTrtUpsVtm=IntTrtUpsVtm; $MonModule$IntDonUpsVtm=IntDonUpsVtm; $MonModule$NumeroModule=Numero; Demarrer.Priorite=100; Demarrer.Version=CO_Version; Demarrer.Revision=CO_Revision; Demarrer.Correction=CO_Correction; Demarrer.TypeModule=LI_Charger; Demarrer.LireInterfaceModule=LireInterfaceModule; Demarrer.InitialiserModule=InitialiserModule; Demarrer.TerminerModule=TerminerModule; Demarrer.ChangerInstance=ChangerInstance; Demarrer.Public.Taille=sizeof(struct typ$monmodule$donnees); Demarrer.Public.TypeMemoire=TM_Protegee; Demarrer.Public.Donnees=(TypUpsVmPointeurDonnees *)&$MonModule$IntDon$MonModule$; Demarrer.Protege.Taille=sizeof(struct typ$monmodule$donneespro); Demarrer.Protege.TypeMemoire=TM_Protegee; Demarrer.Protege.Donnees=(TypUpsVmPointeurDonnees *)&$MonModule$IntDonPro; for (i=0;i