AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi UPnP CreateAsyncFind > COM-Interface Frage
Thema durchsuchen
Ansicht
Themen-Optionen

UPnP CreateAsyncFind > COM-Interface Frage

Offene Frage von "richard_boderich"
Ein Thema von richard_boderich · begonnen am 3. Mai 2007 · letzter Beitrag vom 4. Mai 2007
Antwort Antwort
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#1

UPnP CreateAsyncFind > COM-Interface Frage

  Alt 3. Mai 2007, 12:05
Hallo Leute!

ich brauch mal eure hilfe bei einer Frage zum COM-Interface bei meiner UPnP funktion.
hier erstmal der code.

Code:

type
  IUPnPDeviceFinderCallback = interface(IUnknown)['{415A984A-88B3-49F3-92AF-0508BEDF0D6C}']
    procedure DeviceAdded(iFindData: Integer; UPnPDevice: UPnPDevice); stdcall;
    procedure DeviceRemoved(iFindData: Integer; wsUDN: WideString); stdcall;
    procedure SearchComplete(iFindData: Integer); stdcall;
  end;


var
  Form1: TForm1;

implementation

{$R *.dfm}

function getglobalip:string;
var
  UPnPDeviceFinder : IUPnPDeviceFinder;
  UPnpDevices : IUPnpDevices;
  UPnpDevice : IUPnpDevice;
  UPnpService : IUPnpService;
  myobject:integer;

begin

  UPnPDeviceFinder := CoUPnPDeviceFinder.Create;
  UPnPDeviceFinder.CreateAsyncFind('75802409-bccb-40e7-8e6c-fa095ecce13g-00040E8D4CCB',0, ?? Was muss hier rein ??  ,myobject);
  UPnPDeviceFinder.StartAsyncFind(myobject);


end;

mein problem ist das ich nicht weis, was ich in dem Createasyncfind aufruf an der markierten stelle einfügen soll. die interfacedeklaration habe ich im netz gefunden. jedoch weis ich auch nicht was genau diese lange zahlenreihe in der interfacedeklaration bedeutet. ich vermute mal das es die zuordnung zu einem bestimmten COM-interfacetyp ist, jedoch weis ich es nicht genau. waere schoen ,wenn mir da jemand weiterhelfen koennte.

gruss richard
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
RobertP

Registriert seit: 19. Aug 2006
181 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: UPnP CreateAsyncFind > COM-Interface Frage

  Alt 3. Mai 2007, 13:34
Erst den Gerätetyp, dann 0 und dann das Callback Interface.
UPnPDeviceFinder.CreateAsyncFind('urn:schemas-upnp-org:device:InternetGatewayDevice:1', 0, upnpdfc);
Robert
  Mit Zitat antworten Zitat
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#3

Re: UPnP CreateAsyncFind > COM-Interface Frage

  Alt 3. Mai 2007, 13:45
ähm ja ok, aber ich suche doch nicht by type. und laut msdn verlangt die funktion den UID des upnp devices????

richard
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
RobertP

Registriert seit: 19. Aug 2006
181 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: UPnP CreateAsyncFind > COM-Interface Frage

  Alt 3. Mai 2007, 14:04
Achso, geht aber genauso:
UPnPDeviceFinder.CreateAsyncFind('uuid:75802409-bccb-40e7-8e6c-fa095ecce13g-00040E8D4CCB', 0, upnpdfc);
Robert
  Mit Zitat antworten Zitat
JonnyGuitar

Registriert seit: 4. Jun 2004
233 Beiträge
 
#5

Re: UPnP CreateAsyncFind > COM-Interface Frage

  Alt 3. Mai 2007, 14:12
so wie mrpayne es schreibt ist es schon richtig
the only thing to fear is runnin' out of beer
  Mit Zitat antworten Zitat
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#6

Re: UPnP CreateAsyncFind > COM-Interface Frage

  Alt 3. Mai 2007, 14:12
ich hab es jetzt so gemacht wie in deine ersten post, bekomme jedoch beim aufruf der funktion die meldung "ungueltiger zeiger". ich habe das gefuehl , das ich beim interface was falsch mach oder einen cast vergessen habe. im msdn ist es auch ein pointer auf das callback interface das verwendet wird. aber wenn ich es als pointer verwende gibts auch wieder "inkompatible typen". ich finde die funktion sehr schlecht dokumentiert.

richard
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
RobertP

Registriert seit: 19. Aug 2006
181 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: UPnP CreateAsyncFind > COM-Interface Frage

  Alt 3. Mai 2007, 14:18
Bei mir hats auch erst funktioniert nachdem ich eine Klasse erstellt habe:
Delphi-Quellcode:
type
  IUPnPDeviceFinderCallback = interface(IUnknown)['{415A984A-88B3-49F3-92AF-0508BEDF0D6C}']
    procedure DeviceAdded(iFindData: Integer; UPnPDevice: UPnPDevice); stdcall;
    procedure DeviceRemoved(iFindData: Integer; wsUDN: WideString); stdcall;
    procedure SearchComplete(iFindData: Integer); stdcall;
  end;

type
  TUPnPDeviceFinderCallback = class(TInterfacedObject, IUPnPDeviceFinderCallback)
  protected
    procedure DeviceAdded(iFindData: Integer; UPnPDevice: UPnPDevice); stdcall;
    procedure DeviceRemoved(iFindData: Integer; wsUDN: WideString); stdcall;
    procedure SearchComplete(iFindData: Integer); stdcall;
  public
    constructor Create;
  end;
Robert
  Mit Zitat antworten Zitat
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#8

Re: UPnP CreateAsyncFind > COM-Interface Frage

  Alt 4. Mai 2007, 07:50
wenn ich das so implementiere bekomme ich die meldung vom compiler

[Fehler] Unit1.pas(32): Ungenügende Forward- oder External-Deklaration: 'TUPnPDeviceFinderCallback.DeviceAdded'
[Fehler] Unit1.pas(33): Ungenügende Forward- oder External-Deklaration: 'TUPnPDeviceFinderCallback.DeviceRemoved'
[Fehler] Unit1.pas(34): Ungenügende Forward- oder External-Deklaration: 'TUPnPDeviceFinderCallback.SearchComplete'
[Fehler] Unit1.pas(36): Ungenügende Forward- oder External-Deklaration: 'TUPnPDeviceFinderCallback.Create'

keine ahnung was ich falsch mache. die schreibweise hab ich ueberprueft und die ist ok.

gruß richard
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
RobertP

Registriert seit: 19. Aug 2006
181 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: UPnP CreateAsyncFind > COM-Interface Frage

  Alt 4. Mai 2007, 14:16
Hast du die entsprechenden Prozeduren der Klasse deklariert?

Delphi-Quellcode:
constructor TUPnPDeviceFinderCallback.Create;
begin
  inherited Create;
end;

procedure TUPnPDeviceFinderCallback.DeviceAdded(iFindData: Integer; UPnPDevice: UPnPDevice); stdcall;
begin
  // Code
end;

procedure TUPnPDeviceFinderCallback.DeviceRemoved(iFindData: Integer; wsUDN: WideString); stdcall;
begin
end;

procedure TUPnPDeviceFinderCallback.SearchComplete(iFindData: Integer); stdcall;
begin
  // Code
end;
Robert
Grüße,
Robert
Meine Website: RPworld.de
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:43 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