Attention: Cette fonction est exp�rimentale. Elle peut ne pas fonctionner, contenir des bugs, ou peut �tre modifi�e ou enlev�e sans pr�avis.
NE PAS SIGNALER LES BUGS OU DES PROPOSITIONS DE MODIFICATION POUR CETTE FONCTION.

Functions > ObjCOM >


ObjCreateInterface

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]] )

Param�tres

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.

Valeur de retour

Succ�s: Retourne un objet.
�chec: D�finit @error <> 0.

Remarques

ObjCreateInterface() cr�e des objets avec des m�thodes qui sont �num�r�es dans la cha�ne description de l'interface.
Pour les objets COM (bas�s IUnknown) les trois premi�res m�thodes sont toujours QueryInterface, AddRef and Release. Ne les sp�cifiez pas dans les cha�nes de description.

Les m�thodes �num�r�es dans la cha�ne de description doivent �tre dans l'orde de la v-table de l'interface. Si vous fournissez une description invalide ou une description incorrecte, AutoIt peut devenir instable ou se bloquer.

Format de la cha�ne de description:
$sTagInterface = "MethodName1 RetType(ParamType1;ParamType2;...); MethodName2 RetType(..."

Par d�faut, AutoIt utilise la convention d'appel 'stdcall' pour COM. Pour utiliser 'cdecl' placez ':cdecl' apr�s le type de retour.

Les Types Valides sont:
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".

Consultez Obj/COM Reference pour plus d'informations sur Objects.

En relation

ObjCreate

Exemple

#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