2025-04-27 07:49:33 -04:00

316 lines
5.7 KiB
C

/*++
Copyright (c) 1996 Microsoft Corporation
Module Name:
export.c
Abstract:
This file handles the OEM extension functions.
Environment:
Win32 subsystem, OEM UI module, user mode
Revision History:
09/13/96 -eigos-
Created it.
dd-mm-yy -author-
description
--*/
#include "oem.h"
//
// Globals
//
#ifdef DBG
INT giDebugLevel;
#endif
DWORD gdwOEMSig = 0x4955454f; //"OEUI"
//
// Prototype definition
//
LONG PSUICallback( PCPSUICBPARAM );
BOOL
OEMGetInfo(
DWORD dwInfo,
PVOID pvBuffer,
DWORD cbSize,
PDWORD pcbNeeded)
{
BOOL bRet;
DWORD dwSigSize;
VERBOSE(("Entering OEMGetInfo...\n"));
switch (dwInfo)
{
case OEM_GETSIGNATURE:
if (cbSize != sizeof(DWORD))
{
*pcbNeeded = sizeof(DWORD);
bRet = FALSE;
}
else
{
*(PDWORD)pvBuffer = gdwOEMSig;
*pcbNeeded = sizeof(DWORD);
bRet = TRUE;
}
break;
case OEM_GETINTERFACEVERSION:
if (cbSize != sizeof(DWORD))
{
*pcbNeeded = sizeof(DWORD);
bRet = FALSE;
}
else
{
*(PDWORD)pvBuffer = PRINTER_OEMINTF_VERSION;
*pcbNeeded = sizeof(DWORD);
bRet = TRUE;
}
break;
default:
bRet = FALSE;
}
return bRet;
}
BOOL
OEMDevMode(
POEM_DEVMODEPARAM pOEMDevModeParam)
{
POEMDEVMODE pOEMDevMode;
INT iI;
BOOL bRet;
VERBOSE(("Entering OEMDevMode...\n"));
ASSERT(pOEMDevModeParam != NULL);
bRet = FALSE;
switch (pOEMDevModeParam->fMode)
{
case OEMDM_SIZE:
pOEMDevModeParam->cbBufSize = sizeof(OEMDEVMODE);
bRet = TRUE;
break;
case OEMDM_DEFAULT:
pOEMDevModeParam->cbBufSize = sizeof(OEMDEVMODE);
pOEMDevMode = pOEMDevModeParam->pOEMDMOut;
pOEMDevMode->DMExtraHdr.dwSize = sizeof(OEMDEVMODE);
pOEMDevMode->DMExtraHdr.dwSignature = gdwOEMSig;
pOEMDevMode->DMExtraHdr.dwVersion = OEM_DEVMODE_VERSION_1_0;
#ifdef PSCRIPT
for (iI = 0; iI < NUM_OF_PS_INJECTION; iI ++)
{
pOEMDevMode->InjectCmd[iI].dwbSize = 0;
pOEMDevMode->InjectCmd[iI].loOffset = 0;
}
#endif
bRet = TRUE;
break;
case OEMDM_CONVERT:
pOEMDevModeParam->cbBufSize = sizeof(OEMDEVMODE);
bRet = TRUE;
break;
case OEMDM_VALIDATE:
pOEMDevMode = pOEMDevModeParam->pOEMDMOut;
if (pOEMDevMode->DMExtraHdr.dwSize != sizeof(OEMDEVMODE) ||
pOEMDevMode->DMExtraHdr.dwSignature != gdwOEMSig ||
pOEMDevMode->DMExtraHdr.dwVersion != OEM_DEVMODE_VERSION_1_0 )
{
break;
}
bRet = TRUE;
break;
}
return bRet;
}
BOOL
OEMCommonUI(
DWORD dwReason,
PVOID pParam
)
{
POEM_PROPERTYHEADER pOEMPropertyHeader;
BOOL bReturn;
VERBOSE(("Entering OEMCommonUI...\n"));
switch (dwReason)
{
case OEMUI_PROPERTIES:
pOEMPropertyHeader = (POEM_PROPERTYHEADER)pParam;
switch(pOEMPropertyHeader->fMode)
{
case OEMUI_PRNPROP:
break;
case OEMUI_DOCPROP:
break;
}
bReturn = TRUE;
break;
default:
bReturn = FALSE;
break;
}
return bReturn;
}
#ifdef DDI_HOOK
LONG
OEMDocumentPropertySheets(
PPROPSHEETUI_INFO pPSUIInfo,
LPARAM lParam)
{
VERBOSE(("Entering OEMDocumentPropertySheets...\n"));
return 0;
}
LONG APIENTRY
OEMDevicePropertySheets(
PPROPSHEETUI_INFO pPSUIInfo,
LPARAM lParam)
{
VERBOSE(("Entering OEMDevQueryPrintEx...\n"));
return 0;
}
BOOL
OEMDevQueryPrintEx(
PDEVQUERYPRINT_INFO pDQPInfo,
PDEVMODE pPublicDM,
PVOID pOEMDM)
{
VERBOSE(("Entering OEMDevQueryPrintEx...\n"));
return TRUE;
}
DWORD
OEMDeviceCapabilities(
HANDLE hPrinter,
PWSTR pDeviceName,
WORD wCapability,
VOID *pvOutput,
PDEVMODE pPublicDM,
PVOID pOEMDM,
DWORD dwResult)
{
VERBOSE(("Entering OEMDeviceCapabilities...\n"));
return dwResult;
}
BOOL
OEMUpgradePrinter(
DWORD Level,
PBYTE pDriverUpgradeInfo)
{
VERBOSE(("Entering OEMUpgradePrinter...\n"));
return TRUE;
}
BOOL
OEMPrinterEvent(
PWSTR pPrinterName,
INT iDriverEvent,
DWORD dwFlags,
LPARAM lParam)
{
VERBOSE(("Entering OEMPrinterEvent...\n"));
return TRUE;
}
#endif
CPSUICALLBACK
cpcbPrinterPropertyCallback(
IN PCPSUICBPARAM pComPropSheetUICBParam)
/*++
Routine Description:
Callback function provided to common UI DLL for handling
printer properties dialog.
Arguments:
pCallbackParam - Pointer to CPSUICBPARAM structure
Return Value:
CPSUICB_ACTION_NONE - no action needed
CPSUICB_ACTION_OPTIF_CHANGED - items changed and should be refreshed
--*/
{
POPTITEM pOptItem;
pOptItem = pComPropSheetUICBParam->pOptItem;
switch (pComPropSheetUICBParam->Reason)
{
case CPSUICB_REASON_SEL_CHANGED:
break;
case CPSUICB_REASON_ECB_CHANGED:
break;
case CPSUICB_REASON_ITEMS_REVERTED:
break;
case CPSUICB_REASON_APPLYNOW:
break;
}
return CPSUICB_ACTION_NONE;
}