Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*=============================================================================
* FILENAME: exports.cpp * Copyright (C) 1996-1998 HDE, Inc. All Rights Reserved. HDE Confidential. * * DESCRIPTION: Contains exported functions required to get an OEM plug-in * to work. * NOTES: *============================================================================= */
#include <windows.h>
#include <stdlib.h>
#include <WINDDIUI.H>
#include <PRINTOEM.H>
#include <strsafe.h>
#include "nc46nt.h"
HINSTANCE ghInstance;
/******************************************************************************
* DESCRIPTION: Called by the postscript driver after the dll is loaded * to get plug-in information * *****************************************************************************/ extern "C" BOOL APIENTRY OEMGetInfo( DWORD dwMode, PVOID pBuffer, DWORD cbSize, PDWORD pcbNeeded ) { // Validate parameters.
if( NULL == pcbNeeded ) { SetLastError(ERROR_INVALID_PARAMETER); return FALSE; }
// Set expected buffer size and number of bytes written.
*pcbNeeded = sizeof(DWORD);
// Check buffer size is sufficient.
if((cbSize < *pcbNeeded) || (NULL == pBuffer)) { SetLastError(ERROR_INSUFFICIENT_BUFFER); return FALSE; }
switch(dwMode) { case OEMGI_GETSIGNATURE: // OEM DLL Signature
*(PDWORD)pBuffer = OEM_SIGNATURE; break; case OEMGI_GETVERSION: // OEM DLL version
*(PDWORD)pBuffer = OEM_VERSION; break; case OEMGI_GETINTERFACEVERSION: // version the Printer driver supports
*(PDWORD)pBuffer = PRINTER_OEMINTF_VERSION; break; case OEMGI_GETPUBLISHERINFO: // fill PUBLISHERINFO structure
// fall through to not supported
default: // dwMode not supported.
// Set written bytes to zero since nothing was written.
*pcbNeeded = 0; SetLastError(ERROR_NOT_SUPPORTED); return FALSE; } return TRUE; }
/******************************************************************************
* DESCRIPTION: Exported function that allows setting of private and public * devmode fields. * NOTE: This function must be in entered under EXPORTS in rntapsui.def to be called *****************************************************************************/ extern "C" BOOL APIENTRY OEMDevMode( DWORD dwMode, POEMDMPARAM pOemDMParam ) { POEMDEV pOEMDevIn; POEMDEV pOEMDevOut;
switch(dwMode) // user mode dll
{ case OEMDM_SIZE: // size of oem devmode
if( pOemDMParam ) pOemDMParam->cbBufSize = sizeof( OEMDEV ); break;
case OEMDM_DEFAULT: // fill oem devmode with default data
if( pOemDMParam && pOemDMParam->pOEMDMOut ) { pOEMDevOut = (POEMDEV)pOemDMParam->pOEMDMOut; pOEMDevOut->dmOEMExtra.dwSize = sizeof(OEMDEV); pOEMDevOut->dmOEMExtra.dwSignature = OEM_SIGNATURE; pOEMDevOut->dmOEMExtra.dwVersion = OEM_VERSION; // _tcscpy( pOEMDevOut->szUserName, TEXT("NO USER NAME") );
StringCchCopy( pOEMDevOut->szUserName, NEC_USERNAME_BUF_LEN, TEXT("NO USER NAME") ); } break; case OEMDM_MERGE: // set the public devmode fields
case OEMDM_CONVERT: // convert any old oem devmode to new version
if( pOemDMParam && pOemDMParam->pOEMDMOut && pOemDMParam->pOEMDMIn ) { pOEMDevIn = (POEMDEV)pOemDMParam->pOEMDMIn; pOEMDevOut = (POEMDEV)pOemDMParam->pOEMDMOut; if( pOEMDevIn->dmOEMExtra.dwSignature == pOEMDevOut->dmOEMExtra.dwSignature ) { TCHAR szUserName[NEC_USERNAME_BUF_LEN+2]; DWORD dwCb = NEC_USERNAME_BUF_LEN; if( GetUserName( szUserName, &dwCb ) ) StringCbCopy( pOEMDevOut->szUserName, sizeof(pOEMDevOut->szUserName), szUserName ); } } break;
} return( TRUE ); }
/******************************************************************************
* DESCRIPTION: Windows dll required entry point function. * *****************************************************************************/ extern "C" BOOL WINAPI DllMain(HINSTANCE hInst, WORD wReason, LPVOID lpReserved) { switch(wReason) { case DLL_PROCESS_ATTACH: ghInstance = hInst; break;
case DLL_THREAD_ATTACH: break;
case DLL_PROCESS_DETACH: break;
case DLL_THREAD_DETACH: ghInstance = NULL; break; } return( TRUE ); }
|