+ bool bFound = FALSE;
+ PULONG pualTable = NULL;
+ ULONG ulNumEntries;
+ ULONG ulRGB = (PC_RESERVED * 16777216) +
+ ((int)cRed * 65536) +
+ ((int)cGreen * 256) +
+ (int)cBlue;
+
+ if (!m_refData)
+ return FALSE;
+
+ //
+ // Get number of entries first
+ //
+ ulNumEntries = ::GpiQueryPaletteInfo( M_PALETTEDATA->m_hPalette
+ ,M_PALETTEDATA->m_hPS
+ ,0 // No options
+ ,0 // No start index
+ ,0 // Force return of number entries
+ ,NULL // No array
+ );
+
+ pualTable = new ULONG[ulNumEntries];
+
+ //
+ // Now get the entries
+ //
+ ulNumEntries = ::GpiQueryPaletteInfo( M_PALETTEDATA->m_hPalette
+ ,M_PALETTEDATA->m_hPS
+ ,0 // No options
+ ,0 // start at 0
+ ,ulNumEntries // Force return of number entries
+ ,pualTable // Palette entry array with RGB values
+ );
+ //
+ // Now loop through and find the matching entry
+ //
+ ULONG i;
+ for (i = 0; i < ulNumEntries; i++)
+ {
+ if (pualTable[i] == ulRGB)
+ {
+ bFound = TRUE;
+ break;
+ }
+ }
+ if (!bFound)
+ return 0;
+ return (i + 1);
+} // end of wxPalette::GetPixel
+
+bool wxPalette::GetRGB(
+ int nIndex
+, unsigned char* pRed
+, unsigned char* pGreen
+, unsigned char* pBlue
+) const
+{
+ PULONG pualTable = NULL;
+ RGB2 vRGB;
+ ULONG ulNumEntries;