AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Ein COM+ Server ist gar nicht so einfach :-(
Thema durchsuchen
Ansicht
Themen-Optionen

Ein COM+ Server ist gar nicht so einfach :-(

Ein Thema von svehei · begonnen am 4. Aug 2003 · letzter Beitrag vom 5. Aug 2003
 
svehei

Registriert seit: 10. Mär 2003
Ort: Bretten
54 Beiträge
 
Delphi 7 Professional
 
#1

Ein COM+ Server ist gar nicht so einfach :-(

  Alt 4. Aug 2003, 16:56
hallo zusammen,

ich haenge immer noch an meinem COM-Server und bin wiedermal auf ein Problem gestossen, das mir schon wieder heftiges kopfzerbrechen mitbringt

hier nun mein problemchen:

wie erwaehnt baue ich gerade an einem COM+ (InProc) Server. Nun habe ich eine methode mit der ich eine xml-datei parse. da ich die gewonnenen informationen aus der xml-datei aber in mehreren methoden, also oefters, benoetige moechte ich eine art data-storage-klasse implementieren, die durch ihre methoden und properties meine gewonnen informationen beschreibt. zusaetzlich hat meine klasse dann eine import-funktion, die anhand des filenames (der xml-datei) diese dann parst und sich "selber fuellt".
mein problem ist nun, dass ich die klasse zwar wunderbar gefuellt und kompiliert bekomme, wenn ich aber von einer interface-methode auf properties der klasse zugreife ich den wert nicht zurueckbekomme (nicht an meine anwendung weitergeben kann) - warum auch immer.

hier nun die codebeispiele:

die "data-storage-klasse":
Delphi-Quellcode:
  TDataStorage = class(TObject)
  private
    FValue: OleVariant;
  protected
  public
    constructor create;
    procedure Import(XMLFile : String);
    procedure setValue(value: OleVariant);
    function getValue: OleVariant;
    property defaultValue: OleVariant read getValue write setValue;
  end;
...
die implementierung der get/set-klassen sind standard.

im com-objekt:
Delphi-Quellcode:
    ....
    private //property fuer com
      FDataStorage: TDataTorage;
    protected
      function Get_DataStorage(out Value: OleVariant): HResult; stdcall;
      function Set_DataStorage(var Value: OleVariant): HResult; stdcall;
    ...
    //in einer Interface-Methode rufe starte ich den import
    FDataStorage := TDataStorage.create;
    FDataStorage.Import(fileName);
    Set_DataStorage(FDataStorage);
    ...
    //in einer anderen InterfaceMethode auf das schon moechte ich auf das schon "importiert/gefuellte" Objekt zugreifen
    if assigned(FDataStorage) then
    begin
      retVal := FDataStorage.defaultValue; //retVal ist der OUT-Parameter
    end;
    ...
im prinzip wie bei ganz normalen klassenobjekten und deren properties. nur bei meinem inproc-server klappts nicht. an was koennte das liegen? hat da bitte jemand ne idee dazu?

vielen dank

sven
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz