Crée une référence à un objet à partir du pointeur de classe ou d'objet, de l'identifiant d'interface et d'une chaîne de description.
ObjCreateInterface ( "CLSID" , "IID" [, "interface_description",[flag = True]] )
CLSID | Identifiant de la classe ou du pointeur sur l'objet. Si CLSID est un identifiant de classe il peut être ProgID ou la chaîne représentant CLSID. |
IID | Chaîne représentant l'identifiant de l'interface. |
interface_description | [optionnel] Chaîne décrivant la v-table de l'objet. Utiliser le mot-clé Default pour accéder à IDispatch pour les interfaces duales. |
flag | [optionnel] La valeur par défaut est True, ce qui signifie que l'interface de l'objet hérite de IUnknown. |
Succès: | Retourne un objet. |
Échec: | Définit @error <> 0. |
Type | Détails |
none | aucune valeur (valide seulement pour le type de retour - équivalent à void en C) |
byte, boolean | un entier 8 bits non signé |
short | un entier 16 bits |
word, ushort | un entier 16 bits non signé |
int, long, bool | un entier 32 bits |
dword, ulong, uint | un entier 32 bits non signé |
hresult | un entier 32 bits |
int64 | un entier 64 bits |
uint64 | un entier 64 bits non signé |
ptr | un pointer en 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). |
bstr | un type de données composées constitué d'une longueur, d'une chaîne de données et d'un caractère de terminaison |
variant | une union étiqueté qui peut être utilisée pour représenter n'importe quel autre type de données |
idispatch, object | un type de données composées qui représente un objet avec l'interface IDispatch |
clsid | un entier 128 bits dans le format d'une chaîne GUID |
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". |
#include <MsgBoxConstants.au3> Example() Func Example() ; Déclare CLSID, IID et descrit l'interface pour ITaskbarList. ; Il n'est pas nécessaire de décrire les membres de IUnknown. Local Const $sCLSID_TaskbarList = "{56FDF344-FD6D-11D0-958A-006097C9A090}" Local Const $sIID_ITaskbarList = "{56FDF342-FD6D-11D0-958A-006097C9A090}" Local Const $sTagITaskbarList = "HrInit hresult(); AddTab hresult(hwnd); DeleteTab hresult(hwnd); ActivateTab hresult(hwnd); SetActiveAlt hresult(hwnd);" ; Création de l'objet. Local $oTaskbarList = ObjCreateInterface($sCLSID_TaskbarList, $sIID_ITaskbarList, $sTagITaskbarList) ; Initialise l'objet iTaskbarList. $oTaskbarList.HrInit() ; Exécute le Bloc-notes. Run("notepad.exe") ; Attend que la fenêtre du Bloc-notes apparaisse et obtient son handle. Local $hNotepad = WinWait("[CLASS:Notepad]") ; Indique à l'utilisateur ce qu'il faut regarder. MsgBox($MB_SYSTEMMODAL, "", "Regardez dans la barre des tâches et vous devriez voir une entrée pour le Bloc-notes." & @CRLF & @CRLF & "Appuyez sur OK pour continuer.") ; Supprime le Bloc-notes de la barre des tâches. $oTaskbarList.DeleteTab($hNotepad) ; Invite l'utilisateur à regarder de nouveau la barre des tâches. MsgBox($MB_SYSTEMMODAL, "", "Regardez dans la barre des tâches. Il ne devrait plus y avoir d'entrée pour le Bloc-notes, mais le Bloc-notes est toujours en cours d'exécution." & @CRLF & @CRLF & "Appuyez sur OK pour continuee.") ; Ferme le Bloc-notes. WinClose($hNotepad) EndFunc ;==>Example