Another entry in the very sporadic series of "very strange code I've seen." The code has been changed to protect the guilty, but the essence has been preserved.

class Store
{
public:
    // Retrieve "count" colors from item "itemId" into "values"
    bool GetItemColors(int itemId, int count, COLORREF *values);

    // Set "count" colors from "values" into item "itemId"
    bool SetItemColors(int itemId, int count, const COLORREF *values);
};

bool CopyUpToFourColors(Store *store1, Store *store2, int itemId, int count)
{
    COLORREF size1[1];
    COLORREF size2[2];
    COLORREF size3[3];
    COLORREF size4[4];

    int *buffer = ((count == 1) ? size1 :
                  ((count == 2) ? size2 :
                  ((count == 3) ? size3 :
                  ((count == 4) ? size4 :
                                  nullptr))));

    if (buffer == nullptr)
        return false;

    if (!store1->GetItemColors(itemId, count, buffer))
        return false;

    if (!store2->SetItemColors(itemId, count, buffer))
        return false;

    return true;
}