AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TShareContract/ShareContractFramework

Ein Thema von TurboMagic · begonnen am 27. Aug 2022 · letzter Beitrag vom 1. Sep 2022
Antwort Antwort
Seite 2 von 2     12   
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#11

AW: TShareContract/ShareContractFramework

  Alt 30. Aug 2022, 13:00
Glaube ich nicht wirklich, denn das originale Demo Programm von EMBT zeigt ja ein entsprechendes Popup an...
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#12

AW: TShareContract/ShareContractFramework

  Alt 30. Aug 2022, 13:26
Aber hast du denn schon mal mit Debug-DCUs und F7 durchdebuggt?
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#13

AW: TShareContract/ShareContractFramework

  Alt 30. Aug 2022, 14:05
Bisher nur ansatzweise, da landet man ziemlich schonell bei irgend einem Interface/COM-Interface oder so von Windows.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#14

AW: TShareContract/ShareContractFramework

  Alt 31. Aug 2022, 12:22
Ohne vernünftiges Debugging wird das nichts.
Werden denn beim ersten Aufrufen von InitSharing alle relevanten DLLs geladen?

Code:
Module Load: CLBCatQ.DLL. No Debug Info. Base Address: $76DA0000. Process Project1.exe (9140)
Module Load: twinapi.appcore.dll. No Debug Info. Base Address: $5EDD0000. Process Project1.exe (9140)
Thread Start: Thread ID: 11316. Process Project1.exe (9140)
Thread Start: Thread ID: 14504. Process Project1.exe (9140)
Thread Start: Thread ID: 12160. Process Project1.exe (9140)
Thread Start: Thread ID: 14216. Process Project1.exe (9140)
Module Load: ServiceHostBuilder.dll. No Debug Info. Base Address: $724D0000. Process Project1.exe (9140)
Module Load: OneCoreUAPCommonProxyStub.dll. No Debug Info. Base Address: $55930000. Process Project1.exe (9140)
Module Load: Windows.ApplicationModel.DataTransfer.dll. No Debug Info. Base Address: $715F0000. Process Project1.exe (9140)
Module Load: coml2.dll. No Debug Info. Base Address: $76100000. Process Project1.exe (9140)
Module Load: Windows.Storage.dll. No Debug Info. Base Address: $718E0000. Process Project1.exe (9140)
Module Load: iertutil.dll. No Debug Info. Base Address: $6F9B0000. Process Project1.exe (9140)
Module Load: Wldp.dll. No Debug Info. Base Address: $71740000. Process Project1.exe (9140)
Wie weit kommst du denn in System.Win.ShareContract?
Bekommst du einen validen Zeiger für deinen FTransferManager?

Delphi-Quellcode:
constructor TShareContract.Create(AWinHandle: HWND);
begin
  inherited Create;
  FFileList := TStringList.Create;
  if not Assigned(FProcessMessages) then
    raise EShareContractException.Create(SShareContractNotInitialized);

  FWindowHandle := AWinHandle;

  if TOSVersion.Check(10) then
  begin
    FTransferManager := TDataTransferManager.Interop.GetForWindow(FWindowHandle, TWinRTImportHelper.GetUIID<IDataTransferManager>);

    // Set Handler???
    FDataRequestedHandlerIntf := TDataTransferEventHandler.Create(Self);
    FSharingRequested := FTransferManager.add_DataRequested(FDataRequestedHandlerIntf);

    FAppChosenHandlerIntf := TAppChosenEventHandler.Create(Self);

    FTargetAppRequested := FTransferManager.add_TargetApplicationChosen(FAppChosenHandlerIntf);

    FImageDataProvider := TDataProviderHandler.Create(Self);
  end;
end;

Geändert von TiGü (31. Aug 2022 um 12:24 Uhr)
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#15

AW: TShareContract/ShareContractFramework

  Alt 1. Sep 2022, 22:57
Hallo,

wenn ich ShareSheet1.InitSharing (also einfach nur die Komponente auf die Form gepackt und dort nix verstellt) aufrufe
kommt nur die Zeite unter Ereignissen hinzu:

Module Load: twinapi.appcore.dll. No Debug Info. Base Address: $5EDD0000. Process Project1.exe (9140)

Mit Debug DCUs springt er in

procedure TCustomSharingContract.InitSharing;

Dort wird alles erzeugt und dann TShareContract.InitSharing; aufgerufen. Dort dann
TDataTransferManager.Interop.ShowShareUIForWindow( FWindowHandle) und FWindowHandle hat auch irgend einen Wert.

Danach landet man hier drin: class function TWinRTGenericImportS3O<S1, S2, S3, O>.GetInterop: O; und wenn man
aus der zurück kommt ist man am Ende von TDataTransferManager.Interop.ShowShareUIForWindow( FWindowHandle) und
dort dann gleich wieder am Ende von TShareContract.InitSharing; usw. und nix wurde angezeigt...

Weitere Tests ggf. morgen oder so, heute Abend schon etwas spät dafür. Muss das auch mal mit dem separaten
Testprogramm vergleichen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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:11 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