Windows 7 Ribbon UI Win32 API Code - winapi

I'm a big fan of "Pure Win32 API Code". I use Windows 7 Ultimate SP1 and I'm surprised with it's Ribbon UI. Can we do that in Pure Win32 API? I don't mind complex coding... I use Code::Blocks with MinGW, installed with TDM-GCC 4.6.1_1. Please help...

Ribbon is available as a native control in Windows 7 and Windows Vista with Platform Upgrade installed. The API is COM-based (like many other recent API additions).
See Windows Ribbon Framework in MSDN for complete documentation.

I got that working. I removed MinGW and installed Windows 7 SDK. Code::Blocks integrates well with it. Now I'm enjoying new APIs in Windows 7. Thanks everyone for your answers.

Related

Windows 8.1 and Windows 10 API changes issue

I have a full fledged app built for windows 8.1...
Through my research, I discovered that the api changes between 8.1 and 10 is nt that much and an app built for 8.1 will work on 10..
So my question now is will a windows 10 app work on windows 8.1?
If yes, how can I go about it?
I've created a report on changes for WinAPI 8 vs WinAPI 10 that may help you to discover differences in details. It's available on this page. The report is generated with the help of the ABI-CC tool.
Since apps built for WP8.1 don't work on WP8, then I doubt that Windows 10 Mobile apps will work on WP8.1. As far as I'm aware, there are more differences between those two systems' API than between 8.1 and 8.0
Btw, are you asking about the desktop systems or the mobile ones (as the tag you used suggests)?

When will VB6 application support end?

Microsoft no longer supports VB6 development and support from Microsoft has already stopped. But VB6 applications still run on Windows 8.1. See also this article titled "Support Statement for Visual Basic 6.0 on Windows Vista, Windows Server 2008, Windows 7, Windows 8 and Windows 8.1".
When would a VB6 application stop running on Windows? Is there any official statement from Microsoft or any clue about the same?
EDIT:
In this link, the Visual Studio team has mentioned that, "It will be supported at least through 2024". But it's not clear whether they said it's supported in Windows 8 till 2024 or in future release of windows OS too.
The "2024" means as part of Windows 8. The link says the VB6 runtime is part of Windows and therefore will be supported in the same way as the rest of Windows. For example Windows 8 will be supported until 2024 because that's the support lifecycle for Windows 8.
EDIT: Microsoft have now said the VB6 runtime is officially part of Windows 10 too.
EDIT: the VB6 IDE (not runtime) is no longer officially supported on any version of Windows, but there are ways to get it to work on Windows 7 and 8.
Uservoice: The VB6 runtime it is still a component of the Windows operating
system and is a component shipped in Windows 8.1. It will be supported
at least through 2024
It seems clear they mean VB6 will be supported through 2024, not just VB6 on Windows 8 (whose mainstream support ends 6 years earlier anyway).
The VB6 programming language installs and runs on Windows 7, 8.x and 10.
There is a utility to install it here: VB6 IDE install utility
It is in Microsoft's interests for VB6 applications to run in Windows 10 and so they probably will. The same is probably true of most old application frameworks: Microsoft works hard to maintain compatibility. The IDE runs on Windows 7 (not sure about 8 or 10).
However, just because Microsoft says VB6 will run it doesn't mean your particular application will work, particularly if you use third party components. You should at least be thinking about migrating to another development environment.
From what I heard, VB6 applications still work on Windows 10 technical preview. I've seen no official statement yet, but it would seem that VB6 will stay supported for at least a few years.
Microsoft have just stated for VB6 programming on Windows 10:-
"Windows is committed to compatibility. The Windows compatibility team
has been looking at user telemetry and reacting to feedback from
Windows Insiders to ensure that existing apps work well with Windows
10. Windows 10 is designed to run Windows 8.1 and Windows Phone 8.1 software programs. And yes, everyone’s favorite VB6 Runtime will
continue to work, too. In the near future, the compat team will go
more in-depth on this topic on Blogging Windows."
Everyone's favorite VB6 programming on Windows 10
So VB6 programming will work on Windows 10, as does VBA programming.
They also state that 'Project Centennial' Universal Windows Platform Bridge will work with VB6 code.
Instructions for installing the VB6 IDE are available here...
In my personal experience if you build a dll in VB6 and add it as a component to COM Plus in Server 2016 it just won't add. You will get an error such as the following, even for a 'Hello World' component.
A registry value was changed while installing the following component
into a COM+ Application. If you are experiencing activation problems
with this component then please check the registry value for the
following key.
Component: C:\temp\Project1.dll
Registry Key:
CLSID\{D5DE8D20-5BB8-11D1-A1E3-00A0C90F2731}\InProcServer32
Process Name: RunDll32.exe Comsvcs.dll file version: not loaded
There is a project to provide a new language "RADBasic" which is intended to be compatible with the VB6 programming language.
New language compatible with VB6 programming
Looks like Microsoft just extended VB6 runtime support out to Windows 11 and Server 2022. No such luck for the IDE though.
Read more from Microsoft here:
https://learn.microsoft.com/en-us/previous-versions/visualstudio/visual-basic-6/visual-basic-6-support-policy

What differences are there learning direct3d11 using the windows sdk as compared to the directx sdk?

One can use direct3d11 through either the windows 8 sdk or the directx sdk? As a learner it isn't clear what effects this choice has. What differences does it make whether one learns directx 11 using windows sdk or directx sdk?
directx sdk ( last was june 2010, three years ago ) is deprecated. Windows 8 kits contains an up to date version of the direct x headers and library.
Basic API and documentation are mostly the same, but recent changes are missing. D3DX is deprecated, maths move to directxmath.h and shader compilation move to d3dcompiler.h
Pix is not working anymore with recent windows, so you have to stick with VSGD shipped with visual 2012, but the PiX replacement is far from really useful in the state it is :( So a better tool is nsight for nvidia, and gpuperfstudio for AMD.
That's it.
For Direct3D 11, the best way to go is to use VS 2012 or VS 2013 with the integrated Windows 8.x SDK and avoid the complexities of using the legacy DirectX SDK (June 2010) at all until you determine you actually really need it (the one compelling case would be XAudio2.7 on Windows Vista or Windows 7 rather than using XAudio 2.8 on Windows 8 or later).
For Windows Store apps on Windows 8.x, there a lot of official tutorials and samples on MSDN and the MSDN Code Gallery for you to learn about Direct3D 11.
For Win32 desktop apps on Windows 7 or Windows 8.x, I've posted a lot of unofficial samples harvested from the legacy DirectX SDK that build just fine with the Windows 8.x SDK. See this blog post for an inventory and links to MSDN Code Gallery.
Many older tutorials and books do indeed assume you are using the now deprecated D3DX library, but for Direct3D 11 there are a lot of options that avoid it as covered here. Some recent books embrace these newer libraries as well.
BTW, I'm assuming from your question that you are asking about programming Direct3D 11 with C++ since that's what the DirectX SDK and the Windows 8.x SDK support. If you are looking for C#, then I suggest looking at SharpDX or SlimDX.

Does Windows 8 Desktop support c++/cli?

I found some information regarding Windows 8 Metro and c++/cli. Windows 8 Metro does not support c++/cli.
However I am having trouble finding explicit documentation that states whether Windows 8 Desktop supports c++/cli (the linked question is not explicit enough IMO). Does Windows 8 Desktop support c++/cli?
Please make sure to provide a link to your relevant source.
Windows 8 does not support C++/CLI.
It is the other way around, the support does not come from the Windows team (they did not ship a compiler) but from the Visual Studio team. Each Visual Studio version has a list of supported platforms that your application can target if you use that version of Visual Studio to build your app.
So does Microsoft support writing C++/CLI apps for Windows 8 Desktop? The answer is yes if you use the right version of Visual Studio*. Does the support come from Windows? The answer is no.
*You can continue test and provide support to your customers even without Microsoft's support to you, for example you can write C++/CLI code in Notepad then compile it using the cl.exe from VS2012 Express for Windows 8. There's really nothing to prevent this use case to work, despite Microsoft's statement that VS2012 Express for Windows 8 does not support desktop development (and I don't think there's any reason why Microsoft should provide support on this use case with VS2012 Express for Windows Desktop out there) .
The Windows 8 Desktop supports everything that Windows 7 supported. C++/cli included. There really isn't much that talks about this, but here is a link to VS 2012 support for C++/cli which implies the same thing.

Which Windows versions have preinstalled MSINET.OCX control

I have an old VB6 application that depends on MSINET.OCX. I'd like to know if I can distribute this application without registering MSINET OCX component. My target OSes are XP, Vista and Windows 7. Do all of them have this component preinstalled?
See if this information from technet helps you. The short of it seems to be that it does not come preinstalled, it is installed when you install an application that uses it. You will need to include it in your installation.
It's not shipping with the OS. It is however delivered with Visual Basic. You must include it within your application setup. For details on Vista and Win7 support see: Support Statement for Visual Basic 6.0 on Windows Vista, Windows Server 2008 and Windows 7

Resources