I have written a component called RGBMixer that can do what you need. It shows a dialog box in which the user can select from 3 different palettes to select a color from. They can also mix the color together from the three sliders that represent the RGB colors. See the screen shot.
Here's an example how you use it.
VB Code:
Dim color As RGBMixer.CRGBMixer
Set color = New RGBMixer.CRGBMixer
With color
.Palette = eWebSafe
.Format = eVBHex
If .ShowDialog = eOK Then
MsgBox "The select format for the color value " & .color & _
" is " & .Value
End If
End With
The CRGBMixer class has 4 properties and 1 method. The properties are:
Color - The selected color in decimal format. (Read-Only)
Format - The format the user has selected. There are 11 different formats to pick from.
Palette - The palette that should be shown by default.
Value - String value that represents the selected color in the selected format (Read-Only).
The only method is ShowDialog that returns either eOK or eCancel depending on which button the user has clicked in the dialog box.
It's not so much that Windows is stupid but that the Intel processor architecture use little endian by default. This means that the low-order byte is stored in the memory with the lowest address.
Well, DirectX is made for Windows so that doesn't surprise me. However some applications and file format might use big endian even if they exist for Windows.
Photoshop for example is big endian, but then again Photoshop was first developed for Mac which use Motorola processors which use big endian. BMP and GIF are little endians so both these image formats store color information in BGR format in memory. JPEG on the other hand is big endian. Other image formats that use little endians are PCX and TGA.
Some image formats like for example TIFF and XWD use both little and big endians. They then have identifiers encoded into the file which specify which of the formats that is used.
WPG (WordPerfect Graphics Metafiles) are big endians even though WordPerfect was first written for PC's.
I believe that would be the High Integer and Low Integer values of something. It's also used in the QueryPerformanceCounter and QueryPerformanceFrequency API's