Appel dynamique d'une fonction � une adresse m�moire sp�cifique.
DllCallAddress ( "return type", address [, type1, param1 [, type n, param n]] )
return type | Le type de retour de la fonction. |
address | L'adresse de la fonction. Si cette valeur n'est pas valide votre script bloquera! |
type1 | [optional] Le type du param�tre (Voir Remarques). |
param1 | [optional] Ce param�tre (Voir Remarques). |
type n | [optional] Le type du n-i�me param�tre (Voir Remarques). |
param n | [optional] Le n-i�me param�tre (Voir Remarques). |
Type | D�tails |
NONE | aucune valeur (valide seulement pour le type de retour - �quivalent � void en C) |
BYTE | un entier 8 bits non sign� |
BOOLEAN | un entier 8 bits non sign� |
SHORT | un entier 16 bits |
USHORT | un entier 16 bits non sign� |
WORD | un entier 16 bits non sign� |
INT | un entier 32 bits |
LONG | un entier 32 bits |
BOOL | un entier 32 bits |
UINT | un entier 32 bits non sign� |
ULONG | un entier 32 bits non sign� |
DWORD | un entier 32 bits non sign� |
INT64 | un entier 64 bits |
UINT64 | un entier 64 bits non sign� |
PTR | un pointeur g�n�ral (void *) |
HWND | un handle de fen�tre (pointeur) |
HANDLE | un handle (pointeur) |
FLOAT | un nombre simple pr�cision en virgule flottante |
DOUBLE | un nombre double pr�cision en virgule flottante |
INT_PTR, LONG_PTR, LRESULT, LPARAM | un entier assez grand pour contenir un pointeur lors de l'ex�cution des versions x86 ou x64 de AutoIt. |
UINT_PTR, ULONG_PTR, DWORD_PTR, WPARAM | un entier non sign� assez grand pour contenir un pointeur lors de l'ex�cution des versions x86 ou x64 de AutoIt. |
STR | une cha�ne ANSI (un minimum de 65536 caract�res sont allou�s). |
WSTR | une cha�ne de caract�res larges UNICODE (un minimum of 65536 caract�res sont allou�s). |
STRUCT | structure cr��e avec DllStructCreate() |
* | Ajouter * � la fin d'un autre type pour le passer en r�f�rence. Par exemple "int*" passe un pointeur dans un type "int". |
WINDOWS API Type | Type AutoIt |
LPCSTR/LPSTR | STR |
LPCWSTR/LPWSTR | WSTR |
LPVOID | PTR |
LPxyz | xyz* |
HINSTANCE | HANDLE |
HRESULT | LONG |
LONGLONG/LARGE_INTEGER | INT64 |
ULONGLONG/ULARGE_INTEGER | UINT64 |
SIZE_T | ULONG_PTR |
Succ�s: | Retourne un tableau. Voir Remarques. |
�chec: | D�finit @error <> 0. |
@error: | 2 = type de retour inconnu, 4 = erreur sur le nombre de param�tres, 5 = erreur sur un param�tre |
DllCall, DllCallbackFree, DllCallbackGetPtr, DllCallbackRegister, DllClose, DllOpen, DllStructCreate, DllStructGetPtr
#include <GUIConstantsEx.au3> #include <MsgBoxConstants.au3> #include <WinAPISysWin.au3> #include <WindowsConstants.au3> Example() Func Example() ; Active le mode �v�nement GUI. Opt("GUIOnEventMode", 1) ; Cr�e une simple GUI. Local $hWnd = GUICreate("Exemple DllCallAddress") ; Cr�e le gestionnaire de l'�v�nement close. GUISetOnEvent($GUI_EVENT_CLOSE, "OnClose") ; Affiche la GUI. GUISetState(@SW_SHOWNORMAL, $hWnd) ; Obtient un pointeur sur la fen�tre de WindowsProc(). Local $pWndProc = _WinAPI_GetWindowLong($hWnd, $GWL_WNDPROC) ; Indique � l'utilisateur ce qui va se passer. MsgBox($MB_SYSTEMMODAL, "DllCallAddress Example Msg", "Lorsque vous cliquerez sur OK la fen�tre de test se fermera.") ; Explicitement g�n�re un �v�nement WM_CLOSE et le passe directement � WindowProc(). ; Cela ne devrait jamais �tre fait dans une application r�elle (utilisez _SendMessage() � la place), ; mais cela montre comment utiliser la fonction. DllCallAddress("LRESULT", $pWndProc, "HWND", $hWnd, "UINT", $WM_CLOSE, "WPARAM", 0, "LPARAM", 0) EndFunc ;==>Example Func OnClose() GUIDelete(@GUI_WinHandle) MsgBox($MB_SYSTEMMODAL, "DllCallAddress Example Msg", "Ev�nement Close re�u, la fen�tre de test devrait maintenant se fermer.") EndFunc ;==>OnClose