Hi all, long time no see-

I'm developing a li'l app for advanced SodaConstructing (don't worry if you don't know the term, its not vital), and I've come to a point where I want to draw all my lines antialiased. So, I had a play with GDI+ to draw my lines, but it seems to have a major limitation as far as antialiasing goes. The Graphics::SetSmoothingMode method takes an item from the SmoothingMode enum as a parameter. The contents of the SmoothingMode enum as documented are as follows:

Code:
typedef enum {
    SmoothingModeInvalid = QualityModeInvalid,
    SmoothingModeDefault = QualityModeDefault,
    SmoothingModeHighSpeed = QualityModeLow,
    SmoothingModeHighQuality = QualityModeHigh,
    SmoothingModeNone,
    SmoothingModeAntiAlias8x4,
    SmoothingModeAntiAlias = SmoothingModeAntiAlias8x4,
    SmoothingModeAntiAlias8x8
} SmoothingMode;
However, this is not how it is defined in GdiPlusEnums.h:

Code:
enum SmoothingMode
{
    SmoothingModeInvalid     = QualityModeInvalid,
    SmoothingModeDefault     = QualityModeDefault,
    SmoothingModeHighSpeed   = QualityModeLow,
    SmoothingModeHighQuality = QualityModeHigh,
    SmoothingModeNone,
    SmoothingModeAntiAlias
};
...which leaves me unable to use an 8x8 box filter for my antialiasing, instead limiting me to an 8x4 box filter (SmoothingModeAntiAlias) which draws horrible lines when they are close to horizontal.

Does this mean that this part of the GDI+ library is incomplete at this stage, or was it just never implemented? It seems odd to me that they'd document something which would (i presume) be so simple to implement, but never include it in the actual library...

Does anybody...
a: ...know a workaround (or tell me the stupid mistake i'm making ) to get 8x8 box filter antialiasing using GDI+?
b: ...know why this apparent limitation exists in GDI+?
c: ...know a good method, third party library or any other way to get antialiased lines without GDI+?

Thanks all for your time!
-jEFF