Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
VFP COM Design Problem
Message
De
11/04/2007 14:06:51
Alexandre Palma
Harms Software, Inc.
Alverca, Portugal
 
Information générale
Forum:
Visual FoxPro
Catégorie:
COM/DCOM et OLE Automation
Divers
Thread ID:
01214563
Message ID:
01214571
Vues:
12
Kevin REmove the OLEPUBLIC keyword from your DEFINE CLASS stament for the class you don't want to be instantiated from the outside world, only classes mark as OLEPUBLIC are allowed to be created by an outside application.

>I have PRG-based classlib that will be compiled into a DLL. There are classes in
>the DLL that I only want instantiated through methods in the main class.
>
>The problem is how to prevent a class from being instantiaed from outside the
>main class.
>
>One solution that I came up with is this:
>
>
>
>** Main Class
>PROCEDURE GetChildClass() AS Object
>
>  LOCAL oRetVal AS Object
>
>  PUBLIC gb_AllowChildClass && This must exist in the child class Init
>
>  oRetVal = This.GetChildClass()
>
>ENDPROC
>
>
>And in the Child class's Init:
>
>PROCEDURE Init()
>
>  LOCAL bRetVal AS Boolean
>  bRetVal = .T.
>
>  IF TYPE("AllowChildClass") = "U"
>    bRetVal = .F.
>  ENDIF
>
>  RETURN bRetVal
>
>ENDPROC
>
>
>Since the whole thing is in a DLL, it's in its own session, so there should
>be no issue with using a public variable.
>
>Still, I don't really feel good about it.
>
>Anyone have a better way?
Alexandre Palma
Senior Application Architect
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform