AutoIt et les Extensions COM

Introduction rapide

Qu'est-ce que COM ?

COM signifie "Component Object Model". C'est la m�thode Microsoft pour connecter des logiciels en utilisant une interface commune. Ces interfaces sont d�finies dans un Objet COM.

Avant COM, vous deviez conna�tre l'impl�mentation exacte d'un programme avant de pouvoir vous 'interfacer' avec. En utilisant COM, vous pouvez maintenant "parler" � ses Objets d�finis. Les seules choses que vous devez conna�tre sont les noms des Objets qui sont utilis�s et leurs 'propri�t�s' et 'm�thodes'.

Que sont les propri�t�s et les m�thodes des objets?

Voici les deux caract�ristiques de base d'un Objet. Vous pouvez voir une 'propri�t�' comme le stockage de donn�es d'un Objet et une 'm�thode' comme un appel de fonction interne pour faire quelque chose avec les donn�es.

Est-ce que j'ai besoin de COM dans mon script AutoIt ?

Cela d�pend. AutoIt a beaucoup de fonctions incorpor�es et une �norme biblioth�que d'UDF. Vous pouvez faire la plupart de votre programmation avec ces fonctions. Cependant si vous avez besoin d'un 'interfa�age' sp�cial avec d'autres applications, l'utilisation de COM pourrait vous soulager de quelques lignes de code. Les Scripteurs doivent �tre conscients que l'existence d'Objets COM d�pend LOURDEMENT du syst�me d'exploitation ET des logiciels install�s. Les exemples suivant ont tous �t� �valu�s sous une version 'standard' de Windows XP professionnel avec Microsoft Office 2000.

Un exemple d'utilisation de COM dans AutoIt

Supposons que vous vouliez r�duire toutes les fen�tres ouvertes. Vous pourriez faire ceci, en utilisant les fonctions classiques d'AutoIt telles que WinList et WinSetState. Cependant, deux lignes de Code-COM peuvent vous donner le m�me r�sultat :

$oShell = ObjCreate("shell.application")
$oShell.MinimizeAll

Note: Cet exemple n'est plus la fa�on la plus courte de r�duire toutes les fen�tres apr�s l'introduction de la fonction WinMinimizeAll() dans AutoIt.


Sur la premi�re ligne nous cr�ons un nouvel objet appel� "shell.application". C'est un objet interne de Windows, d�fini dans shell32.dll. Le pointeur de ce nouvel objet est assign� � la variable $oShell qui devient une variable d'Objet.

Sur la deuxi�me ligne, nous appliquons une M�thode appel�e "MinimizeAll" de l'objet oShell, qui r�duira toutes les fen�tres.

Tous les types de Fen�tres ont une quantit� importante d'Objets internes � buts divers. Des applications comme Excel ou Word ont aussi leur propre jeu d'Objets.

Cependant, il est parfois difficile d'obtenir une liste de tous les Objets existants d�finis sur votre syst�me ainsi que leurs propri�t�s et m�thodes correspondantes. La recherche sur Microsoft.com ou Google.com pourrait vous donner quelques indices de l'Objet 'X' que vous voulez utilisez.

Par exemple, vous pouvez trouver des informations sur l'objet "shell.application" � :
http://msdn.microsoft.com/en-us/library/bb774094.aspx


Pour jeter un coup d'œil sur tous les objets install�s sur votre syst�me, le "OLE/COM Object Viewer" est un outil tr�s utile. Cet outil, sera expliqu� dans une autre section ci-dessous.

Regardons un autre exemple. Pour obtenir le code source HTML d'une certaine page Web, vous pourriez utiliser la fonction interne InetGet() et sauver le r�sultat dans un fichier pour le r�cup�rer ult�rieurement avec FileRead (). Les lignes de code suivante, font la m�me chose en COM :

$oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
$oHTTP.Open("GET", "http://www.AutoItScript.com")
$oHTTP.Send()
$HTMLSource = $oHTTP.Responsetext

La variable (cha�ne) $HTMLSource contient maintenant le code HTML complet de la page d'accueil AutoItScript.com (C'est-�-dire le CADRE HTML sup�rieur).

(Les informations sur l'objet "winhttp.winhttprequest" peuvent �tre trouv�es �:
http://msdn.microsoft.com/en-us/library/aa384106.aspx )


Gardez � l'esprit : L'existence d'Objet d�pend du syst�me d'exploitation de l'ordinateur et des programmes install�s. Par exemple, l'objet winhttp.winhttprequest.5.1 existe seulement sur les ordinateurs qui ont au moins la version 5 d'Internet Explorer install�e. Lorsque vous partagez des scripts qui utilisent des objets COM, soyez s�r que les objets sont disponibles sur tous les ordinateurs.

Les variables Objet ont un comportement l�g�rement diff�rent des autres types de variables AutoIt. Un Objet n'est pas r�ellement une valeur, mais un 'pointeur' sur quelque chose d'ext�rieur au script. Donc vous ne pouvez pas ex�cuter d'op�ration arithm�tique, ni de comparaison sur des variables Objet. Lorsque vous assignez une valeur diff�rente � une variable Objet, le 'pointeur' sera automatiquement lib�r�. Vous pouvez, par exemple, forcer l'effacement d'un Objet en lui assignant n'importe quel nombre ou valeur de texte.

$oHTTP = ObjCreate("winhttp.winhttprequest.5.1") ; Objet cr��
$oHTTP = 0 ; Objet supprim�

Vous n'avez pas besoin de supprimer des Objets lorsque vous avez fini. Si un script se termine, AutoIt essaye de lib�rer toutes les r�f�rences actives aux Objets qui avaient �t� cr��es dans le script. C'est la m�me chose qui arrive lorsque vous avez d�fini une variable locale Objet � l'int�rieur d'une fonction et que celle-ci prend fin avec un retour au code.


Automatisation avec COM

Une application tr�s populaire de COM est d'automatiser des programmes au lieu d'utiliser les fonctions habituelles de AutoIt comme Send() ou WinActivate(), vous pouvez vous servir des Objets qui sont d�finis � l'int�rieur du programme.

Voici un exemple qui 'automatise' Microsoft Excel:

$oExcel = ObjCreate("Excel.Application") ; Cr�e un objet Excel
$oExcel.Visible = 1 ; Laisse Excel s'afficher lui-m�me
$oExcel.WorkBooks.Add ; Ajoute une nouvelle feuille de calcul
$oExcel.ActiveWorkBook.ActiveSheet.Cells(1, 1).Value = "Text" ; Remplit une cellule
Sleep(4000) ; Affiche le r�sultat pendant 4 secondes
$oExcel.ActiveWorkBook.Saved = 1 ; Simule une sauvegarde du classeur
$oExcel.Quit ; Quitte Excel

La complexit� de contr�ler d'autres programmes d�pend de ceux-ci, et non du script AutoIt. Si quelque chose ne fonctionne pas correctement, vous devez consulter la documentation de l'application et non l'aide de AutoIt.


Instructions Sp�ciales

Dans AutoIt, deux instructions sp�ciales sont d�sign�es pour l'utilisation de COM:

WITH/ENDWITH et la boucle FOR/IN/NEXT.

WITH..ENDWITH

L'instruction WITH/ENDWITH n'ajoute aucune fonctionnalit�, mais elle permet de rendre votre script plus lisible. Si on reprend l'exemple pr�c�dent avec Excel, voici comment il peut �tre �crit :

$oExcel = ObjCreate("Excel.Application") ; Cr�e une fen�tre Excel Object

With $oExcel
    .Visible = 1 ; Laisse Excel s'afficher lui-m�me
    .WorkBooks.Add ; Ajoute une nouvelle feuille de calcul
    .ActiveWorkBook.ActiveSheet.Cells(1, 1).Value = "Text" ; Fill a cell
    Sleep(4000) ; Affiche le r�sultat pendant 4 secondes
    .ActiveWorkBook.Saved = 1 ; Simule une sauvegarde du classeur Excel
    .Quit ; Quitte Excel
EndWith

Cet exemple ne vous �conomise pas beaucoup de texte, mais lorsque votre objet utilise de longues lignes de propri�t�s/m�thodes, vous pouvez le raccourcir tr�s fortement en utilisant l'instruction WITH.

FOR..IN

La boucle FOR...IN est requis lors de l'utilisation des Collections. Une collection est un type sp�cial d'objet, qui existe en dehors des multiples sous-objets. Vous pourriez les voir comme des Tableaux (En r�alit�, l'instruction FOR.. IN fonctionne aussi sur des variables de type array).

La boucle FOR..IN avec un tableau

Voici un exemple d'une boucle FOR..IN. Cet exemple utilise un tableau normal sous AutoIt, il n'a donc aucun rapport avec COM. Il vous montre simplement le principe :

Local $sString = "" ; A string for displaying purposes

Local $aArray[4]
$aArray[0] = "A" ; Nous remplissons un tableau
$aArray[1] = 0 ; avec plusieurs
$aArray[2] = 1.3434 ; diff�rentes
$aArray[3] = "Example Text" ; valeurs pour exemple.

For $iElement In $aArray ; Ici il d�marre...
    $sString = $sString & $iElement & @CRLF
Next

; Affiche les r�sultats
MsgBox(0, "Exemple For..In avec un tableau", "R�sultats: " & @CRLF & $sString)

Boucle FOR..IN avec un Objet

Dans la plupart des cas vous ne pourrez pas utiliser les m�thodes 'normales' d'objet pour r�cup�rer les �l�ments d'une collection. Dans les termes d'utilisation de COM il est dit que vous devez les '�num�rer'. C'est ici que la boucle FOR..IN intervient.

L'exemple Excel ci-dessous fait une boucle sur les cellules A1:O16 de la feuille active. Si une des cellules a une valeur inf�rieure � 5, le code remplace la valeur par 0 (z�ro) :

$oExcel = ObjCreate("Excel.Application") ; Cr�e un objet Excel

$oExcel.Visible = 1 ; Laisse Excel s'afficher mui-m�me
$oExcel.WorkBooks.Add ; Ajoute une feuille de calcul

Local $aArray[16][16] ; Ces lignes
For $i = 0 To 15 ; sont juste
    For $j = 0 To 15 ; un exemple pour
        $aArray[$i][$j] = $i ; cr�er quelques
    Next ; contenus de cellules.
Next

$oExcel.activesheet.range("A1:O16").value = $aArray ; Remplit des cellules avec des nombres

Sleep(2000) ; Attendre un peu avant de continuer

For $iCell In $oExcel.ActiveSheet.Range("A1:O16")
    If $iCell.Value < 5 Then
        $iCell.Value = 0
    EndIf
Next

$oExcel.ActiveWorkBook.Saved = 1 ; Simule une sauvegarde du classeur Excel
Sleep(2000) ; Attendre un peu avant de fermer
$oExcel.Quit ; Quit Excel


Utilisation Avanc�e de COM

Les caract�ristiques suivantes d'AutoItCOM exigent une connaissance approfondie des �v�nements COM et du traitement des erreurs COM.

Si vous �tes n�ophyte dans la programmation COM, lisez d'abord une bonne documentation sur COM.


La Bible de COM est le livre appel� "Inside OLE 2" par Kraig Brockschmidt (Microsoft Press).


Vous pouvez aussi trouver quelques ressources COM sur Internet (Non li� � AutoIt) :

http://msdn.microsoft.com/en-us/library/ms694363.aspx (introduction)

http://www.garybeene.com/vb/tut-obj.htm (about Objects in Visual Basic)

http://java.sun.com/docs/books/tutorial/java/concepts/ (Using objects in Java)

http://msdn.microsoft.com/archive/en-us/dnarguion/html/drgui082399.asp (Object Events in C++)

http://www.garybeene.com/vb/tut-err.htm (Error handling in Visual Basic)

Ev�nements COM

L'automatisation COM normale utilise principalement la communication � sens unique. Vous 'demandez' � l'Objet n'importe quelles propri�t�s ou r�sultat de M�thode. Toutefois un Objet COM peut aussi 'r�pondre' � votre script lorsqu'il convient.

Cela est tr�s pratique dans des cas o� vous devez attendre qu'une action COM arrive.

Au lieu d'�crire une sorte de boucle, demandant � l'Objet si quelque chose d'int�ressant est arriv�, vous pouvez laisser l'Objet lui-m�me, appeler une fonction sp�cifique dans votre script. En attendant vous pouvez faire d'autres choses dans votre script (presque) simultan�ment.


Pas tous les Objets supportent les �v�nements. Vous devez lire la documentation de l'objet soigneusement pour savoir s'il supporte les �v�nements ou non.

Si c'est bon, la deuxi�me chose � conna�tre est le type d'�v�nements qu'il supporte. AutoItCOM peut seulement recevoir des �v�nements de type 'op�ration'.

Finalement vous devez conna�tre les noms des �v�nements que l'Objet peut produire, y compris leurs arguments (s'il y en a).


Ce n'est que lorsque vous avez toutes ces informations, que vous pouvez commencer � construire un script AutoIt utilisant des �v�nements COM.

Vous trouverez ci-dessous un petit bout de script qui montre comment recevoir des �v�nements d'Internet Explorer :

$oIE = ObjCreate("InternetExplorer.Application.1") ; Cr�e un Objet Internet Explorer

$EventObject = ObjEvent($oIE, "IEEvent_", "DWebBrowserEvents") ; D�marre la r�ception des �v�nements.

$oIE.url = "http://www.autoitscript.com" ; Charge une page Web d'exemple
; Dor�navant, l'Objet $oIE produit des �v�nements pendant le chargement de la page Web.
; Ils sont trait�s dans les fonctions d'�v�nement ci-dessous.

; Ici vous pouvez laisser le script attendre jusqu'� ce que l'utilisateur veuille terminer.
...(votre code ici)...

$EventObject.stop ; Dit � IE que nous ne d�sirons plus recevoir des �v�nements
$EventObject = 0 ; D�truit l'Objet Event
$oIE.quit ; Quitte IE
$oIE = 0 ; D�charge IE de la m�moire (pas r�ellement n�cessaire)
Exit ; Fin du script principal


; Fonctions d�clench�es par quelques �v�nements d'Internet Explorer.
;
; Pour la liste compl�te des fonctions Event de IE, voir la documentation MSDN de WebBrowser �:
; http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.aspx

Func IEEvent_StatusTextChange($Text)
    ; Dans le script complet (voir lien ci-dessous) nous montrons le contenu d'une bo�te d'�dition GUI.
    GUICtrlSetData($GUIEdit, "IE Status text changed to: " & $Text & @CRLF, "append")
EndFunc   ;==>IEEvent_StatusTextChange

Func IEEvent_BeforeNavigate($URL, $Flags, $TargetFrameName, $PostData, $Headers, $Cancel)
    ; Dans le script complet (Voir lien ci-dessous) nous montrons le contenu dans une boite d'�dition GUI.
    ; Note: La d�claration est diff�rente de celle de MSDN.
    GUICtrlSetData($GUIEdit, "BeforeNavigate: " & $URL & " Flags: " & $Flags & @CRLF, "append")
EndFunc   ;==>IEEvent_BeforeNavigate

Cliquez ici pour voir le script complet.

La ligne principale de ce script est: $EventObject = ObjEvent ($oIE, "IEEvent_", ...).
Cette fonction prend l'objet $oIE et redirige ses �v�nements vers les fonctions AutoIt dont le nom commence avec IEEvent_. Le troisi�me param�tre est optionnel. Il est utilis� lorsqu'un Objet a de multiples interfaces d'�v�nements et que vous ne voulez pas que AutoIt en choisisse une automatiquement.

L'Objet responsable de la redirection continue, est $EventObject. Cette variable n'exige pas d'attention particuli�re, � moins que vous ne vouliez arr�ter les �v�nements.

Pour arr�ter la redirection des �v�nements, vous ne pouvez pas simplement supprimer la variable comme ceci: $EventObject="". La raison est que l'Objet 'appelant' garde toujours une r�f�rence � cette variable et il ne la l�chera pas tant que l'Objet ne quittera pas lui-m�me. Vous pourriez r�soudre ce probl�me en d�truisant l'Objet 'appelant', mais vous pouvez aussi dire � l'Objet que vous ne voulez plus recevoir d'�v�nements en utilisant : $EventObject.Stop. Alors vous pourrez (mais ce n'est pas vraiment n�cessaire) tuer l'�v�nement en lui assignant n'importe quelle valeur, comme ceci : $EventObject = "".

Si vous connaissez le nom des �v�nements $oIE envoy�s, vous pouvez mettre en œuvre les �v�nements qui vous int�ressent en cr�ant un UDF AutoIt avec le nom IEEvent_Eventname (Arguments optionnels). Assurez-vous d'utiliser le nombre correct d'arguments et dans le bon ordre comme sp�cifi� pour CETTE fonction d'�v�nement. Autrement vous pourriez terminer avec des valeurs inattendues.

Vous n'avez pas besoin d'impl�menter TOUTES les fonctions d'�v�nement. Celles qui ne le seront pas, seront simplement ignor�es.

Beaucoup d'autres exemples de scripts utilisants des fonctions d'�v�nement COM peuvent �tre trouv�s dans le r�pertoire tests de la distribution Zip b�ta de AutoIt, t�l�chargeable ici: http://www.autoitscript.com/autoit3/files/beta/autoit/


Limitations sur les �v�nements COM dans AutoIt

Quelques Objets (comme le 'Navigateur Internet') passent des arguments � leurs Fonctions d'�v�nement 'par r�f�rence'. Ceci est destin� � autoriser l'utilisateur � changer ses arguments et de les renvoyer � l'Objet. Cependant, AutoIt utilise son propre syst�me de variable, qui n'est pas compatible avec les variables COM. Cela signifie que toutes les valeurs d'Objets doivent �tre converties en variables AutoIt, lib�rant ainsi la r�f�rence � l'espace de m�moire d'origine. Peut-�tre que dans un avenir proche nous r�soudrons ce probl�me pour vous !

Traitement d'Erreur COM

L'utilisation de COM sans traitement d'erreur appropri� peut �tre tr�s astucieux. Particuli�rement quand vous n'�tes pas familiers avec les Objets dans votre script.

Seulement s'il n'y a aucune fa�on de pr�venir une erreur COM, vous pourriez installer un "gestionnaire d'erreur" dans lequel vous agiriez apr�s que l'erreur soit arriv�e. Ce n'est pas une solution pour faire fonctionner proprement un script bugg�. Les erreurs non-COM rattach�es au script, ne seront pas retourn�es non plus (par ex. d�claration et erreurs de syntaxe).

Le gestionnaire d'erreur est impl�ment� de la m�me mani�re qu'un �v�nement COM normal, en utilisant ObjEvent() et une fonction utilisateur d'�v�nement COM. La seule diff�rence est l'utilisation d'une cha�ne fixe "AutoIt.Error" comme nom d'objet.

Un exemple:

Global $iEventError = 0 ; Pour analyser si une erreur COM se produit. Doit �tre r�initialis� apr�s traitement.

$oMyError = ObjEvent("AutoIt.Error", "ErrFunc") ; Installe un gestionnaire d'erreur personnalis�

; Provoque une erreur volontaire (l'objet n'existe pas)
$oIE = ObjCreate("InternetExplorer.Application")
$oIE.visible = 1
$oIE.bogus
If $iEventError Then
    MsgBox(0, "", "Il y avait une erreur sur la ligne pr�c�dente.")
    $iEventError = 0 ; Re-initialise apr�s affichage d'une erreur COM trouv�e
EndIf
Exit

; Ceci est un gestionnaire personnalis� d'erreur
Func ErrFunc()
    $HexNumber = Hex($oMyError.number, 8)
    MsgBox(0, "", "Nous interceptons une erreur COM !" & @CRLF & _
            "Number is: " & $HexNumber & @CRLF & _
            "WinDescription is: " & $oMyError.windescription)
    $iEventError = 1 ; Use to check when a COM Error occurs
EndFunc   ;==>ErrFunc


Une chose est sp�ciale au sujet du traitement d'erreur d'�v�nement, c'est l'Objet qu'il retourne. C'est un Objet d'Erreur AutoIt qui contient quelques propri�t�s et m�thodes utiles. Sa mise en œuvre est en partie bas�e sur l'Objet "Err" dans VB (Script) :

Les propri�t�s de l'Objet d'Erreur AutoIt :

.number La valeur HRESULT Windows d'un appel � COM
.windescription Le texte FormatWinError() d�riv� de .number
.source Nom de l'Objet produisant l'erreur (Contenu de ExcepInfo.source)
.description Description d'Objet source de l'erreur(Contenu de ExcepInfo.description)
.helpfile Aide de l'Objet Source pour l'erreur(Contenu de ExcepInfo.helpfile)
.helpcontext Num�ro ID du contexte du fichier d'aide de l'Objet Source (Contenu de ExcepInfo.helpcontext)
.lastdllerror Le num�ro retourn� par GetLastError()
.scriptline La ligne du script sur laquelle l'erreur a �t� g�n�r�e

M�thodes de l'Objet d'Erreur AutoIt :

.raise L�ve un �v�nement d'erreur, lanc� par l'utilisateur
.clear Nettoie le contenu de l'Objet d'Erreur (C'est-�-dire les nombres � 0, les cha�nes � "")

Note pour les cr�ateurs de UDF

Vous pouvez avoir plusieurs gestionnaires d'erreurs d'�v�nements COM. Le dernier enregistr� est celui qui sera appel�.

Cependant, vous ne pouvez jamais arr�ter un gestionnaire d'erreurs existant sans corriger la variable qui avait �t� assign�e. Cela se produit lorsque cette variable est hors de port�e ou est r�affect�e.

Visualisateur d'Objet OLE/COM

Le "Visualisateur d'Objet OLE/COM" est un outil tr�s utile pour pouvoir jeter un coup d'oeil sur tous les objets COM actuellement install�s sur votre syst�me. C'est un �l�ment du kit de ressource de Windows 2000 et il peut �tre t�l�charg� gratuitement ici : http://www.microsoft.com/downloads/details.aspx?familyid=5233b70d-d9b2-4cb5-aeb6-45664be858b6&displaylang=en

L'installation de ce programme est un peu maladroite. Il ne cr�era pas d'ic�ne dans le menu D�marrer. Au lieu de cela, un fichier appel� oleview.exe sera install� dans le r�pertoire d'installation par d�faut C:\Program Files\Resource Kit.

Lors de l'ex�cution de oleview.exe, quelques syst�mes r�clament un fichier appel� iviewers.dll. Ce fichier est n�cessaire, mais, �trangement, n'est pas inclus dans la derni�re version du setup. Vous pouvez obtenir cette dll � partir d'une ancienne version de oleview.exe �: http://download.microsoft.com/download/2/f/1/2f15a59b-6cd7-467b-8ff2-f162c3932235/ovi386.exe. Elle installera les fichiers par d�faut dans le r�pertoire C:\MSTOOLS\BIN. Vous avez seulement besoin du fichier iviewer.dll. Copiez le vers le r�pertoire o� se trouve oleview.exe, puis enregistrez la dll avec la ligne de commande: regsvr32 iviewers.dll.

Exemple avec Oleviewer. Ex�cutez-le et suivez ce chemin: Object Classes->Grouped by Component Category->Control->Microsoft Web Browser.



Dans la colonne gauche vous pouvez voir toutes les Interfaces COM qui ont �t� d�finies pour cet objet. Nous parlerons de cela plus tard. Regardez de plus pr�s la colonne de droite. Elle contient beaucoup d'informations pour utiliser cet objet dans un script AutoIt. Le plus important est "VersionIndependentProgID". C'est le nom � utiliser dans un ObjCreate(), ObjGet() ou ObjEvent(). En outre il contient le r�pertoire et le nom de fichier qui contient l'objet. Cela peut �tre un EXE, une DLL ou un fichier OCX. InProcServer32 signifie que l'objet fonctionne dans le m�me processus (thread) que votre script (� l'ex�cution). Lorsque vous voyez LocalServer32 les objets fonctionnent dans des processus s�par�s. L'objet doit aussi contenir une biblioth�que de type (les lignes apr�s "TypeLib="), autrement il ne peut pas �tre utilis� dans un script AutoIt.

Les interfaces de la colonne de gauche sont utilis�es pour agir de diff�rentes mani�res avec l'objet. Certaines sont utilis�es pour le stockage (IStorage, IPersist), les autres pour �tre embarqu�es dans une GUI (IOleObject, IOleControl). AutoIt utilise l'interface IDispatch pour l'automatisation. Cette interface 'expose' toutes les m�thodes et les propri�t�s scriptables que l'objet supporte. Si elle n'existe pas, vous ne pouvez pas utiliser l'objet dans un script AutoIt.

Jetons un coup d'œil � cette interface. Faites un clic-droit sur le nom IDispatch et choisissez "View..." � partir du menu contextuel. Cliquez alors le bouton "View TypeInfo...". (Note : Si ce boutton est gris�, vous n'avez pas enregistr� le fichier iviewers.dll, ou c'est que l'objet n'a pas de biblioth�que de type)



La fen�tre "ITypeInfo Viewer" montre seulement les informations fournie avec l'objet. Si le d�veloppeur d�cide de ne pas inclure un fichier d'aide, vous ne verrez que les noms des m�thodes/propri�t�s et rien d'autre. La biblioth�que de type du "Navigateur Web Microsoft" est cependant tr�s vaste. Cliquez juste sur un �l�ment dans la colonne de gauche et une description sera montr�e � droite. Parfois vous devrez examiner "Inherited Interfaces" pour r�cup�rer plus de m�thodes pour l'objet.

La syntaxe des m�thodes/propri�t�s d�crites sont dans le style C/C++. Une propri�t� d�crite comme "HRESULT Resizable([in] VARIANT_BOOL pbOffline)", a �t� r��crite dans AutoIt comme ceci : $Resizable=$Object.Resizable ($Object contient l'objet cr�� avec ObjCreate ou ObjGet).

Termes COMmun�ment confondus

Ces termes sont g�n�ralement confondus avec COM, mais ils ont une signification diff�rente:

OOP = Object Oriented Programming (Programmation Orient� Objet). Une technique de programmation dans laquelle des composants logiciels sont r�unis � partir de composantes r�utilisables connus comme des Objets.

DDE = Dynamic Data Exchange (Echange de Donn�es Dynamiques).

Vous pouvez dire que c'est le pr�d�cesseur de COM. Il a utilis� IPC pour transf�rer des informations et des commandes entre des applications diff�rentes.

OLE = Object Linking and Embedding (Liaison et Imbrication d'Objet)

Dans sa premi�re version, OLE fut une version �tendue de DDE pour 'imbriquer' les donn�es d'un programme vers un autre. La g�n�ration actuelle d'OLE est construite sur la partie sup�rieure de COM et fait partie d'ActiveX.

Automation = C'est une fa�on de manipuler les objets d'une autre application. Elle est utilis�e dans OLE, ActiveX et COM.

ActiveX = La nouvelle g�n�ration d'OLE avec l'Automation, au d�but surtout d�velopp� pour interfacer les applications sur un r�seau (Surtout les navigateurs web). ActiveX est construit sur la partie sup�rieure de COM.

DCOM = Distributed COM (COM Distribu�). Une l�g�re modification de COM, le rendant capable de communiquer entre diff�rents ordinateurs physiques.

.NET (Point Net)= Ce n'est pas vraiment une partie de logiciel, mais plut�t 'une id�e' de Microsoft pour interconnecter � peu pr�s "tout" par (leur) logiciel. "Point Net" est utilis� principalement pour des services � base Web.

COMmunist = Ce n'est pas un partisan de COM, mais quelqu'un qui croit au communisme (Une th�orie dont le peuple devrait poss�der toutes les propri�t�s).