COM library for Explorer-like system views - c++

To provide a Windows Explorer-like view of the user's system, we have been using the shell controls from LogicNP (formerly Sky Software), but these have deficiencies, e.g., no support for Win7 libraries. The vendor has not responded to our inquiries about updates, so we're looking to replace the package.
Requirements:
ActiveX (no managed code or MFC)
Tree and list views of the system
Per-item checkboxes
32- and 64-bit versions
Any recommendations for a replacement product?
TIA.

Based on the fact that you said you need to support Windows XP:
I accomplished this by using the Shell API to enumerate files & folders and then I used custom drawing to draw the correct icons for each shell item in a standard listview control. It was a fair bit of work and I don't know exactly what you need your shell view to accomplish, but this may be the best option.
This might be a good place to start reading:
http://msdn.microsoft.com/en-us/library/bb776889.aspx

Related

Report Builder that integrates with MFC

I have to create something similar to Report Builder and SSRS or Open RPT but for a MFC application.
The idea is to be able to create and edit a template for reports that have to be printed afterwards. I am not confined to using MFC (I am allowed to use C#, QT, etc..), but whatever I use, it has to integrate in a MFC document application and be able to do drag and drop/resize and edit of containers (for example tables, image containers, etc).
There are some options that I considered (but they all seem overkill):
XPS, it allows for easy printing but it does not allow for editing/drag and drop.
DirectDraw, but this seems like a lot of work and I do not know if/how the printing functionality can be implemented.
QGraphicsView from QT, but I am afraid of the complications that can arise because of the integration part.
Are there any components that I can use? It does not have to be free (but that would be nice), but I should be able to integrate it in my application without installing additional software on the clients machine.
Note: I use MFC9 with Visual Studio 2010. And the target PCs have Windows 7 and Windows 8 installed.
All major components vendors have this kind of control in a way or another, my personal choice is DevExpress, but you can also look at Telerik, Syncfusion and others, just be sure that the Report Designer component can be redistributed to your end users.

Dynamically arrange application windows on top of each other in linux

I want to dynamically using a bash script/c++ code arrange windows that are present on the desktop on top of each other .I know the name of the applications whose windows will be present on the gnome desktop.
Is there any way to achieve this ?
Take a look at Devil's Pie. This is a window-matching utility that was especially written for the Metacity window manager, IIRC. It allows you to execute custom actions for certain types of windows. In your case, you could simply match all windows and set their respective positions/geometries (I don't know the manual of Devil's Pie by heart, but I am pretty sure that it can do this).
There's also a successor, called Devil's Pie 2, which uses Lua-based rules. However, I don't have any further information about it.

How to Skin an Win32 Application

Win32 look nasty, how to make it look better by custom skins?
I mean something like Adobe products, iTunes, Autodesk 3dsmax and Softimage XSI, Windows media player, Blender, Comodo firewall, Winamp, Babylon client, and few download managers etc.;
there are many similar applications out there but I can't find any proper tutorial or guideline, it looks like secret recipe!
only -two- tutorials available online:
old and useless: http://www.codeproject.com/Articles/20497/Draw-Skin-Window-Using-Pure-Win32-API
only cover opaque background (and this is what I avoid, I need more about GUI components):
http://www.flipcode.com/archives/Win32_Window_Skinning.shtml
Is there any book or proper guideline to learn how to build skins for Win32api?
Edit: I accept David Rodríguez comment, down there ↓↓
I have done this before using C++ Builder. The approach I took was to create a form, set it to be borderless and color the entire form the same color. Then I set the form transparency to this color. I then add images to the form which create the desired skin.
I'm sure this can all be done through standard win APIs, but I can't describe (or advise) doing it solely through API calls.
The operating system handles "skinning" for you automatically.
In "classic" mode (or Windows 2000 and earlier versions), this gets you a, well classic-looking interface. The windows are drawn just like they always were since Windows 95. Presumably, this is what you are referring to when you say that "Win32 look nasty". However, you need to realize that many people like this look and specifically choose to enable it on their machines. [WARNING: Personal opinion coming up!] I'm one of those people, and judging from the screenshots that get posted here from developers' machines, I'm definitely not the only one.
Windows XP actually introducing the "skinning" or theming engine, which lives in a set of Windows DLLs. By explicitly linking to version 6 of ComCtl32.dll, your application would automatically get these visual effects. Some people said this version of Windows looked "Fisher-Price", while others were perfectly happy with the term "gaudy". The option was retained to allow the user to switch to the "classic" theme (as described above), if desired.
Windows Vista completely overhauled Windows's theming engine and introduced a new UI known as "Aero". This provides flashy-looking windows and controls, complete with transparency effects—that is, as long as your graphics card supports it. Again, by explicitly linking to version 6 of ComCtl32.dll, your application would automatically get all of these styles applied.
It's worth noting that through all of this, Microsoft has provided users with the ability to customize the colors (and fonts and other things) used in the user interface. For example, Aero defaults to blue. If you don't like blue, you can change it. I change my UI colors periodically for fun and to re-energize myself. If you can't read or don't like the font, you change it, too.
Thus, if you choose to do something different with your application, defining your own custom color palette and ignoring the options chosen by the user through the provided customization interface, your app is going to look broken and stick out like a sore thumb on the user's desktop. When designing a UI, the last thing you want to do is to be or look different.
In short, upgrade your computer to Windows Vista or later and enable the Aero interface if you want flashy. Don't override the user or try to custom draw all of your controls. You'll just end up with an application that is hard to use, doesn't work as expected, is a pain in the rear to maintain, and just generally looks worse than if you'd simply left it alone.

Fonts in a multi-platform environment

What is the best way to deal with fonts in a multi-platform distributed system? If I want to use a common font across all systems to show to the user, what's the best way to do this. From the little I've been reading each platform looks to have fonts that are of the same family (ie serif, sans-serif) but with different names. CSS looks to have the functionality baked in where it will make the best selection it can of font on the users machine. Is there similar functionality either in system libraries or external libraries for Windows & Linux. I'm using C++ mainly?
Can someone point me in the right direction for documentation as well?
Thanks
fontconfig is a cross-platform library for finding fonts by either direct name (Times Roman) or common aliases like serif - it's what most modern Linux software, like the GNOME & KDE desktops, use to find fonts, and is used in conjunction with libraries like Pango for text layout and FreeType for font rasterizing.
I'd try Pango. AFAIK it is used by GTK+, Mozilla and Google Chrome (not sure about the latter).

File preview component (C++/MFC)

Is anyone aware of a good, general purpose file preview component for MFC/C++ desktop applications?
Specifically, I'm looking for a component that I could embed in my application that would allow a broad range of file types (text files, multimedia, etc.) to be previewed without the need for original applications (such as MS Word, etc.) to be installed.
I could only find one, via Google:
http://www.file-viewer-sdk.com/
Unfortunately, these folks want $60k for unlimited redistribution, which is outside of our budget.
Anyone have any recommendations? If not a component, is anyone using another general-purpose strategy that works well for them?
You can write your own shell preview host once you know the interfaces.
You might want to check out Autovue, originally made by Cimmetry since acquired by Oracle
.
Our product makes limited use of their SDK to do some document conversions (Mostly RTF->PS) and that works well enough for us.