⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 intrface.h

📁 win2000打印机驱动代码
💻 H
字号:
/*
 * @file uni/intrface.h
 *
 * W2kPrintDrvSample
 *
 * Copyright (C) 2004, terrificskyfox <terrificskyfox@yahoo.com.cn>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

#ifndef _INTERFACE_H
#define _INTERFACE_H


/*
 *  IOEMUni
 */
class IOEMUni : public IPrintOemUni
{
public:
    // *** IUnknown methods ***
    STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj);
    STDMETHOD_(ULONG,AddRef)  (THIS);
    STDMETHOD_(ULONG,Release) (THIS);


	// *** Implemented methods ***

    STDMETHOD(DevMode) (THIS_ 
			DWORD       dwMode,
			POEMDMPARAM pOemDMParam
			);

	STDMETHOD(DisableDriver) (THIS);

    STDMETHOD(DisablePDEV) (THIS_
			PDEVOBJ         pdevobj
			);

    STDMETHOD(DriverDMS) (THIS_
			PVOID   pDevObj,
			PVOID   pBuffer,
			DWORD   cbSize,
			PDWORD  pcbNeeded
			);

	STDMETHOD(EnableDriver) (THIS_
			DWORD           DriverVersion,
			DWORD           cbSize,
			PDRVENABLEDATA  pded
			);

    STDMETHOD(EnablePDEV) (THIS_
			PDEVOBJ         pdevobj,
			PWSTR           pPrinterName,
			ULONG           cPatterns,
			HSURF          *phsurfPatterns,
			ULONG           cjGdiInfo,
			GDIINFO        *pGdiInfo,
			ULONG           cjDevInfo,
			DEVINFO        *pDevInfo,
			DRVENABLEDATA  *pded,
			OUT PDEVOEM    *pDevOem
			);

	STDMETHOD(GetImplementedMethod) (THIS_
			PSTR pMethodName
			);

    STDMETHOD(GetInfo) (THIS_
			DWORD   dwMode,
			PVOID   pBuffer,
			DWORD   cbSize,
			PDWORD  pcbNeeded
			);

    STDMETHOD(ImageProcessing) (THIS_ 
			PDEVOBJ             pdevobj,
			PBYTE               pSrcBitmap,
			PBITMAPINFOHEADER   pBitmapInfoHeader,
			PBYTE               pColorTable,
			DWORD               dwCallbackID,
			PIPPARAMS           pIPParams,
			OUT PBYTE           *ppbResult
			);

	STDMETHOD(PublishDriverInterface) (THIS_
			IUnknown *pIUnknown
			);

    STDMETHOD(ResetPDEV) (THIS_
			PDEVOBJ        pdevobjOld,
			PDEVOBJ        pdevobjNew
			);


	// *** NOT implemented methods ***

    STDMETHOD(CommandCallback) (THIS_
			PDEVOBJ     pdevobj,
			DWORD       dwCallbackID,
			DWORD       dwCount,
			PDWORD      pdwParams,
			OUT INT     *piResult
			);

    STDMETHOD(Compression) (THIS_
			PDEVOBJ     pdevobj,
			PBYTE       pInBuf,
			PBYTE       pOutBuf,
			DWORD       dwInLen,
			DWORD       dwOutLen,
			OUT INT     *piResult
			);

    STDMETHOD(DownloadCharGlyph) (THIS_
			PDEVOBJ     pdevobj,
			PUNIFONTOBJ pUFObj,
			HGLYPH      hGlyph,
			PDWORD      pdwWidth,
			OUT DWORD   *pdwResult
			);

    STDMETHOD(DownloadFontHeader) (THIS_
			PDEVOBJ     pdevobj,
			PUNIFONTOBJ pUFObj,
			OUT DWORD   *pdwResult
			);

    STDMETHOD(FilterGraphics) (THIS_
			PDEVOBJ     pdevobj,
			PBYTE       pBuf,
			DWORD       dwLen
			);

    STDMETHOD(HalftonePattern) (THIS_
			PDEVOBJ     pdevobj,
			PBYTE       pHTPattern,
			DWORD       dwHTPatternX,
			DWORD       dwHTPatternY,
			DWORD       dwHTNumPatterns,
			DWORD       dwCallbackID,
			PBYTE       pResource,
			DWORD       dwResourceSize
			);

    STDMETHOD(MemoryUsage) (THIS_
			PDEVOBJ         pdevobj,
			POEMMEMORYUSAGE pMemoryUsage
			);

    STDMETHOD(OutputCharStr) (THIS_
			PDEVOBJ     pdevobj,
			PUNIFONTOBJ pUFObj,
			DWORD       dwType,
			DWORD       dwCount,
			PVOID       pGlyph
			);

    STDMETHOD(SendFontCmd) (THIS_
			PDEVOBJ      pdevobj,
			PUNIFONTOBJ  pUFObj,
			PFINVOCATION pFInv
			);

    STDMETHOD(TextOutAsBitmap)(THIS_
			SURFOBJ    *pso,
			STROBJ     *pstro,
			FONTOBJ    *pfo,
			CLIPOBJ    *pco,
			RECTL      *prclExtra,
			RECTL      *prclOpaque,
			BRUSHOBJ   *pboFore,
			BRUSHOBJ   *pboOpaque,
			POINTL     *pptlOrg,
			MIX         mix
			);

    STDMETHOD(TTDownloadMethod) (THIS_
			PDEVOBJ     pdevobj,
			PUNIFONTOBJ pUFObj,
			OUT DWORD   *pdwResult
			);

    STDMETHOD(TTYGetInfo) (THIS_
			PDEVOBJ     pdevobj,
			DWORD       dwInfoIndex,
			PVOID       pOutputBuf,
			DWORD       dwSize,
			DWORD       *pcbcNeeded
			);

    
    IOEMUni() { m_cRef = 1; m_pOEMHelp = NULL; };
    ~IOEMUni();

protected:
    LONG                m_cRef;
    IPrintOemDriverUni* m_pOEMHelp;
};


#endif // !_INTERFACE_H

⌨️ 快捷键说明

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