###Function###
DllCall
 
###Description###
Appelle dynamiquement une fonction dans une DLL.
 
###Syntax###
DllCall ( "dll", "return type", "function" [, type1, param1 [, type n, param n]] )
 
###Parameters###
@@ParamTable@@
dll
	Le nom du fichier de la DLL  utiliser, par exemple "user32.dll". Un handle obtenus  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 paramtre (voir les remarques).
param1
	[optionnel] Le paramtre actuel (voir les remarques).
type n
	[optionnel] Le type du Nme paramtre (voir les remarques).
param n
	[optionnel] Le Nme paramtre actuel (voir les remarques).
@@End@@
 
<br>Les types valides sont:
 
@@ParamTable@@
<b>Type</b>
	<b>Dtails</b>
none
	aucune valeur (valable uniquement pour le type de retour - l'quivalent de vide dans 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 gnrale (void *)
HWND
	un handle de fentre (pointeur)
HANDLE
	un handle (pointeur)
float
	une simple prcision sur la virgule flottante du nombre
double
	une double prcision sur la virgule flottante du nombre
INT_PTR, LONG_PTR, LRESULT, LPARAM
	un entier assez grand pour contenir un pointeur lors de l'excution 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'excution sur les versions x86 ou x64 de AutoIt.
str
	une chane de caractres ANSI (un minimum de 65536 caractres est attribu).
wstr
	une chane de caractres Unicode large (un minimum de 65 536 caractres est attribu).
*
	Ajouter *  la fin d'un autre type de passer par la rfrence int. Par exemple "int*" passe sur un pointeur de type "int".
@@End@@
 
 
<br>Conversions de types de API Windows pour les types de AutoIt:
 
@@ParamTable@@
<b>Type de l'API Windows</b>
	<b>AutoIt Type</b>
LPCSTR/LPSTR
	str
LPCWSTR/LPWSTR
	wstr
LPVOID
	ptr
LP<i>xyz</i>
	<i>xyz</i>*
HINSTANCE
	handle
HRESULT
	long
LONGLONG/LARGE_INTEGER
	INT64
ULONGLONG/ULARGE_INTEGER
	UINT64
SIZE_T
	ULONG_PTR
@@End@@
 
Pour utiliser les structures imbriques  l'intrieur d'une structure, vous devez redfinir la structure imbrique. Par exemple, une structure contenant une structure  deux points ("long;long") seraient dclars comme longue;longue;longue;longue". Les deux premires valeurs de long correspondent  la structure premier point et la seconde valeur corresponde  la structure du second point.
 
For more Windows API types see <a href="http://msdn.microsoft.com/en-us/library/aa383751.aspx">MSDN</a>.
 
###ReturnValue###
Succs:	@ error = 0.
chec:	dfinit @error
@error:	1 une incapacit  utiliser le fichier DLL,
	2 "type de retour" inconnu,
	3 la fonction n'a pas t trouve dans le fichier DLL,
	4 mauvais numro de paramtres.
@@End@@
Voir les remarques.
 
 
###Remarks###
Si un fichier dll est donn, alors la DLL est automatiquement charg et ensuite ferm  la fin de l'appel. Si vous voulez contrler manuellement le chargement et le dchargement de la DLL, alors vous devriez utiliser DllOpen et DllClose et l'utilisation du handle au lieu d'un nom de fichier dans cette fonction.
 
Par dfaut, AutoIt utilise la mthode "stdcall". Pour utiliser la mthode "cdecl", placez":cdecl" aprs le type de retour.
DllCall ("SQLite.dll", "int:cdecl", "sqlite3_open", "str", $sDatabase_Filename ", long*", 0).
 
Par dfaut, AutoIt essaie d'utiliser la version ANSI d'un nom de fonction, c'est  dire que par exemple MessageBoxA est tent quand MessageBox est donn comme nom de fonction. Pour appeler la version unicode, utilisez MessageBoxW.
 
Si l'appel de fonction choue, alors @error est mis  1. Sinon, un tableau est retourn qui contient la valeur de retour de fonction et une copie de tous les paramtres (y compris les paramtres que la fonction peut avoir modifi lors du passage par rfrence).
$return[0] = valeur de retour de la fonction
$return[1] = paramtre 1
$return[2] = paramtre 2
...
$return[n] = Nme paramtre
 
 
 
 
###Related###
DllCallbackFree, DllCallbackGetPtr, DllCallbackRegister, DllOpen, DllClose, DllStructCreate, DllStructGetPtr
 
 
###Example###
@@IncludeExample@@