Erreur de variable

Signaler
Messages postés
7
Date d'inscription
lundi 17 novembre 2008
Statut
Membre
Dernière intervention
2 décembre 2008
-
Messages postés
7
Date d'inscription
lundi 17 novembre 2008
Statut
Membre
Dernière intervention
2 décembre 2008
-
Salut :)

Voila j'ai utilise ce code (http://www.vbfrance.com/codes/APPEL-DYNAMIQUE-APIS-NO-DECLARATION_36919.aspx) dans de mes prog.
Le prob, c'est que j'appelle CallFuncPtr() depuis une autre fonction, et ça pose un petit problème de variable.
Enfin un problème lorsque je l'utilise pour createprocess.

1 module standard pour CallFuncPtr()
1 second module standard pour le reste de mon code :

Public Type STARTUPINFO

    cb As Long

    lpReserved As Long

    lpDesktop As Long

    lpTitle As Long

    dwX As Long

    dwY As Long

    dwXSize As Long

    dwYSize As Long

    dwXCountChars As Long

    dwYCountChars As Long

    dwFillAttribute As Long

    dwFlags As Long

    wShowWindow As Integer

    cbReserved2 As Integer

    lpReserved2 As Long

    hStdInput As Long

    hStdOutput As Long

    hStdError As Long

End Type


Public Type PROCESS_INFORMATION

    hProcess As Long

    hThread As Long

    dwProcessID As Long

    dwThreadID As Long

End Type


Puis dans ma fonction, avec comme variable de déclaré :
Dim Si      As STARTUPINFO
Dim Pi      As PROCESS_INFORMATION
Dim retour   As Long
Dim z   As Long

Si.cb = Len(Si)
z = GetProcAddress(LoadLibrary("shell32"), "CreateProcessA")
retour  = CallFuncPtr(z, sHost, vbNullString, 0, 0, False, CREATE_SUSPENDED, 0, 0, Si, Pi)


Mais lors de la compilation j'ai l'erreur :
Compile error:

Only user-defined types defined in public object modules can be coerced to or from a variant or passes to late-bound functions
Sur les variable Si et Pi

Si quelqu'un a une idée?

Merci d'avance

2 réponses

Messages postés
1263
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
24 juillet 2013
6
Mets les 2 variables Si et Pi Public juste après le dernier End Type

La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain
Messages postés
7
Date d'inscription
lundi 17 novembre 2008
Statut
Membre
Dernière intervention
2 décembre 2008

Ca change rien :/
Toujours l'erreur :
Compile error:
Only user-defined types defined in public object modules can be coerced to or from a variant or passes to late-bound functions

Lorsque je compile