亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? intrface.cpp

?? win2000打印機驅動代碼
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/*
 * Function: IOEMUni::ResetPDEV
 *
 * Purpose: Reset PDEV structure.
 *
 * Return: HRESULT
 */
HRESULT __stdcall IOEMUni::ResetPDEV(
	PDEVOBJ        pdevobjOld,
	PDEVOBJ        pdevobjNew)
{
	TERSE(UNITEXT("IOEMUni::ResetPDEV() entry.\r\n"));

	BOOL bResult = OEMResetPDEV(pdevobjOld, pdevobjNew);

	return (bResult ? S_OK : E_FAIL);
}


// *** NOT implemented methods ***

/*
 * Function: IOEMUni::CommandCallback
 *
 * Purpose: Dynamically generate printer commands for printers.
 *
 * Return: HRESULT
 */
HRESULT __stdcall IOEMUni::CommandCallback(
    PDEVOBJ     pdevobj,
    DWORD       dwCallbackID,
    DWORD       dwCount,
    PDWORD      pdwParams,
    OUT INT     *piResult)
{
	VERBOSE(UNITEXT("IOEMUni::CommandCallback() entry.\r\n"));

	return E_NOTIMPL;
}

/*
 * Function: IOEMUni::Compression
 *
 * Purpose: Provide a customized bitmap compression method.
 *
 * Return: HRESULT
 */
HRESULT __stdcall IOEMUni::Compression(
    PDEVOBJ     pdevobj,
    PBYTE       pInBuf,
    PBYTE       pOutBuf,
    DWORD       dwInLen,
    DWORD       dwOutLen,
    OUT INT     *piResult)
{
	VERBOSE(UNITEXT("IOEMUni::Compression() entry.\r\n"));

	return E_NOTIMPL;
}

/*
 * Function: IOEMUni::DownloadCharGlyph
 *
 * Purpose: Send a character glyph for a specified soft font to the printer.
 *
 * Return: HRESULT
 */
HRESULT __stdcall IOEMUni::DownloadCharGlyph(
    PDEVOBJ     pdevobj,
    PUNIFONTOBJ pUFObj,
    HGLYPH      hGlyph,
    PDWORD      pdwWidth,
    OUT DWORD   *pdwResult) 
{
	VERBOSE(UNITEXT("IOEMUni::DownloadCharGlyph() entry.\r\n"));

	return E_NOTIMPL;
}

/*
 * Function: IOEMUni::DownloadFontHeader
 *
 * Purpose: Send a font's header information to printer.
 *
 * Return: HRESULT
 */
HRESULT __stdcall IOEMUni::DownloadFontHeader(
    PDEVOBJ     pdevobj,
    PUNIFONTOBJ pUFObj,
    OUT DWORD   *pdwResult) 
{
	VERBOSE(UNITEXT("IOEMUni::DownloadFontHeader() entry.\r\n"));

	return E_NOTIMPL;
}

/*
 * Function: IOEMUni::FilterGraphics
 *
 * Purpose: Modify scan line data and send it to the spooler.
 *
 * Return: HRESULT
 */
HRESULT __stdcall IOEMUni::FilterGraphics(
    PDEVOBJ     pdevobj,
    PBYTE       pBuf,
    DWORD       dwLen)
{
	VERBOSE(UNITEXT("IOEMUni::FilterGraphis() entry.\r\n"));

	return E_NOTIMPL;
}

/*
 * Function: IOEMUni::HalftonePattern
 *
 * Purpose: Create or modify a halftone pattern before it is used in
 *		   a halftoning operation.
 *
 * Return: HRESULT
 */
HRESULT __stdcall IOEMUni::HalftonePattern(
    PDEVOBJ     pdevobj,
    PBYTE       pHTPattern,
    DWORD       dwHTPatternX,
    DWORD       dwHTPatternY,
    DWORD       dwHTNumPatterns,
    DWORD       dwCallbackID,
    PBYTE       pResource,
    DWORD       dwResourceSize)
{
	VERBOSE(UNITEXT("IOEMUni::HalftonePattern() entry.\r\n"));

	return E_NOTIMPL;
}

/*
 * Function: IOEMUni::MemoryUsage
 *
 * Purpose: Specify the amount of memory required for use by
 *		    IPrintOemUni::ImageProcessing method.
 *
 * Return: HRESULT
 */
HRESULT __stdcall IOEMUni::MemoryUsage(
    PDEVOBJ         pdevobj,
    POEMMEMORYUSAGE pMemoryUsage)
{
	VERBOSE(UNITEXT("IOEMUni::MemoryUsage() entry.\r\n"));

	return E_NOTIMPL;
}

/*
 * Function: IOEMUni::OutputCharStr
 *
 * Purpose: Control the printing of font glyphs.
 *
 * Return: HRESULT
 */
HRESULT __stdcall IOEMUni::OutputCharStr(
    PDEVOBJ     pdevobj,
    PUNIFONTOBJ pUFObj,
    DWORD       dwType,
    DWORD       dwCount,
    PVOID       pGlyph) 
{
	VERBOSE(UNITEXT("IOEMUni::OutputCharStr() entry.\r\n"));

	return E_NOTIMPL;
}

/*
 * Function: IOEMUni::SendFontCmd
 *
 * Purpose: Modify font selection command and then send it to printer.
 *
 * Return: HRESULT
 */
HRESULT __stdcall IOEMUni::SendFontCmd(
    PDEVOBJ      pdevobj,
    PUNIFONTOBJ  pUFObj,
    PFINVOCATION pFInv) 
{
	VERBOSE(UNITEXT("IOEMUni::SendFontCmd() entry.\r\n"));

	return E_NOTIMPL;
}

/*
 * Function: IOEMUni::TextOutAsBitmap
 *
 * Purpose: Create a bitmap image of a text string, in case a downloadable
 *		    font is not available.
 *
 * Return: HRESULT
 */
HRESULT __stdcall IOEMUni::TextOutAsBitmap(
    SURFOBJ    *pso,
    STROBJ     *NAME_o,
    FONTOBJ    *pfo,
    CLIPOBJ    *pco,
    RECTL      *prclExtra,
    RECTL      *prclOpaque,
    BRUSHOBJ   *pboFore,
    BRUSHOBJ   *pboOpaque,
    POINTL     *pptlOrg,
    MIX         mix)
{
	VERBOSE(UNITEXT("IOEMUni::TextOutAsBitmap() entry.\r\n"));

	return E_NOTIMPL;
}

/*
 * Function: IOEMUni::TTDownloadMethod
 *
 * Purpose: Indicate the format that Unidrv should use for a specified
 *		    TrueType soft font.
 *
 * Return: HRESULT
 */
HRESULT __stdcall IOEMUni::TTDownloadMethod(
    PDEVOBJ     pdevobj,
    PUNIFONTOBJ pUFObj,
    OUT DWORD   *pdwResult) 
{
	VERBOSE(UNITEXT("IOEMUni::TTDownloadMethod() entry.\r\n"));

	return E_NOTIMPL;
}

/*
 * Function: IOEMUni::TTYGetInfo
 *
 * Purpose: Supply Unidrv with information relevant to text-only printers.
 *
 * Return: HRESULT
 */
HRESULT __stdcall IOEMUni::TTYGetInfo(
    PDEVOBJ     pdevobj,
    DWORD       dwInfoIndex,
    PVOID       pOutputBuf,
    DWORD       dwSize,
    DWORD       *pcbcNeeded)
{
	VERBOSE(UNITEXT("IOEMUni::TTYGetInfo() entry.\r\n"));

	return E_NOTIMPL;
}


/*
 *  OEM class factory
 */
class IOEMCF : public IClassFactory
{
public:
    // *** IUnknown methods ***
    STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj);
    STDMETHOD_(ULONG,AddRef)  (THIS);
    STDMETHOD_(ULONG,Release) (THIS);
   
    // *** IClassFactory methods ***
    STDMETHOD(CreateInstance) (THIS_
			LPUNKNOWN pUnkOuter,
			REFIID riid,
			LPVOID FAR* ppvObject
			);

    STDMETHOD(LockServer)     (THIS_
			BOOL bLock
			);


    // Constructor
    IOEMCF(): m_cRef(1) { };
    ~IOEMCF() { };

protected:
    LONG m_cRef;
};


/*
 * Class factory implementation
 */

/*
 * Function: IOEMCF::QueryInterface
 *
 * Purpose: 
 *
 * Return: HRESULT
 */
HRESULT __stdcall IOEMCF::QueryInterface(const IID& iid, void** ppv)
{
	VERBOSE(UNITEXT("IOEMCF::QueryInterface entry.\r\n"));

    if((iid == IID_IUnknown) || (iid == IID_IClassFactory))
    {
        *ppv = static_cast<IOEMCF*>(this); 
    }
    else
    {
        *ppv = NULL;
        return E_NOINTERFACE;
    }
    reinterpret_cast<IUnknown*>(*ppv)->AddRef();
    return S_OK;
}

/*
 * Function: IOEMCF::AddRef
 *
 * Purpose: Lifetime management.
 *
 * Return: ULONG
 */
ULONG __stdcall IOEMCF::AddRef()
{
	VERBOSE(UNITEXT("IOEMCF::AddRef entry.\r\n"));

    return InterlockedIncrement(&m_cRef);
}

/*
 * Function: IOEMCF::Release
 *
 * Purpose: Lifetime management.
 *
 * Return: ULONG
 */
ULONG __stdcall IOEMCF::Release() 
{
	VERBOSE(UNITEXT("IOEMCF::Release entry.\r\n"));

    if(InterlockedDecrement(&m_cRef) == 0)
    {
        delete this;
        return 0;
    }

    return m_cRef;
}

/*
 * Function: IOEMCF::CreateInstance
 *
 * Purpose: 
 *
 * Return: HRESULT
 */
HRESULT __stdcall IOEMCF::CreateInstance(
	IUnknown* pUnknownOuter,
	const IID& iid,
	void** ppv) 
{
	VERBOSE(UNITEXT("IOEMCF::CreateInstance entry.\r\n"));

    // cannot aggregate
    if(pUnknownOuter != NULL)
        return CLASS_E_NOAGGREGATION;

    // create component
    IOEMUni* pOEMUni = new IOEMUni;
    if(pOEMUni == NULL)
        return E_OUTOFMEMORY;

    // get the requested interface
    HRESULT hr = pOEMUni->QueryInterface(iid, ppv);

    // release the IUnknown pointer
    // (If QueryInterface failed, component will delete itself.)
    pOEMUni->Release();
    return hr;
}

/*
 * Function: IOEMCF::LockServer
 *
 * Purpose: 
 *
 * Return: HRESULT
 */
HRESULT __stdcall IOEMCF::LockServer(
	BOOL bLock) 
{
	VERBOSE(UNITEXT("IOEMCF::LockServer entry.\r\n"));

    if(bLock)
        InterlockedIncrement(&g_cServerLocks); 
    else
        InterlockedDecrement(&g_cServerLocks);

    return S_OK;
}


/*
 *  Registration functions
 */

/*
 * Function: IOEMCF::DllCanUnloadNow
 *
 * Purpose: Can DLL unload now?
 *
 * Return: 
 */
STDAPI DllCanUnloadNow()
{
    VERBOSE(UNITEXT("DllCanUnloadNow entry.\r\n"));

    if((g_cComponents == 0) && (g_cServerLocks == 0))
        return S_OK;
    else
        return S_FALSE;
}

/*
 * Function: IOEMCF::DllGetClassObject
 *
 * Purpose: Get class factory.
 *
 * Return: 
 */
STDAPI DllGetClassObject(
	const CLSID& clsid,
	const IID& iid,
	void** ppv)
{
    VERBOSE(UNITEXT("DllGetClassObject: Create class factory.\r\n"));

    // can we create this component?
    if(clsid != CLSID_OEMRENDER)
        return CLASS_E_CLASSNOTAVAILABLE;

    // create class factory
    IOEMCF* pOEMCF = new IOEMCF;  // reference count set to 1 in constructor
    if(pOEMCF == NULL)
        return E_OUTOFMEMORY;

    // get requested interface
    HRESULT hr = pOEMCF->QueryInterface(iid, ppv);
    pOEMCF->Release();

    return hr;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美另类小说视频| 性做久久久久久久免费看| 亚洲自拍欧美精品| 国产99久久久国产精品免费看| 91视频观看免费| 欧美激情一二三区| 久久激情综合网| 欧美日本一区二区| 亚洲精品第1页| 成人av网站在线| 国产欧美一区二区在线| 蜜桃视频一区二区| 欧美日韩亚洲不卡| 一区二区三区国产精品| av不卡在线观看| 中文字幕在线观看不卡视频| 国模一区二区三区白浆| 日韩欧美在线123| 天堂久久一区二区三区| 一本色道亚洲精品aⅴ| 国产精品盗摄一区二区三区| 国产99精品视频| 国产精品女上位| 东方欧美亚洲色图在线| 国产拍欧美日韩视频二区| 国产精品 欧美精品| 久久久久久亚洲综合| 黄色日韩三级电影| 久久综合久久综合亚洲| 国产乱对白刺激视频不卡| 精品成人在线观看| 国产伦理精品不卡| 久久美女艺术照精彩视频福利播放| 韩国精品主播一区二区在线观看| 欧美大片国产精品| 国产麻豆午夜三级精品| 久久精品夜色噜噜亚洲aⅴ| 国产高清久久久久| 国产精品久久久久久一区二区三区 | 欧美精品黑人性xxxx| 一区二区三区欧美日| 欧美三级日韩三级国产三级| 天堂av在线一区| 26uuu久久天堂性欧美| 国产制服丝袜一区| 国产精品欧美一级免费| 91在线一区二区| 亚洲电影第三页| 精品欧美乱码久久久久久| 精品一区二区三区香蕉蜜桃| 久久久国产精品午夜一区ai换脸 | 免费高清在线一区| 久久亚洲私人国产精品va媚药| 高清av一区二区| 亚洲精品亚洲人成人网在线播放| 在线免费观看日本欧美| 日韩福利视频导航| 国产午夜久久久久| 色综合久久久久综合99| 青草国产精品久久久久久| 国产无人区一区二区三区| 91视频在线观看免费| 蜜臀精品一区二区三区在线观看| 欧美国产精品v| 欧美日韩精品欧美日韩精品| 国产一区欧美日韩| 一区二区三区精品| 国产欧美日韩卡一| 欧美疯狂性受xxxxx喷水图片| 国内精品伊人久久久久影院对白| 日韩理论在线观看| 日韩视频一区二区三区| 成人av小说网| 精品一区二区综合| 亚洲第一会所有码转帖| 欧美国产激情二区三区| 日韩一级片网站| 色拍拍在线精品视频8848| 狠狠色丁香久久婷婷综合_中| 一区二区免费看| 日本一区二区不卡视频| 欧美精品在线观看播放| 91社区在线播放| 国产精品 欧美精品| 日韩精品乱码免费| 亚洲欧美视频在线观看视频| 久久久久国产免费免费 | 韩国一区二区三区| 亚洲成在人线在线播放| 综合在线观看色| 国产亚洲一本大道中文在线| 欧美日韩国产系列| 91蝌蚪porny| 白白色 亚洲乱淫| 狠狠色狠狠色综合| 奇米色777欧美一区二区| 一区二区三区不卡视频| 18欧美乱大交hd1984| 久久久久久亚洲综合| 欧美mv日韩mv| 精品理论电影在线| 日韩一级高清毛片| 欧美日韩久久久| 欧美性猛片aaaaaaa做受| 色婷婷综合激情| 91啪九色porn原创视频在线观看| av动漫一区二区| 成人av网站在线观看免费| 国产69精品久久久久777| 国产在线看一区| 国产在线精品一区二区夜色| 免费精品99久久国产综合精品| 日韩电影在线免费| 欧美aaa在线| 毛片基地黄久久久久久天堂| 麻豆久久久久久| 精品一区二区三区的国产在线播放| 免费在线成人网| 精品制服美女久久| 国产乱码精品一区二区三区av| 国产在线精品一区二区| 国产乱国产乱300精品| 懂色一区二区三区免费观看| eeuss国产一区二区三区| 99久久国产综合色|国产精品| 色综合亚洲欧洲| 欧洲一区在线电影| 欧美福利一区二区| 精品国产成人在线影院| 国产欧美精品日韩区二区麻豆天美| 国产精品久久看| 一区二区高清在线| 理论电影国产精品| 成人免费视频免费观看| 91麻豆免费观看| 制服丝袜av成人在线看| 欧美电视剧在线观看完整版| 国产欧美精品国产国产专区| 一个色综合av| 国产一区高清在线| 91麻豆.com| 欧美va在线播放| 亚洲天堂久久久久久久| 午夜电影网一区| 成人性视频免费网站| 欧美色欧美亚洲另类二区| 日韩欧美123| 亚洲女人****多毛耸耸8| 日韩综合小视频| 成人午夜电影久久影院| 欧美蜜桃一区二区三区| 国产欧美日韩卡一| 日韩高清欧美激情| 91小宝寻花一区二区三区| 日韩欧美激情四射| 亚洲精品成人a在线观看| 麻豆精品在线看| 欧美天堂一区二区三区| 国产丝袜欧美中文另类| 午夜一区二区三区视频| 粉嫩蜜臀av国产精品网站| 欧美日韩精品一二三区| 中文字幕在线免费不卡| 精品在线你懂的| 欧美日韩国产精品自在自线| 欧美激情一区三区| 久久国内精品视频| 91成人在线精品| 国产精品久久久久久亚洲毛片 | 日本少妇一区二区| 在线观看免费成人| 中文字幕一区二区在线观看 | 一本高清dvd不卡在线观看| 日韩欧美美女一区二区三区| 一区二区三区日韩精品视频| 国产不卡视频在线播放| 日韩欧美中文一区二区| 五月天欧美精品| 在线观看网站黄不卡| 国产精品高潮久久久久无| 国产乱码精品一区二区三区五月婷| 欧美精品vⅰdeose4hd| 亚洲国产欧美日韩另类综合 | 高清不卡在线观看| 2欧美一区二区三区在线观看视频| 亚洲国产日产av| 色噜噜偷拍精品综合在线| 国产精品第四页| 91同城在线观看| 成人欧美一区二区三区在线播放| 国产成a人无v码亚洲福利| 日韩免费高清av| 久久国产乱子精品免费女| 欧美成人女星排名| 精品在线你懂的| 久久综合九色综合久久久精品综合 | 久久精品免费看| 欧美一级日韩免费不卡| 日本成人在线一区| 欧美tickle裸体挠脚心vk|