Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations strongm on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Using General fields in reports on Windows 11 - Simple Registry Fix! 3

Status
Not open for further replies.

GriffMG

Programmer
Mar 4, 2002
6,305
FR
After much effort, and not being able to find a Windows 11 machine I could use remotely, I upgraded my personal development laptop
to Windows 11. Foolish probably, but the pressure was mounting, with at least three clients finding their PCs have been upgraded to
Windows 11 almost behind their backs during a routine update.

After the upgrade the reports stopped working and forms with OLE objects bound to bmp files etc did not show the contents of the
fields. All that was required to fix it was to run two .reg files (requiring admin rights).

Code:
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\AppID\{D3E34B21-9D75-101A-8C3D-00AA001A1652}]
@="Bitmap Image"
"AppID"="{D3E34B21-9D75-101A-8C3D-00AA001A1652}"
"LocalizedString"=hex(2):40,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,  6f,00,6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,  00,5c,00,6d,00,73,00,70,00,61,00,69,00,6e,00,74,00,2e,00,65,00,78,00,65,00,  2c,00,2d,00,35,00,39,00,34,00,31,00,39,00,00,00

[HKEY_CLASSES_ROOT\CLSID\{0003000A-0000-0000-C000-000000000046}]
@="Bitmap Image"

[HKEY_CLASSES_ROOT\CLSID\{0003000A-0000-0000-C000-000000000046}\Conversion]

[HKEY_CLASSES_ROOT\CLSID\{0003000A-0000-0000-C000-000000000046}\Conversion\Readable]

[HKEY_CLASSES_ROOT\CLSID\{0003000A-0000-0000-C000-000000000046}\Conversion\Readable\Main]
@="8"

[HKEY_CLASSES_ROOT\CLSID\{0003000A-0000-0000-C000-000000000046}\MiscStatus]
@="512"

[HKEY_CLASSES_ROOT\CLSID\{0003000A-0000-0000-C000-000000000046}\Ole1Class]
@="PBrush"

[HKEY_CLASSES_ROOT\CLSID\{0003000A-0000-0000-C000-000000000046}\ProgID]
@="PBrush"

[HKEY_CLASSES_ROOT\CLSID\{0003000A-0000-0000-C000-000000000046}\TreatAs]
@="{D3E34B21-9D75-101A-8C3D-00AA001A1652}"

[HKEY_CLASSES_ROOT\CLSID\{D3E34B21-9D75-101A-8C3D-00AA001A1652}]
@="Paintbrush Picture"
"LocalizedString"=hex(2):40,00,25,00,73,00,79,00,73,00,74,00,65,00,6d,00,72,00,  6f,00,6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,  00,5c,00,6d,00,73,00,70,00,61,00,69,00,6e,00,74,00,2e,00,65,00,78,00,65,00,  2c,00,2d,00,35,00,39,00,34,00,31,00,38,00,00,00

[HKEY_CLASSES_ROOT\CLSID\{D3E34B21-9D75-101A-8C3D-00AA001A1652}\AuxUserType]

[HKEY_CLASSES_ROOT\CLSID\{D3E34B21-9D75-101A-8C3D-00AA001A1652}\AuxUserType\2]
@="Bitmap Image"
"LocalizedString"=hex(2):40,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,  6f,00,6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,  00,5c,00,6d,00,73,00,70,00,61,00,69,00,6e,00,74,00,2e,00,65,00,78,00,65,00,  2c,00,2d,00,35,00,39,00,34,00,31,00,39,00,00,00

[HKEY_CLASSES_ROOT\CLSID\{D3E34B21-9D75-101A-8C3D-00AA001A1652}\AuxUserType\3]
@="Paint"
"LocalizedString"=hex(2):40,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,  6f,00,6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,  00,5c,00,6d,00,73,00,70,00,61,00,69,00,6e,00,74,00,2e,00,65,00,78,00,65,00,  2c,00,2d,00,35,00,37,00,33,00,34,00,34,00,00,00

[HKEY_CLASSES_ROOT\CLSID\{D3E34B21-9D75-101A-8C3D-00AA001A1652}\DataFormats]

[HKEY_CLASSES_ROOT\CLSID\{D3E34B21-9D75-101A-8C3D-00AA001A1652}\DataFormats\PriorityCacheFormats]
"#8"=""

[HKEY_CLASSES_ROOT\CLSID\{D3E34B21-9D75-101A-8C3D-00AA001A1652}\DefaultIcon]
@=hex(2):25,00,73,00,79,00,73,00,74,00,65,00,6d,00,72,00,6f,00,6f,00,74,00,25,  00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,6d,00,73,00,  70,00,61,00,69,00,6e,00,74,00,2e,00,65,00,78,00,65,00,2c,00,2d,00,33,00,00,  00

[HKEY_CLASSES_ROOT\CLSID\{D3E34B21-9D75-101A-8C3D-00AA001A1652}\InProcHandler32]
@="ole32.dll"

[HKEY_CLASSES_ROOT\CLSID\{D3E34B21-9D75-101A-8C3D-00AA001A1652}\Insertable]

[HKEY_CLASSES_ROOT\CLSID\{D3E34B21-9D75-101A-8C3D-00AA001A1652}\LocalServer32]
@=hex(2):25,00,73,00,79,00,73,00,74,00,65,00,6d,00,72,00,6f,00,6f,00,74,00,25,  00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,6d,00,73,00,  70,00,61,00,69,00,6e,00,74,00,2e,00,65,00,78,00,65,00,00,00

[HKEY_CLASSES_ROOT\CLSID\{D3E34B21-9D75-101A-8C3D-00AA001A1652}\MiscStatus]
@="32"

[HKEY_CLASSES_ROOT\CLSID\{D3E34B21-9D75-101A-8C3D-00AA001A1652}\PersistentHandler]
@="{098f2470-bae0-11cd-b579-08002b30bfeb}"

[HKEY_CLASSES_ROOT\CLSID\{D3E34B21-9D75-101A-8C3D-00AA001A1652}\ProgID]
@="Paint.Picture"

[HKEY_CLASSES_ROOT\CLSID\{D3E34B21-9D75-101A-8C3D-00AA001A1652}\Verb]

[HKEY_CLASSES_ROOT\CLSID\{D3E34B21-9D75-101A-8C3D-00AA001A1652}\Verb\0]
@="&Edit,0,2"
"LocalizedString"=hex(2):40,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,  6f,00,6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,  00,5c,00,6d,00,73,00,70,00,61,00,69,00,6e,00,74,00,2e,00,65,00,78,00,65,00,  2c,00,2d,00,35,00,39,00,34,00,32,00,30,00,00,00

[HKEY_CLASSES_ROOT\CLSID\{D3E34B21-9D75-101A-8C3D-00AA001A1652}\Verb\1]
@="&Open,0,2"
"LocalizedString"=hex(2):40,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,  6f,00,6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,  00,5c,00,6d,00,73,00,70,00,61,00,69,00,6e,00,74,00,2e,00,65,00,78,00,65,00,  2c,00,2d,00,35,00,39,00,34,00,32,00,31,00,00,00

[HKEY_CLASSES_ROOT\CLSID\{D3E34B21-9D75-101A-8C3D-00AA001A1652}]
@="Paintbrush Picture"
"LocalizedString"=hex(2):40,00,25,00,73,00,79,00,73,00,74,00,65,00,6d,00,72,00,  6f,00,6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,  00,5c,00,6d,00,73,00,70,00,61,00,69,00,6e,00,74,00,2e,00,65,00,78,00,65,00,  2c,00,2d,00,35,00,39,00,34,00,31,00,38,00,00,00

[HKEY_CLASSES_ROOT\CLSID\{D3E34B21-9D75-101A-8C3D-00AA001A1652}\AuxUserType]

[HKEY_CLASSES_ROOT\CLSID\{D3E34B21-9D75-101A-8C3D-00AA001A1652}\AuxUserType\2]
@="Bitmap Image"
"LocalizedString"=hex(2):40,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,  6f,00,6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,  00,5c,00,6d,00,73,00,70,00,61,00,69,00,6e,00,74,00,2e,00,65,00,78,00,65,00,  2c,00,2d,00,35,00,39,00,34,00,31,00,39,00,00,00

[HKEY_CLASSES_ROOT\CLSID\{D3E34B21-9D75-101A-8C3D-00AA001A1652}\AuxUserType\3]
@="Paint"
"LocalizedString"=hex(2):40,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,  6f,00,6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,  00,5c,00,6d,00,73,00,70,00,61,00,69,00,6e,00,74,00,2e,00,65,00,78,00,65,00,  2c,00,2d,00,35,00,37,00,33,00,34,00,34,00,00,00

[HKEY_CLASSES_ROOT\CLSID\{D3E34B21-9D75-101A-8C3D-00AA001A1652}\DataFormats]

[HKEY_CLASSES_ROOT\CLSID\{D3E34B21-9D75-101A-8C3D-00AA001A1652}\DataFormats\PriorityCacheFormats]
"#8"=""

[HKEY_CLASSES_ROOT\CLSID\{D3E34B21-9D75-101A-8C3D-00AA001A1652}\DefaultIcon]
@=hex(2):25,00,73,00,79,00,73,00,74,00,65,00,6d,00,72,00,6f,00,6f,00,74,00,25,  00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,6d,00,73,00,  70,00,61,00,69,00,6e,00,74,00,2e,00,65,00,78,00,65,00,2c,00,2d,00,33,00,00,  00

[HKEY_CLASSES_ROOT\CLSID\{D3E34B21-9D75-101A-8C3D-00AA001A1652}\InProcHandler32]
@="ole32.dll"

[HKEY_CLASSES_ROOT\CLSID\{D3E34B21-9D75-101A-8C3D-00AA001A1652}\Insertable]

[HKEY_CLASSES_ROOT\CLSID\{D3E34B21-9D75-101A-8C3D-00AA001A1652}\LocalServer32]
@=hex(2):25,00,73,00,79,00,73,00,74,00,65,00,6d,00,72,00,6f,00,6f,00,74,00,25,  00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,6d,00,73,00,  70,00,61,00,69,00,6e,00,74,00,2e,00,65,00,78,00,65,00,00,00

[HKEY_CLASSES_ROOT\CLSID\{D3E34B21-9D75-101A-8C3D-00AA001A1652}\MiscStatus]
@="32"

[HKEY_CLASSES_ROOT\CLSID\{D3E34B21-9D75-101A-8C3D-00AA001A1652}\PersistentHandler]
@="{098f2470-bae0-11cd-b579-08002b30bfeb}"

[HKEY_CLASSES_ROOT\CLSID\{D3E34B21-9D75-101A-8C3D-00AA001A1652}\ProgID]
@="Paint.Picture"

[HKEY_CLASSES_ROOT\CLSID\{D3E34B21-9D75-101A-8C3D-00AA001A1652}\Verb]

[HKEY_CLASSES_ROOT\CLSID\{D3E34B21-9D75-101A-8C3D-00AA001A1652}\Verb\0]
@="&Edit,0,2"
"LocalizedString"=hex(2):40,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,  6f,00,6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,  00,5c,00,6d,00,73,00,70,00,61,00,69,00,6e,00,74,00,2e,00,65,00,78,00,65,00,  2c,00,2d,00,35,00,39,00,34,00,32,00,30,00,00,00

[HKEY_CLASSES_ROOT\CLSID\{D3E34B21-9D75-101A-8C3D-00AA001A1652}\Verb\1]
@="&Open,0,2"
"LocalizedString"=hex(2):40,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,  6f,00,6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,  00,5c,00,6d,00,73,00,70,00,61,00,69,00,6e,00,74,00,2e,00,65,00,78,00,65,00,  2c,00,2d,00,35,00,39,00,34,00,32,00,31,00,00,00

Code:
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Paint.Picture]
@="Bitmap Image"
"EditFlags"=dword:00200000
"FriendlyTypeName"=hex(2):40,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,  00,6f,00,6f,00,74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,  32,00,5c,00,73,00,68,00,65,00,6c,00,6c,00,33,00,32,00,2e,00,64,00,6c,00,6c,  00,2c,00,2d,00,33,00,30,00,35,00,39,00,37,00,00,00
"ImageOptionFlags"=dword:00000001

[HKEY_CLASSES_ROOT\Paint.Picture\CLSID]
@="{D3E34B21-9D75-101A-8C3D-00AA001A1652}"

[HKEY_CLASSES_ROOT\Paint.Picture\DefaultIcon]
@=hex(2):25,00,73,00,79,00,73,00,74,00,65,00,6d,00,72,00,6f,00,6f,00,74,00,25,  00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,69,00,6d,00,  61,00,67,00,65,00,72,00,65,00,73,00,2e,00,64,00,6c,00,6c,00,2c,00,2d,00,37,  00,30,00,00,00

[HKEY_CLASSES_ROOT\Paint.Picture\Insertable]
@=""

[HKEY_CLASSES_ROOT\Paint.Picture\protocol]

[HKEY_CLASSES_ROOT\Paint.Picture\protocol\StdFileEditing]

[HKEY_CLASSES_ROOT\Paint.Picture\protocol\StdFileEditing\server]
@=hex(2):25,00,73,00,79,00,73,00,74,00,65,00,6d,00,72,00,6f,00,6f,00,74,00,25,  00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,6d,00,73,00,  70,00,61,00,69,00,6e,00,74,00,2e,00,65,00,78,00,65,00,00,00

[HKEY_CLASSES_ROOT\Paint.Picture\protocol\StdFileEditing\verb]

[HKEY_CLASSES_ROOT\Paint.Picture\protocol\StdFileEditing\verb\0]
@="&Edit"
"LocalizedString"=hex(2):40,00,25,00,73,00,79,00,73,00,74,00,65,00,6d,00,72,00,  6f,00,6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,  00,5c,00,6d,00,73,00,70,00,61,00,69,00,6e,00,74,00,2e,00,65,00,78,00,65,00,  2c,00,2d,00,35,00,39,00,34,00,32,00,30,00,00,00

[HKEY_CLASSES_ROOT\Paint.Picture\shell]

[HKEY_CLASSES_ROOT\Paint.Picture\shell\edit]

[HKEY_CLASSES_ROOT\Paint.Picture\shell\edit\command]
@=hex(2):22,00,25,00,73,00,79,00,73,00,74,00,65,00,6d,00,72,00,6f,00,6f,00,74,  00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,6d,00,  73,00,70,00,61,00,69,00,6e,00,74,00,2e,00,65,00,78,00,65,00,22,00,20,00,22,  00,25,00,31,00,22,00,00,00

[HKEY_CLASSES_ROOT\Paint.Picture\shell\printto]

[HKEY_CLASSES_ROOT\Paint.Picture\shell\printto\command]
@=hex(2):22,00,25,00,73,00,79,00,73,00,74,00,65,00,6d,00,72,00,6f,00,6f,00,74,  00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,6d,00,  73,00,70,00,61,00,69,00,6e,00,74,00,2e,00,65,00,78,00,65,00,22,00,20,00,2f,  00,70,00,74,00,20,00,22,00,25,00,31,00,22,00,20,00,22,00,25,00,32,00,22,00,  20,00,22,00,25,00,33,00,22,00,20,00,22,00,25,00,34,00,22,00,00,00

No need to install anything (like classic paint), just works with the two reg files!



Regards

Griff
Keep [Smile]ing

There are 10 kinds of people in the world, those who understand binary and those who don't.

I'm trying to cut down on the use of shrieks (exclamation marks), I'm told they are !good for you.
 
As an attached zip file

Regards

Griff
Keep [Smile]ing

There are 10 kinds of people in the world, those who understand binary and those who don't.

I'm trying to cut down on the use of shrieks (exclamation marks), I'm told they are !good for you.
 
 https://files.engineering.com/getfile.aspx?folder=20fdf41a-379e-44e7-8d5e-0f2ce56f38f2&file=OLEFix.zip
That's great, Griff,

very well done. And I see Paint.Picture is involved, too.

I have to admit it was a bit shortsighted from me that Paint.Picuture can't help as you can't use it from VFP, you can find how to instruct Windows itself to treat it as before. So I see it that way, it's changed OLE and/or Windows printing behavior that deprecated the use of Paint.Picure as needed by VFP reports, and there's nothing to fix in VFP itself.

As the reg files point out where to look in the registry, let's see how these keys are in Win10 and maybe earlier Windows versions or whether it's some of those types of keys that don't preexisted and need to be introduced, not just adjusted.

Chriss
 
The thing is many of us will have one or more apps in VFP6,7,8,9 using what was ok for a logo
or somesuch on a report and W11 broke it. Yes, it is unlikely I would develop a new thing using that...
but hey I do have twenty apps using that very approach. I seems that, never mind me, this
is actually pretty common in Access databases to.

How on earth did M$ miss this in W11 beta?

Regards

Griff
Keep [Smile]ing

There are 10 kinds of people in the world, those who understand binary and those who don't.

I'm trying to cut down on the use of shrieks (exclamation marks), I'm told they are !good for you.
 
Good to hear that you solved it, Griff. And thanks for posting the solution. Just out curiosity, how did you find those two REG files?

Mike

__________________________________
Mike Lewis (Edinburgh, Scotland)

Visual FoxPro articles, tips and downloads
 
Hi Mike.

I googled and googled - lots' of people with the problem, but I think it was an M$ Access programmer
who worked it out and posted the .reg files. I did attach them to my other thread, but couldn't test
them - not having a W11 machine.

It was about to get expensive if I didn't have a solution for existing users, and Saturday afternoon
seemed the safest time to 'upgrade' - thinking I could 'downgrade' if needs be.

Now I can probably include the reg files in the apps, and put a button in the maintenance sections
to shellexecute them on any PC that exhibits the issue. So far as I am concerned that is a way forward.


Regards

Griff
Keep [Smile]ing

There are 10 kinds of people in the world, those who understand binary and those who don't.

I'm trying to cut down on the use of shrieks (exclamation marks), I'm told they are !good for you.
 
Mike,

of course Griff can answer this, but I guess he didn't find but create them from exporting these keys from a Win10 registry.
I've not gone through everything yet, but those keys about Paint.Picture still exist on Win10.

Just as an example, look into [HKEY_CLASSES_ROOT\Paint.Picture\shell\printto\command] on a PC with Win10 or older and you'll see the key exists and points to mspaint.exe with some parameterization.

The question, Griff, is, why did MS remove those keys from the registry? I don't think they overlooked this in Win11 beta tests, I think the deliberately deprecated some keys they deemed unnecessary. Not because VFP deprecated, they keys are about verbs and actions. And the mechanism of OLE/DDE actions and verbs didn't generally deprecated, but they are outdated and likely not in support anymore and paint is on the roadmap of being phased out for 3d paint.

Chriss
 
The interesting thing for me is that you don't have to have the paint program installed on the target system...

I do believe that they overlooked it in some way, because paint.exe was in some of the beta tests apparently
although I have no experience to support that claim.

Yes, I had very nearly worked out the W10 registry keys when I came across this packaged solution... would I have
got it 100%? I doubt it, I was losing faith!

Regards

Griff
Keep [Smile]ing

There are 10 kinds of people in the world, those who understand binary and those who don't.

I'm trying to cut down on the use of shrieks (exclamation marks), I'm told they are !good for you.
 
Are you sure there is no mspaint.exe on Win11? It's not paint.exe, btw, if you looked for that?
Because several of the keys will have no effect without mspaint.exe existing. And in short any OLE class is not existing on it's own but is inside some EXE or DLL or OCX, Paint.Picture is - as far as I see part of mspaint.exe and without it, it doesn't exist.

Chriss
 
To be fair, I had not looked:

Code:
A                    C:\Windows\servicing\LCU\Package_for_RollupFix~31bf3856ad364e35~amd64~~22000.493.1.3\amd64_microsoft-windows-mspaint_31bf3856ad364e35_10.0.22000.41_none_705d08ab0a6355da\f\mspaint.exe
                     C:\Windows.old\$WINDOWS.~BT\DUImageSandbox\Package_for_RollupFix~~amd64~~22000.493.1.3\amd64_microsoft-windows-mspaint_31bf3856ad364e35_10.0.22000.41_none_705d08ab0a6355da\f\mspaint.exe
A                    C:\Windows.old\WINDOWS\System32\mspaint.exe
A                    C:\Windows.old\WINDOWS\SysWOW64\mspaint.exe
A                    C:\Windows.old\WINDOWS\WinSxS\amd64_microsoft-windows-mspaint_31bf3856ad364e35_10.0.19041.746_none_6c16d1714d60fddf\f\mspaint.exe
A                    C:\Windows.old\WINDOWS\WinSxS\amd64_microsoft-windows-mspaint_31bf3856ad364e35_10.0.19041.746_none_6c16d1714d60fddf\r\mspaint.exe
A                    C:\Windows.old\WINDOWS\WinSxS\amd64_microsoft-windows-mspaint_31bf3856ad364e35_10.0.19041.746_none_6c16d1714d60fddf\mspaint.exe
A                    C:\Windows.old\WINDOWS\WinSxS\wow64_microsoft-windows-mspaint_31bf3856ad364e35_10.0.19041.1_none_4e633e7ac2500190\mspaint.exe

Regards

Griff
Keep [Smile]ing

There are 10 kinds of people in the world, those who understand binary and those who don't.

I'm trying to cut down on the use of shrieks (exclamation marks), I'm told they are !good for you.
 
Interesting list, but it doesn't help me much. C:\Windows.old simply is the renamed c:\Windows with the old Windows version that's upgraded partly be copying over things partly by installing from the Win11 installation ISO or DVD.

[pre]A C:\Windows.old\WINDOWS\System32\mspaint.exe
A C:\Windows.old\WINDOWS\SysWOW64\mspaint.exe[/pre]

Those two are the main location of mspaint as 64bit and 32bit version and in Win11 I bet they are still there, myaybe even as a newer file version.

So yes, the keys only help already, but they couldn't without mspaint.exe existing.

So yes again, you don't need to install mspaint.exe, but only since it already/still exists as part of Windows 11.


Chriss
 
And to say the least, OLE always is about indirection. You know an OLE name (or in case of general fields containing an imge VFP knows: "Paint.Picture") but not which DLL/OCX or EXE is having the implemenation of the class. That detail knowledge is in the Registry. The bridge between someone knowing an OLE class name and the actual imploemantaion is the registry. With the exception of regfree COM, but in that case there's just a known alternative for Windows too look up the inforamation that usually is in the registry from a xml menifest file or embedded manifest in an EXE.

And so the mere existance of mspaint.EXE in Win11 doesn't help VFP to work, the registry keys "repair the bridge", connect the path from VFPs knowlegde of Paint.Picture in the Gen field to mspaint.exe in the end containing it and processing the data in the Gen field.


Chriss
 
Chris,

This *is* counter intuitive, but I just renamed those two files (mspaint.exe in system32 and sysWOW64 under windows .old) and the ole still works.
It is quite a bit of work, you have to take ownership, change the rights and then rename using the silly icon...

As I said above - you don't seem have to have mspaint.exe installed for it to work. Go figure.

Incidentally, I am *starting* to like W11, after just two or three days, apart from the way it has introduced extra clicks to use the context menus
and the less than helpful (to me) use of icons for cut, copy, paste etc.


Regards

Griff
Keep [Smile]ing

There are 10 kinds of people in the world, those who understand binary and those who don't.

I'm trying to cut down on the use of shrieks (exclamation marks), I'm told they are !good for you.
 
Let me refine that slightly.
The reports work with existing general fields, appended before W11 had been upgraded.

But, you can't update the general fields from within W11. They go blank or show an icon with
the name of the file.

Makes no difference about the mspaint.exe files being there or not.

Regards

Griff
Keep [Smile]ing

There are 10 kinds of people in the world, those who understand binary and those who don't.

I'm trying to cut down on the use of shrieks (exclamation marks), I'm told they are !good for you.
 
Griff said:
This *is* counter intuitive, but I just renamed those two files (mspaint.exe in system32 and sysWOW64 under windows .old) and the ole still works.

I don't know what's counter intuitive about the old in Windows.old. Windows.old is just a backup of your old Windows system. This isn't active, you could delete the whole Windows .old folder and it won't do anything in your system.

If you want to see whether MSPAIN.EXE exists now as part of Win11 , look into C:\Windows\System32 and C:\Windows\Syswow64
Don't find it there? Then the keys that point to these directories seem not important for the Gen field printing to work.

Griff said:
But, you can't update the general fields from within W11. They go blank or show an icon with
the name of the file.

I can't check that, but take it for granted, then the keys merely help with the usage of Gen field for printing. But it's a start, isn't it?

Have you tried whether printing of an image by filename works? Or from a Blob field?
Because if so, the whole Gen field problem is unimportant.

Chriss
 
Just to once more make the point about the recommendation to stop using GEN:

I see your main argument is by far the easiest fix is to let Gen fields work again.
Agreed, but if in the end it won't work, you're not doomed. There are ways to get the images out of Gen fields and then you can use the 2 alternative image printing methods to print from a file or blob field.

I know you want the solution with least effort, but what about a solution with best long term functioning?

Blob fields are not almost a one way like Gen fields, you get 1:1 the file back you added to a Blob. It's mainly just a new name for binary Memo.

Chriss
 
Hi Chris,

That list I gave you in "To be fair, I had not looked:" is a search of my entire laptop, all drives.

MSPAINT.EXE is not in my current system32 or syswow64 folders, but the reports still work.

The general field is not unimportant now, it's just not as urgent. There is an issue setting up NEW
general fields, but that is nothing like the same as needing to change hundreds of reports in a limited
time frame and without it looking like customers would be paying for it...

Incidentally, putting MSPAINT.EXE in those folders does not make any difference



Regards

Griff
Keep [Smile]ing

There are 10 kinds of people in the world, those who understand binary and those who don't.

I'm trying to cut down on the use of shrieks (exclamation marks), I'm told they are !good for you.
 
Sorry that you had to upgrade to Windows 11 to solve. If you decide to revert back to Windows 10, you might try to setup a virtual Windows 11 system using VMware. This is what I use.
 
As said, Griff:
myself said:
then the keys merely help with the usage of Gen field for printing.

mspaint.exe surely is associated with Paint.Picture, though, just be the reg file you posted.
The keys that point to it then obviously yare not necessary for printing an OLE paint picture object from a Gen field, but as you say you now can't create new Gen field content, that's still a hint they are important.

I'm also not surprised that putting them back doesn't solve the APPEND GENERAL problem, things about OLE are rarely just putting a file somewhere and it works.

The connection to mspaint.exe is very direct, though, if I look at what some binary keys contain. For example the last key in your post:
[HKEY_CLASSES_ROOT\Paint.Picture\shell\printto\command]

regkey_loww7x.png


Or better readable:
regkey2_pm4ix8.png


So it's undeniable paint.picture is connected to mspaint.exe and this and other keys point to the path in system32.

I believe you that the Gen field printing works without mspaint.exe there, then something else is relevant, like a DLL used by mspaint.

So, sorry, I may have been too sure about the 1:1 connection of Gen printing and mspaint.exe, anyway, the relationship is there. Alone the OLE name Paint.Picture points in the direction of MS Paint and I'm also not the first one telling you how images in Gen fields are an OLE object depending on Paint.

Say, to get the full functionality you likely need more, it will still help with exactly this key and some more, if mspaint.exe is really installed where they point to. So it's still a step in the right direction of fixing the working of Paint.Picuture.

Maybe keys are generated when you run mspaint.exe /regserver. But I'm not sure this is just the way how VFP9.exe and EXEs you build in VFP that have COM servers in them self register them.

The problem of CREATEOBJECT('Paint.Picture') not working points out the interface of the OLE classes differ, I remember someone said this whole Gen field BS is based on OLE 1.0 and thereffore very outdated. Not because OLE is outdated, but that way OLE worked back then is very deprecated.

So, good luck finding more of the reg keys or other files necessary for APPEND GENERAL to work again. I can't help you with that, I think.

Chriss
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top