Appelle dynamiquement une fonction dans une DLL.
DllCall ( "dll", "return type", "function" [, type1, param1 [, type n, param n]] )
dll | Le nom du fichier de la DLL � utiliser, par exemple "user32.dll". Le handle obtenu � partir de DllOpen peut �galement �tre utilis� (Voir Remarques). |
return type | Le type de retour de la fonction (Voir ci-dessous). |
function | Le nom, par exemple. "MessageBox" ou la valeur ordinale, par exemple 62, de la fonction � appeler dans la DLL. |
type1 | [optionnel] Le type du param�tre (Voir Remarques). |
param1 | [optionnel] Le param�tre actuel (Voir Remarques). |
type n | [optionnel] Le type du n-i�me param�tre (Voir Remarques). |
param n | [optionnel] Le n-i�me param�tre actuel (Voir Remarques). |
Type | D�tails |
NONE | aucune valeur (valable uniquement pour le type de retour - l'�quivalent de vide en C) |
BYTE | 8 bits entiers non sign� |
BOOLEAN | 8 bits entiers non sign� |
SHORT | 16 bits entiers |
USHORT | 16 bits entiers non sign� |
WORD | 16 bits entiers non sign� |
INT | 32 bits entiers |
LONG | 32 bits entiers |
BOOL | 32 bits entiers |
UINT | 32 bits entiers non sign� |
ULONG | 32 bits entiers non sign� |
DWORD | 32 bits entiers non sign� |
INT64 | 64 bits entiers |
UINT64 | 64 bits entiers non sign� |
PTR | un pointeur g�n�ral (void *) |
HWND | un handle de fen�tre (pointeur) |
HANDLE | un handle (pointeur) |
FLOAT | une simple pr�cision sur la virgule flottante du nombre |
DOUBLE | une double pr�cision sur la virgule flottante du nombre |
INT_PTR, LONG_PTR, LRESULT, LPARAM | un entier assez grand pour contenir un pointeur lors de l'ex�cution sur les 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 sur les versions x86 ou x64 de AutoIt. |
STR | une cha�ne de caract�res ANSI (un minimum de 65536 caract�res est attribu�). |
WSTR | une cha�ne de caract�res Unicode large (un minimum de 65 536 caract�res est attribu�). |
STRUCT | structure cr��e avec DllStructCreate() |
* | Ajouter * � la fin d'un autre type pour le passer par r�f�rence. Par exemple "int*" passe un pointeur en 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: | 1 = impossible d'utiliser le fichier DLL 2 = "type de retour" inconnu 3 = la fonction n'a pas �t� trouv�e dans le fichier DLL 4 = mauvais num�ro de param�tres 5 = mauvais param�tre. |
DllCallbackFree, DllCallbackGetPtr, DllCallbackRegister, DllClose, DllOpen, DllStructCreate, DllStructGetPtr
; Appel direct de l'API MessageBox. DllCall("user32.dll", "int", "MessageBox", _ "hwnd", 0, _ ; Handle de la fen�tre parent "str", "Some text", _ ; Le texte de la zone de message "str", "Some title", _ ; Le titre de la bo�te de message "int", 0) ; Flags pour la bo�te de message.
#include <MsgBoxConstants.au3> ; Appel d'une fonction qui modifie les param�tres Local $iPID = Run("notepad") Local $hWnd = WinWait("[CLASS:Notepad]", "", 2000) If $hWnd = 0 Then ; Timeout s'est produit. Exit MsgBox($MB_SYSTEMMODAL, Default, "Impossible de d�marrer le Bloc-notes!") EndIf Local $aResult = DllCall("user32.dll", "int", "GetWindowText", "hwnd", $hWnd, "str", "", "int", 32768) MsgBox($MB_SYSTEMMODAL, Default, "Nombre de caract�res retourn�s: " & $aResult[0]) MsgBox($MB_SYSTEMMODAL, Default, "Texte (retourn� dans le param�tre 2): '" & $aResult[2] & "'") WinClose($hWnd)
#include <MsgBoxConstants.au3> ; Consulte PickIconDlg Windows. Local $sFileName = @SystemDir & '\shell32.dll' ; Cr�e une structure pour stocker l'index de l'ic�ne Local $tIcon = DllStructCreate("int") Local $tString = DllStructCreate("wchar[260]") Local $iStructsize = DllStructGetSize($tString) / 2 DllStructSetData($tString, 1, $sFileName) ; Ex�cute le PickIconDlg - � 62 � est la valeur ordinale pour cette fonction DllCall("shell32.dll", "none", 62, _ "hwnd", 0, _ "ptr", DllStructGetPtr($tString), _ "int", $iStructsize, _ "ptr", DllStructGetPtr($tIcon)) $sFileName = DllStructGetData($tString, 1) Local $iIconIndex = DllStructGetData($tIcon, 1) ; Consulte le nouveau nom de fichier et l'index de l'ic�ne MsgBox($MB_SYSTEMMODAL, "Info", "Dernier fichier s�lectionn�: " & $sFileName & @CRLF & "Icon-Index: " & $iIconIndex)