Skip to main content.

Archives

This is the archive for March 2005

WiX Tutorial

The Windows Installer XML (WiX) is a toolset that builds Windows installation packages from XML source code. The toolset provides a command line environment that developers may integrate into their build processes to build MSI and MSM setup packages.

WiX Tutorial

Color Scheme Generator and Fade Anything Technique


CMainFrame and CLayoutMgrBase<>

When your mainframe class inherit from both CFrameWindowImpl<> and CLayoutMgrBase<>, you need to handle the resize of the window a little bit differently than when using a standard CWindowImpl<> class. You need to override the default CFrameWindowImpl<>::UpdateLayout() and CLayoutMgrBase<>::GetRect().


class CMainFrame :
...,
public CFrameWindowImpl<CMainFrame>,
public CLayoutMgrBase<CMainFrame>
{
...

void UpdateLayout(BOOL bResizeBars = TRUE)
{
RECT rect = { 0 };
GetClientRect(&rect);

// position bars and offset their dimensions
UpdateBarsPosition(rect, bResizeBars);

// resize client window
CLayoutMgrBase<CMainFrame>::UpdateLayout();
}

CRect GetRect()
{
RECT rect = { 0 };
GetClientRect(&rect);

// position bars and offset their dimensions
UpdateBarsPosition(rect, FALSE);
return rect;
}

};

Movie Library Project

My latest hobby project is a personal library management software. I’ve named this project Movie Library. The goal of this project is to allow me to search and retrieve the DVDs and books that are lying everywhere in the apartment.

The software is already able to perform the following features:

  • Add items manually by entering the EAN, UPC, ISBN or ASIN code.

  • Add items automatically by scanning the item barcode using a webcam. This is really a great feature as I was able to enter my whole book collection (>100 items) in a few minutes.

  • Retrieve information about an item automatically using Amazon.com web service. This is very cool as I’m able to search items through the whole library without having to enter a single word about an item.

  • Query all Amazon websites for international support (useful for Europe where you can import DVDs from multiple regions.)

  • Display items as you type to dynamically see the result of the search.

  • Allow the user to specify the area of the picture to use (useful if the data provider did not scan the cover appropriately.)

  • Display details (and review), technical information and related items for the selected item.

  • Display categories automatically to let the user navigate through the whole library easily.


  • Here is a current screenshot of the user interface:
    Movie Library User Interface
    (Click to zoom)

    A great point about the current state of the application is that you are able to create a library of hundred items in a few minutes and collect all the information related to every item automatically. You don’t have to type a single word to fill the library.

    I've got some issues with managing the categories (BrowseNode) returned by Amazon.com as the set of categories changes from site to site and are not well documented (at least I did not find the doc for it.) This may be an issue as I'm not sure of the flexibility I would like to provide to the user to manage the content of the library.
    Also the application requires an Internet connection to be useable (a least when adding new item.)

    The user interface in the actual implementation has largely been copied from the excellent Delicious Library by Delicious Monster. It's a shame that it is impossible to create the same kind of beautiful user interface under Windows.

    More to come.

Some links

Knowledge Base
Events Fail in ATL with Enum
FIX: Events Fail in ATL Containers when Enum Used as Event Parameter
Computer Graphics
Computer Graphics
Apple Motion .Net Info about Apple Motion
Creative Cow
Article about Apple Motion
Digital Animators
Great tutorials (Apple Motion, etc.)
Hardware
http://www.cosmicreactor.com/index.php?id=46
Lots of information about Hauppauge products
Software Development
WiX toolset
The Windows Installer XML (WiX) is a toolset that builds Windows installation packages from XML source code. The toolset supports a command line environment that developers may integrate into their build processes to build MSI and MSM setup packages.
http://www.cosmicreactor.com/index.php?id=43
Windows Template Library (WTL) is a C++ library for developing Windows applications and UI components. It extends ATL (Active Template Library) and provides a set of classes for controls, dialogs, frame windows, GDI objects, and more.
Doxygen
Doxygen is a documentation system for C++, C, Java, Objective-C, IDL (Corba and Microsoft flavors) a
Crypto++ Library
Crypto++ Library is a free C++ class library of cryptographic schemes. Currently the library consists of the following, some of which are other people's code, repackaged into classes.
WTL Docking Windows
WTL Docking Windows
Scintilla
A free source code editing component for Win32 and GTK+
WTL Tabbing Framework
WTL Tabbing Framework
http://www.cosmicreactor.com/index.php?id=36
WTL@microsoft
viksoe.dk
WTL and lot more
Code Guru
Code Guru
Code Project
Code Project
MSDN
Microsoft Software Developer Network

Removing IntelliTxt Ad

To remove the IntelliTxt craps that started to appears on some sites, just look at the source code of the page where the ads appear and block access to the ad domain by editing the windows/system32/drivers/etc/hosts file.

Here is my current list:

0.0.0.0 itxt.vibrantmedia.com
0.0.0.0 www.vibrantmedia.com
0.0.0.0 vibrantmedia.com
0.0.0.0 intellitxt.com
0.0.0.0 toms.us.intellitxt.com
0.0.0.0 lmcd.us.intellitxt.com
0.0.0.0 itxt2.us.intellitxt.com
0.0.0.0 mediaplex.com
0.0.0.0 atdmt.com
0.0.0.0 ad.doubleclick.net
0.0.0.0 hitbox.com
0.0.0.0 penton.us.intellitxt.com
0.0.0.0 an.tacoda.net
0.0.0.0 a.windowsitpro.com
0.0.0.0 www.ad.tomshardware.com
0.0.0.0 ads.neowin.net
0.0.0.0 www.google-analytics.com
0.0.0.0 pagead2.googlesyndication.com

High Definition and the future of viewing

The Register put an interesting review of HDTV online. Check it out here.

Welcome to Cosmic Reactor

New year, new skin, new cms. Moved to Nucleus. More to come, keep coming back.

Pascal