void receive(Stream & stream, const RDPPrimaryOrderHeader & header)
    {
        using namespace RDP;

        header.receive_rect(stream, 0x01, this->rect);

        if (header.fields & 0x10) {
            this->rop = stream.in_uint8();
        }

        header.receive_src(stream, 0x20, this->srcx, this->srcy);
    }
    void receive(Stream & stream, const RDPPrimaryOrderHeader & header)
    {
        using namespace RDP;

        if (header.fields & 0x01) {
            this->cache_id = stream.in_uint16_le();
        }

        header.receive_rect(stream, 0x02, this->rect);

        if (header.fields & 0x20) {
            this->rop = stream.in_uint8();
        }

        header.receive_src(stream, 0x40, this->srcx, this->srcy);

        if (header.fields & 0x100) {
            this->cache_idx = stream.in_uint16_le();
        }
    }