How to access Windows.Services.Store from Delphi 7 - delphi

I am selling Delphi app in Win 10 Store and like to start to use new buy in-app features. How to use Windows.Services.Store from Delphi 7 ?
Is there example code for accessing StoreContext COM interface ?

You have to build a wrapper C++ component that makes the API calls into Windows.Services.Store.* APIs and exports entry points for your app to call. Then you include this component in your Delphi app package and call from your Delphi code into the exported entry points.
I don't have a Delphi 7 sample available, but here is a sample that is applying the same concept with a VB6 app:
https://github.com/Microsoft/DesktopBridgeToUWP-Samples/tree/master/Samples/VB6withXaml

Related

Modernizing the look of Application.Messagebox for Windows 11

Is there a method to modernize how the Application.MessageBox() dialog looks in Win11? Perhaps by creating a manifest file or something to make classic desktop app to look newer?
In a word, no.
Application.MessageBox() calls the Win32 MessageBox() API, which is an old dialog.
For a newer look, you need to use the Win32 Task Dialog API that was introduced in Windows Vista, instead of using MessageBox().
Modern Delphi versions have a TTaskDialog component, and TaskMessageDlg...() wrapper functions in the (Vcl.)Dialogs unit. But those do not exist in Delphi 7, so you will have to define and import the Task Dialog API types and functions manually.

Windows 8 Message Window

Windows 8 has a new message window that displays in the top right side of the screen. Does Delphi XE4 have any API to access this new feature?
This kind of dialog is part of the Windows.UI.Notifications namespace which belongs to the WinRT, and unfortunately you cannot access the WinRT from Delphi directly. but maybe you can try this article to check a sample with experimental access to the WinRT from Delphi, Writing Hello World for WinRT in Delphi
This is Notifications or Toasts, you can find a C++ and C# example here - http://code.msdn.microsoft.com/windowsdesktop/Sending-toast-notifications-71e230a2
I've yet to see a direct Delphi implementation of this which is why I can only suggest the C++/C# version.

New RDP 8 (mstscax.dll v6.2) embedded in Delphi 7 gives access violation

My old Delphi 7 program with embedded RDP client have been working for years, but it gives Access Violations on Windows 8 and if you install RDP 8 on Windows 7, where the mstscax.dll file (with the ActiveX component) is updated to version 6.2.
Until recently my project had imported Type Library from mstscax.dll v6.0 and I was using TMsRdpClient5 if the GUID was in registry and otherwise TMsRdpClient2 for backwards compatibility with XP. To investigate this new problem, I installed RDP 8 on my Windows 7 32bit where my Delphi 7 resides, imported a new Type-Library MSTSCLib_TLB and this is my findings:
In all components I can set properties directly on the component like Domain and ColorDepth with no errors. But if I want to set properties like AdvancedSettings2.RDPPort, AdvancedSettings2.ClearTextPassword or SecuredSettings2.StartProgram, it results in "Access Violation in module mstscax.dll. Read of adress..."
All those properties resides in "sub interfaces", and the problem is that these functions in the imported library code (returning the "Sub interfaces") results in Access Violations:
function Get_AdvancedSettings2: IMsRdpClientAdvancedSettings;
function Get_SecuredSettings2: IMsRdpClientSecuredSettings;
What has Microsoft changed in mstscax.dll that the imported type library cannot interface with? Is it possible to import type library in the newest Delphi XE3 and use it in Delphi 7 and hope this would implement some new technology correctly?
My Delphi 7 has all updates installed.
Any help would be greatly appreciated.

Is there a version of Synactis' TPDFViewer in Delphi XE

I have used the Synactis product PDF-in-the-box in Delphi 2006 projects and also a free component they had called TPDFViewer, which allows you to embed a PDF viewer in your application.
I am porting one app to XE and - having found that trying to install the TPDFViewer I had in XE did some serious damage to my installation - I'm looking for a replacement.
I have installed XE-supported trial versions of their current offerings PDF-in-the-box 4.04 and All-in-the-box 4.04 but can't see any sign of the TPdfViewer component in either. Their website FAQ implies this functionality has been replaced by functions to start Adobe Reader.
So I want a (free would be nice, but not essential) PDF viewer for Delphi XE which doesn't just chain to Adobe Reader and allows user interaction or programmatic control over zoom, page number etc.
I tried several times to find a good PDF viewer. Most of them were fake components. The best way is to embed acrobat reader dll directly into your application and command it from there.
It was 8 years ago, so I do not remember the code that I used to do this. You import the acroXX.dll file directly into Delphi, it prepares a user component for you and then you install this component directly in to your Component palette.
The worst thing in this configuration is that you have to take care of the acrobat reader dll that is installed on your clients. Any update/upgrade of the reader may cause your application to fail.

Delphi XE2 Firemonkey iOS app controls compatibility

As you all know, Embarcadero just released Delphi XE2. I have download it and i am very excited about having an way of creating an iOS app.
To create the iOS app we should export the code to xcode. But the question is: does every control works on iOS/xcode? I mean, if i want to connect to a sql lite database can I use the delphi controls to do so?
Is there any way of accessing some specific things in iOS like acelerometer and camera?
Is it possible to create a useful iPhone/Ipad app in Delphi (connect to a database, load grids, connect to a webservice, for example)?
1- I don't think you can Components Not Used in iOS Applications
-- I think you can use the TDatasource and the TClientDataSet though ;-)
2- Delphi uses FPC compiler for the iOS so you'll have to parse the iOS SDK headers before you can use it Parsing iOS headers or http://wiki.freepascal.org/objectivepascal#iOS_Headers but there are no out-of-the-box components (yet) that can access the Camera, Accelerometer, ...
3- Check number 1.
Actually ... I think TClientDataSet isn't supported on iOS. I could be wrong ... but at least it wasn't supported a few months ago.

Resources