compress.h

来自「source code of printer under WinCE5.0!」· C头文件 代码 · 共 129 行

H
129
字号
/*++
THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
PARTICULAR PURPOSE.
Copyright (c) 1995-1998  Microsoft Corporation

Module Name:


Abstract:


Functions:




Notes:


--*/


#define PORT_BUF_SIZE   1024


class Port
{
private:
    HANDLE  hPrinter;
    BYTE Buffer[PORT_BUF_SIZE];
    int  nBuffer;

public:
    Port(void);
    ~Port(void);
    HANDLE Open(PWSTR sPort);
    void Close(void);
    BOOL Flush(void);
    BOOL Write(BYTE *buffer, int length);
    BOOL WriteString(char *buffer);
};

class Printer
{
private:
    Port port;
    int  iRow;
	int  dwScroll;

    int  iDotK;
    int  iDotC;
    int  iDotM;
    int  iDotY;

    int  iHueB;
    int  iHueG;

    BOOL fColor;
    BOOL f3Pen;

    // Controlled by AllocateBuffers().
    //
    int  ResolutionPixels;
    int  HeightPixels;
    int  WidthPixels;
    int  WidthOfRasterAreaInBytes;
    int  PaperSize;

    // The following are allocated and de-allocated with AllocateBuffers() and
    // DeallocateBuffers(), respectively.
    //
    BYTE * pScanRow;
    BYTE * pBlackRow;
    BYTE * pPCLData;
    short * pError;

    short * pC;
    short * pY;
    short * pM;
    short * pK;

    short * pEC;
    short * pEY;
    short * pEM;
    short * pEK;

    BYTE * pSC;
    BYTE * pSY;
    BYTE * pSM;
    BYTE * pSK;

    short * pGK;
    short * pGC;
    BYTE  * pGV;

    void DuplicateRows(int Rows);

    BOOL TransferData(BYTE *Data, int length);

    BOOL Diffuse(short * Value, short * Error, BYTE * Scan, BYTE * Mask, int Dot, BYTE * Seed);
	BOOL Reset();
	BOOL LineFeed();
	BOOL FormFeed();
	BOOL FeedSpace(DWORD dwSpace); // UNIT: pixel
	BOOL HorzSpace(DWORD dwSpace); // UNIT: pixel
	BOOL SendCompressData(PBYTE pData, DWORD dwLen);


public:
    BYTE *pColorRow;

    Printer(void);
    HANDLE Open(PWSTR sPort);
    BOOL AllocateBuffers(GDIINFO * pGI, DEVMODE * pDM);

    void NextPage(void);
    void RasterStart(void);
    BOOL ColorRow(BYTE *Row);
    BOOL RasterRow(BYTE * Row);//, BYTE * Seed);

    void DeallocateBuffers(void);
    void Close(void);
    ~Printer(void);
};

extern  Printer printer;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?