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 :

[D4][Automation] Écrire un collecteur d'événements


Sujet :

Delphi

  1. #1
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 302
    Par défaut [D4][Automation] Écrire un collecteur d'événements
    bonjour,

    j'écris un petit client automation qui gère les méthodes et les propriétés d'un serveur fourni avec sa bibliothèque de types que j'ai importée.
    comme je voulais pouvoir définir une instance déjà en cours du serveur en liaison précoce, j'ai complété l'unité _TLB avec une fonction Get :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    CoDocument = class
        class function Create: IDocument;
        class function CreateRemote(const MachineName: string): IDocument;
     
        class function Get:  IDocument;
     
      end;
     
    implementation
     
    class function CoDocument.Get: IDocument;
    var
    lRes:HRESULT;
    Unk:IUnknown;
    Doc:IDocument;
    begin
       lRes:=GetActiveObject(CLASS_Document,nil,Unk);
       OleCheck(lRes);
       lRes:=Unk.QueryInterface(IDocument,Doc);
       OleCheck(lRes);
       Result:=Doc;
    end;
    jusque là, rien de rare et ça fonctionne bien.

    c'est la gestion des événements qui me laisse perplexe.
    je dois écrire à la main le collecteur d'événements puisque D4 ne génère pas de composant enveloppe lors de l'import.
    malheureusement, je découvre que les interfaces événements ne sont pas des interfaces de répartition mais des interfaces
    de type IUnknown :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    IDocumentEvents = interface(IUnknown)
        ['{xxxxxxxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxx}']
        function Close: HResult; stdcall;
        function DocSaved(const pIDoc: IDocument): HResult; stdcall;
        function MergeRequest(code: Integer): HResult; stdcall;
      end;
    je cherche donc une piste pour l'écriture d'un collecteur conçu pour gérer ce type d'interface.

    merci par avance pour toutes vos suggestions
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  2. #2
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 302
    Par défaut
    bonsoir,
    la réponse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    TDocumentSink = Class(TInterfacedObject,IUnknown,IDocumentEvents)
    protected
        //IDocumentEvents
        function Close: HResult; stdcall;
        function DocSaved(const pIDoc: IDocument): HResult; stdcall;
        function MergeRequest(code: Integer): HResult; stdcall;
    end;
    désolé pour le dérangement (mais c'était vendredi soir et j'avais un coup de flemme)
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/04/2012, 12h04
  2. Réponses: 4
    Dernier message: 11/03/2010, 12h28
  3. Réponses: 3
    Dernier message: 16/07/2008, 19h43
  4. validation autom. d'un évènement d'une page web
    Par nico8888 dans le forum Web & réseau
    Réponses: 0
    Dernier message: 11/08/2007, 13h29
  5. Erreurs + écrire dans le journal d'événements
    Par _n1n1_ dans le forum VBScript
    Réponses: 2
    Dernier message: 16/05/2007, 09h38

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