Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   TShareContract/ShareContractFramework (https://www.delphipraxis.net/211305-tsharecontract-sharecontractframework.html)

TurboMagic 30. Aug 2022 12:00

AW: TShareContract/ShareContractFramework
 
Glaube ich nicht wirklich, denn das originale Demo Programm von EMBT zeigt ja ein entsprechendes Popup an...

TiGü 30. Aug 2022 12:26

AW: TShareContract/ShareContractFramework
 
Aber hast du denn schon mal mit Debug-DCUs und F7 durchdebuggt?

TurboMagic 30. Aug 2022 13:05

AW: TShareContract/ShareContractFramework
 
Bisher nur ansatzweise, da landet man ziemlich schonell bei irgend einem Interface/COM-Interface oder so von Windows.

TiGü 31. Aug 2022 11:22

AW: TShareContract/ShareContractFramework
 
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;

TurboMagic 1. Sep 2022 21:57

AW: TShareContract/ShareContractFramework
 
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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:28 Uhr.
Seite 2 von 2     12   

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