![]() |
AW: TShareContract/ShareContractFramework
Glaube ich nicht wirklich, denn das originale Demo Programm von EMBT zeigt ja ein entsprechendes Popup an...
|
AW: TShareContract/ShareContractFramework
Aber hast du denn schon mal mit Debug-DCUs und F7 durchdebuggt?
|
AW: TShareContract/ShareContractFramework
Bisher nur ansatzweise, da landet man ziemlich schonell bei irgend einem Interface/COM-Interface oder so von Windows.
|
AW: TShareContract/ShareContractFramework
Ohne vernünftiges Debugging wird das nichts.
Werden denn beim ersten Aufrufen von InitSharing alle relevanten DLLs geladen?
Code:
Wie weit kommst du denn in System.Win.ShareContract?
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) 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; |
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 05:03 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-2025 by Thomas Breitkreuz