summaryrefslogtreecommitdiff
path: root/print/OEM Printer Customization Plug-in Samples/C++/uniuirep/src/devmode.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'print/OEM Printer Customization Plug-in Samples/C++/uniuirep/src/devmode.cpp')
-rw-r--r--print/OEM Printer Customization Plug-in Samples/C++/uniuirep/src/devmode.cpp255
1 files changed, 0 insertions, 255 deletions
diff --git a/print/OEM Printer Customization Plug-in Samples/C++/uniuirep/src/devmode.cpp b/print/OEM Printer Customization Plug-in Samples/C++/uniuirep/src/devmode.cpp
deleted file mode 100644
index 1f872cde..00000000
--- a/print/OEM Printer Customization Plug-in Samples/C++/uniuirep/src/devmode.cpp
+++ /dev/null
@@ -1,255 +0,0 @@
-//+--------------------------------------------------------------------------
-//
-// 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 1997 - 2005 Microsoft Corporation. All Rights Reserved.
-//
-// FILE: devmode.cpp
-//
-// PURPOSE: Implementation of Devmode functions shared with OEM UI and OEM rendering modules.
-//
-//--------------------------------------------------------------------------
-
-#include "precomp.h"
-
-// This indicates to Prefast that this is a usermode driver file.
-_Analysis_mode_(_Analysis_code_type_user_driver_);
-
-BOOL
-ConvertOEMDevmode(
- _In_ PCOEMDEV pOEMDevIn,
- _Inout_ POEMDEV pOEMDevOut
- );
-
-BOOL
-MakeOEMDevmodeValid(
- _Out_ POEMDEV pOEMDevmode
- );
-
-//+---------------------------------------------------------------------------
-//
-// Member:
-// ::hrOEMDevMode
-//
-// Synopsis:
-// Performs operation on UI Plugins Private DevMode Members.
-// Called via IOemUI::DevMode
-//
-// Returns:
-// S_OK or E_FAIL. For more detailed failure info,
-// check GetLastError
-//
-// Last error:
-// ERROR_INVALID_PARAMETER
-//
-//
-//----------------------------------------------------------------------------
-HRESULT
-hrOEMDevMode(
- DWORD dwMode,
- // Indicates which operation should be performed
- _Inout_ POEMDMPARAM pOemDMParam
- // contains various data structures needed by this
- // routine. The usage of this struct is determined by
- // the dwMode flag.
- )
-{
- VERBOSE(DLLTEXT("hrOEMDevMode entry."));
-
- HRESULT hr = S_OK;
- // Return value.
-
- //
- // Verify parameters.
- //
- if ((NULL == pOemDMParam) ||
- ((OEMDM_SIZE != dwMode) &&
- (OEMDM_DEFAULT != dwMode) &&
- (OEMDM_CONVERT != dwMode) &&
- (OEMDM_MERGE != dwMode)))
- {
- ERR(ERRORTEXT("DevMode() ERROR_INVALID_PARAMETER.\r\n"));
- ERR(DLLTEXT("\tdwMode = %d, pOemDMParam = %#lx.\r\n"), dwMode, pOemDMParam);
-
- SetLastError(ERROR_INVALID_PARAMETER);
- hr = E_FAIL;
- }
- else
- {
- POEMDEV pOEMDevIn = (POEMDEV) pOemDMParam->pOEMDMIn;;
- // Pointer to the supplied OEM devmode data, if applicable
- // based on dwMode.
-
- POEMDEV pOEMDevOut = (POEMDEV) pOemDMParam->pOEMDMOut;;
- // Pointer to the DEVMODE data that this routine is
- // expected to configure, if applicable based on dwMode.
-
- switch (dwMode)
- {
- //
- // The Method should return the size of the memory allocation
- // needed to store the UI plugin Private DEVMODE.
- //
- case OEMDM_SIZE:
- pOemDMParam->cbBufSize = sizeof(OEMDEV);
- break;
-
- //
- //Should fill the Private DEVMODE with the default values.
- //
- case OEMDM_DEFAULT:
- //
- //OEM_DMEXTRAHEADER Members
- //
- pOEMDevOut->dmOEMExtra.dwSize = sizeof(OEMDEV);
- pOEMDevOut->dmOEMExtra.dwSignature = OEM_SIGNATURE;
- pOEMDevOut->dmOEMExtra.dwVersion = OEM_VERSION;
- break;
-
- //
- // The method should convert private DEVMODE members to
- // the current version, if necessary.
- //
- case OEMDM_CONVERT:
- ConvertOEMDevmode(pOEMDevIn, pOEMDevOut);
- break;
-
- //
- // The method should validate the information contained in private
- // DEVMODE members and merge validated values into a private
- // DEVMODE structure containing default values
- //
- case OEMDM_MERGE:
- ConvertOEMDevmode(pOEMDevIn, pOEMDevOut);
- MakeOEMDevmodeValid(pOEMDevOut);
- break;
- }
- }
-
- return hr;
-}
-
-
-//+---------------------------------------------------------------------------
-//
-// Member:
-// ::ConvertOEMDevmode
-//
-// Synopsis:
-// confirm that the private DEVMODE being passed in is data that
-// this driver recognizes, read the settings from the input
-// OEM DEVMODE data, and write them to pOEMDevOut.
-//
-// Returns:
-// True unless the routine was called with null pointers
-//
-//
-//----------------------------------------------------------------------------
-BOOL
-ConvertOEMDevmode(
- _In_ PCOEMDEV pOEMDevIn,
- // Caller supplied DEVMODE that we are attempting to read
- _Inout_ POEMDEV pOEMDevOut
- // OEM private DEVMODE configured by this routine based on the settings
- // in pOEMDevIn
- )
-{
- VERBOSE(DLLTEXT("ConvertOEMDevmode entry."));
-
- if ((NULL == pOEMDevIn) ||
- (NULL == pOEMDevOut))
- {
- ERR(ERRORTEXT("ConvertOEMDevmode() invalid parameters.\r\n"));
- return FALSE;
- }
-
- //
- // Check OEM Signature, if it doesn't match ours,
- // then just assume DMIn is bad and use defaults.
- //
- if(pOEMDevIn->dmOEMExtra.dwSignature == pOEMDevOut->dmOEMExtra.dwSignature)
- {
- VERBOSE(DLLTEXT("Converting private OEM Devmode.\r\n"));
-
- //
- // Copy the old structure in to the new using which ever size is the
- // smaller. Devmode maybe from newer Devmode (not likely since there
- // is only one), or Devmode maybe a newer Devmode, in which case it
- // maybe larger, but the first part of the structure should be the same.
- //
- // DESIGN ASSUMPTION: the private DEVMODE structure only gets added to;
- // the fields that are in the DEVMODE never change only new fields get
- // added to the end.
- //
- memcpy(pOEMDevOut,
- pOEMDevIn,
- __min(pOEMDevOut->dmOEMExtra.dwSize, pOEMDevIn->dmOEMExtra.dwSize));
-
- //
- // Re-fill in the size and version fields to indicated
- // that the DEVMODE is the current private DEVMODE version.
- //
- pOEMDevOut->dmOEMExtra.dwSize = sizeof(OEMDEV);
- pOEMDevOut->dmOEMExtra.dwVersion = OEM_VERSION;
-
- //
- // If the plug-in is capable of recognizing multiple versions of it's
- // private DEVMODE data add custom handling here to support it.
- //
- }
- else
- {
- WARNING(DLLTEXT("Unknown DEVMODE signature, pOEMDMIn ignored.\r\n"));
-
- //
- // The private DEVMODE data is not something that this plug-in understands,
- // so use defaults.
- //
- pOEMDevOut->dmOEMExtra.dwSize = sizeof(OEMDEV);
- pOEMDevOut->dmOEMExtra.dwSignature = OEM_SIGNATURE;
- pOEMDevOut->dmOEMExtra.dwVersion = OEM_VERSION;
- }
-
- return TRUE;
-}
-
-
-//+---------------------------------------------------------------------------
-//
-// Member:
-// ::MakeOEMDevmodeValid
-//
-// Synopsis:
-// Force the OEM devmode settings to valid values.
-//
-// Returns:
-// True if the OEMDEV was configured, else FALSE. Only return false if
-// the parameter is NULL.
-//
-//
-//----------------------------------------------------------------------------
-BOOL
-MakeOEMDevmodeValid(
- _Out_ POEMDEV pOEMDevmode
- // OEM DEVMODE data to modify
- )
-{
- if(NULL == pOEMDevmode)
- {
- return FALSE;
- }
-
- //
- // Assumption: pOEMDevmode is large enough to contain OEMDEV structure.
- //
- pOEMDevmode->dmOEMExtra.dwSize = sizeof(OEMDEV);
- pOEMDevmode->dmOEMExtra.dwSignature = OEM_SIGNATURE;
- pOEMDevmode->dmOEMExtra.dwVersion = OEM_VERSION;
-
- return TRUE;
-}
-
-