+int wxPalette::GetPixel( unsigned char cRed,
+                         unsigned char cGreen,
+                         unsigned char cBlue) const
+{
+    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 wxNOT_FOUND;
+
+    //
+    // 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 wxNOT_FOUND;
+    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;
+
+    if (!m_refData)
+        return false;
+
+    if (nIndex < 0 || nIndex > 255)
+        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
+                                        );
+
+    memcpy(&vRGB, &pualTable[nIndex], sizeof(RGB2));
+    *pBlue  = vRGB.bBlue;
+    *pGreen = vRGB.bGreen;
+    *pRed   = vRGB.bRed;
+    return true;
+} // end of wxPalette::GetRGB
+
+void wxPalette::SetHPALETTE(
+  WXHPALETTE                        hPal
+)