AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Probleme mit Interfaces beim Nutzen von Edge/WebView als Ersatz für TWebBrowser
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme mit Interfaces beim Nutzen von Edge/WebView als Ersatz für TWebBrowser

Ein Thema von BobTheBuilder · begonnen am 15. Nov 2019 · letzter Beitrag vom 21. Nov 2019
 
BobTheBuilder

Registriert seit: 10. Apr 2019
18 Beiträge
 
#1

Probleme mit Interfaces beim Nutzen von Edge/WebView als Ersatz für TWebBrowser

  Alt 15. Nov 2019, 16:30
Delphi-Version: 10.2 Tokyo
Hallo zusammen,

(Ich benutze Delphi 10.3, aber das kann man irgendwie nicht auswählen)

ich habe gemerkt, dass ich mich mit Interfaces überhaupt nicht auskenne und auf dem Schlauch stehe, um eine theoretisch sehr einfache Erweiterung an einem Beispiel vorzunehmen.

Beispiel kommt aus der Antwort von hier:
https://stackoverflow.com/questions/...lphi-c-builder

Einfach den Code in eine Form kopieren (und vielleicht den Form-Namen berichtigen) und schon hat man Edge als Steuerelement in einer Form laufen.

Ich benötige jetzt die Möglichkeit, das Steuerelement eine POST Anfrage machen zu lassen.

Da ich sowieso schon auf Stackoverflow das Beispiel gefunden hatte, habe ich mir gedacht, dass ich das auch direkt dort frage, auch wenn es leider bisher keine lösenden Antworten gegeben hat: https://stackoverflow.com/questions/...69770#58869770

Deswegen habe ich mir gedacht, dass ja eventuell hier jemand den Durchblick hat und mir helfen kann:

Ich will das IWebViewControl Interface um diese procedure erweitern:
Code:
procedure NavigateWithHttpRequestMessage(requestMessage: IHttpRequestMessage); stdcall;
Dazu brauche ich jedoch jetzt das IHttpRequestMessage Interface, das ich mir im Windows 10 Kit rausgesucht habe:
Code:
[exclusiveto(Windows.Web.Http.HttpRequestMessage)]
[uuid(F5762B3C-74D4-4811-B5DC-9F8B4E2F9ABF)]
interface IHttpRequestMessage : IInspectable
{
[propget] HRESULT Content([out] [retval] Windows.Web.Http.IHttpContent** value);
[propput] HRESULT Content([in] Windows.Web.Http.IHttpContent* value);
[propget] HRESULT Headers([out] [retval] Windows.Web.Http.Headers.HttpRequestHeaderCollection** value);
[propget] HRESULT Method([out] [retval] Windows.Web.Http.HttpMethod** value);
[propput] HRESULT Method([in] Windows.Web.Http.HttpMethod* value);
[propget] HRESULT Properties([out] [retval] Windows.Foundation.Collections.IMap<HSTRING, IInspectable*>** value);
[propget] HRESULT RequestUri([out] [retval] Windows.Foundation.Uri** value);
[propput] HRESULT RequestUri([in] Windows.Foundation.Uri* value);
[propget] HRESULT TransportInformation([out] [retval] Windows.Web.Http.HttpTransportInformation** value);
}
Wenn ich das richtig verstanden habe, ist das die (teilweise) Übersetzung:
Code:
IHttpRequestMessage = interface(IInspectable)
  ['{F5762B3C-74D4-4811-B5DC-9F8B4E2F9ABF}']
    procedure Placeholder_ContentGet; safecall;
    procedure Placeholder_ContentPut; safecall;
    procedure Placeholder_HeadersGet; safecall;
    procedure Placeholder_MethodGet; safecall;
    procedure Placeholder_MethodPut; safecall;
    procedure Placeholder_PropertiesGet; safecall;
    procedure Placeholder_RequestUriGet; safecall;
    procedure Placeholder_RequestUriPut; safecall;
    procedure Placeholder_TransportInformationGet; safecall;
  end;
Was ich nun garnicht verstehe: Wie erzeuge ich davon nun ein Objekt?

Ich habe schonmal in die TLBs von Activex DLLs reingeguckt und gesehen, dass die passenden Objekte per CreateComObject() erzeugt werden, aber wenn ich die GUID des Interfaces da rein gebe, dann sagt er mir, dass die Klasse nicht registriert wäre. Übersehe ich da etwas Offensichtliches oder bin ich vielleicht völlig auf dem Holzweg?

Vielleicht hat ja einer von euch etwas mehr Ahnung von Interfaces und kann mir zumindest die generelle Richtung weisen.
  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 02:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz