Les mémos

Fermer Tables

Fermer Requêtes

Fermer Formulaires

Fermer Etats

Fermer Modules

Fermer Base

Fermer Automation

Fermer Administration

Fermer Registre

Fermer String

Fermer Email CDO

Fermer Outlook

Fermer Net

Fermer Dates - Heures

Fermer Fichiers

Fermer Références

Fermer Vrac

Je débute...

Fermer La normalisation

Fermer VBA

Attention
Aucun support
par émail !

Utilisez le forum pour les questions/réponses concernant MsAccess et les codes que vous trouverez sur ce site.
Visites

   visiteurs

   visiteurs en ligne

Vrac - AdressOf pour A97

AdressOf retrourne le pointeur d'une variable

 

Apparue avec Access 2000, il faut utiliser la fonction ci-dessous en cas d'utilisation de Access 97

 

'//-------------------------
'// AdrOF [ pour ACC97 - utilise vba332.dll ]
'//-------------------------
   Private Declare Function GetCurrentVbaProject Lib "vba332.dll" _
      Alias "EbGetExecutingProj" (hProject As Long) As Long
   Private Declare Function GetFuncID Lib "vba332.dll" _
      Alias "TipGetFunctionId" _
      (ByVal hProject As Long, ByVal strFunctionName As String, _
       ByRef strFunctionId As String) As Long
   Private Declare Function GetAddr Lib "vba332.dll" _
      Alias "TipGetLpfnOfFunctionId" _
      (ByVal hProject As Long, ByVal strFunctionId As String, _
       ByRef lpfn As Long) As Long


Private Function AddrOf(strFuncName As String) As Long
''-------------------------------------------------------------------------­-----------
''
'' Function AddrOf
''
'' Parameters: strFuncName : String with the Name of Function
''
'' Description: Returns a function pointer of a VBA private function given its name. This function
'' gives similar functionality to VBA as VB5 has with the AddressOf param type.
''
'' NOTE: This function only seems to work if the proc you are trying to get a pointer
'' to is in the current project. This makes sense, since we are using a function
'' named EbGetExecutingProj.
''
''-------------------------------------------------------------------------­-------------
   Dim hProject As Long
   Dim lngResult As Long
   Dim strID As String
   Dim lpfn As Long
   Dim strFuncNameUnicode As String


   Const NO_ERROR = 0


   ' The function name must be in Unicode, so convert it.
   strFuncNameUnicode = StrConv(strFuncName, vbUnicode)


   ' Get the current VBA project
   ' The results of GetCurrentVBAProject seemed inconsistent, in our tests,
   ' so now we just check the project handle when the function returns.
   Call GetCurrentVbaProject(hProject)


   ' Make sure we got a project handle... we always should, but you never know!
   If hProject <> 0 Then
      ' Get the VBA function ID (whatever that is!)
      lngResult = GetFuncID(hProject, strFuncNameUnicode, strID)


      ' We have to check this because we GPF if we try to get a function pointer
      ' of a non-existent function.
      If lngResult = NO_ERROR Then
         ' Get the function pointer.
         lngResult = GetAddr(hProject, strID, lpfn)


         If lngResult = NO_ERROR Then
            AddrOf = lpfn
         End If
      End If
   End If
End Function

 


Date de création : 20/07/2006 : 13:12
Dernière modification : 20/07/2006 : 13:12
Catégorie : Vrac
Page lue 4548 fois


Imprimer l'article Imprimer l'article

Recherche



Lettre d'information
Pour avoir des nouvelles de ce site, inscrivez-vous à notre Newsletter.
Captcha
Recopier le code :
Au sujet de l'auteur
L'auteur qui fréquente (fréquentait) le forum microsoft.public.fr.access a eu le plaisir d'être nommé MVP Office-Access de janvier 2003 à décembre 2011.

Qui sont les MVP ?

Divers ;-)
Nous contacter

Haut