IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

Utilité de CoInitializeEx dans ce code d'Embarcadero


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de declencher
    Inscrit en
    Mai 2003
    Messages
    441
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 441
    Par défaut Utilité de CoInitializeEx dans ce code d'Embarcadero
    Bonjour,

    J'ai fait des recherches notamment sur le forum pour utiliser TIdHTTP afin que mon appli télécharge un petit fichier xml déposé sur un serveur web (quelques octets).

    J'ai notamment trouvé cette page d'embarcadero : http://docwiki.embarcadero.com/CodeE...P_Get_(Delphi)

    Est ce que quelqu'un pourrait m'expliquer l'utiliter de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        CoResult := CoInitializeEx(nil, COINIT_MULTITHREADED);
     
        if not((CoResult = S_OK) or (CoResult = S_FALSE)) then
        begin
          //Writeln('Failed to initialize COM library.');
          //Exit;
        end;
    Cet exemple est une application console. Est ce utile dans le cadre d'une appli Win32 classique ? La FAQ de développez ne parle pas de ce code.

    Ce code faisant allusion à du multi threading, je me demande à quoi il sert, ce qu'il fait, et si c'est grâce à lui que mon appli ne tournerait pas en rond trop longtemps en cas de défaillance réseau par exemple ?

    Avez vous un avis ou des infos sur le sujet ?

    Merci

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 939
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 939
    Par défaut
    TIdHTTP ne repose pas sur des objets COM mais TXMLDocument oui. Si tu ne comptes pas ouvrir ce fichier XML mais uniquement le télécharger, tu n'as pas besoin d'initialiser la bibliothèque COM.

  3. #3
    Membre éclairé Avatar de declencher
    Inscrit en
    Mai 2003
    Messages
    441
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 441
    Par défaut
    Bonjour,

    Merci pour ta réponse rapide. Je me sens un peu con du coup, car je n'avais pas imaginé que c'était pour utiliser le TXMLDocument...

    Sais tu si ce composant et l'activeX indispensable sont compatibles avec toutes les versions de Windows du coup ? Si ce n'est pas le cas je vais utiliser un fichier texte...

  4. #4
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 776
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 776
    Par défaut
    COM/ COM +/ DCOM c'est une grosse architecture qui existe depuis Windows 95, en mode client/ serveur (local ou serveur) pour partager "du code entre les logiciels". Par exemple, faire un tableau Excel dans Word.

    OLE, DirextX, DirectShow, ActiveX, ... sont des rejetons COM

    Le paramètre "COINIT_MULTITHREADED" dit que tu vas utiliser COM dans un 1 thread spécifique.

    Pour les histoires de version et de disponibilité, il faut interroger COM avec le CLSID (<- lien MSDN) de TXMLDocument


    Utilise le format JSON : plus simple, moins lourd

    Par contre si tu fais du réseau avec Winsocks, il te faut appeler WSAStartup (<- lien MSDN)


    Édit : lien Wiki COM

  5. #5
    Membre éclairé Avatar de declencher
    Inscrit en
    Mai 2003
    Messages
    441
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 441
    Par défaut
    Salut,

    Savez vous pourquoi l'utilisation de TXMLDocument fonctionne (code de l'exemple) après suppression du code que j'ai cité plus haut (CoResult...) ?

Discussions similaires

  1. [C#] Control user dans le code caché
    Par pc152 dans le forum ASP.NET
    Réponses: 7
    Dernier message: 07/05/2004, 06h36
  2. [langage] algo de bissection dans mon code
    Par killy dans le forum Langage
    Réponses: 5
    Dernier message: 19/01/2004, 18h35
  3. Quel est le problème dans ce code ?
    Par Luther13 dans le forum C
    Réponses: 12
    Dernier message: 26/08/2003, 16h09
  4. Modifier un événement dans le code
    Par HT dans le forum Langage
    Réponses: 6
    Dernier message: 20/06/2003, 09h46
  5. Création multiple table paradox dans le code
    Par scarabee dans le forum C++Builder
    Réponses: 8
    Dernier message: 30/10/2002, 10h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo