|
|
1.1 ! root 1: /******************** Function Prototypes file *************************** ! 2: * libproto.h ! 3: * Function prototypes for NT printer drivers library. Also includes ! 4: * a brief description of the function. ! 5: * ! 6: * 11:04 on Wed 14 Nov 1990 -by- Lindsay Harris [lindsayh] ! 7: * ! 8: * Copyright (C) Microsoft Corporation, 1990 - 1992 ! 9: * ! 10: ************************************************************************/ ! 11: ! 12: /* ! 13: * Until there is proper error logging:- ! 14: * WinSetError( "String" ); ! 15: * The String appears on the debug terminal. A \n is appended. ! 16: */ ! 17: void WinSetError( LPSTR ); ! 18: ! 19: /* ! 20: * Function to add a copy of a string to a heap. Returns address of copy ! 21: * of string (if successful) or 0 if memory cannot be allocated. ! 22: */ ! 23: ! 24: LPSTR StrToHeap( HANDLE, LPSTR ); ! 25: PWSTR StrToWHeap( HANDLE, LPSTR ); /* Expand to Wide too! */ ! 26: PWSTR WstrToHeap( HANDLE, PWSTR ); /* WIDE version */ ! 27: ! 28: /* ! 29: * Convert an ascii style string to WCHAR format, appending it to the ! 30: * end of the wchar passed in. Returns value of first parameter. ! 31: */ ! 32: ! 33: PWSTR strcat2WChar( PWSTR, LPSTR ); ! 34: ! 35: ! 36: /* ! 37: * Convert an ascii style string to WCHAR format, copying it to the ! 38: * wchar passed in. Returns value of first parameter. ! 39: */ ! 40: ! 41: PWSTR strcpy2WChar( PWSTR, LPSTR ); ! 42: ! 43: ! 44: /* ! 45: * The WCHAR world's equivalent of strlen(): returns the number of WCHARs ! 46: * in the string passed in. ! 47: */ ! 48: ! 49: int wchlen( PWSTR ); ! 50: ! 51: /* ! 52: * Concatenate a PWSTR to another. Returns address of destination. ! 53: */ ! 54: ! 55: PWSTR wchcat( PWSTR, PWSTR ); ! 56: ! 57: /* ! 58: * Copy a PWSTR to another. Returns address of destination. ! 59: */ ! 60: ! 61: PWSTR wchcpy( PWSTR, PWSTR ); ! 62: ! 63: ! 64: /* ! 65: * Break into the debugger - Ye olde RIP. ! 66: */ ! 67: VOID DoRip( LPSTR ); ! 68: ! 69: /* ! 70: * Some system function prototypes have vanished - replace them here. ! 71: */ ! 72: ! 73: void DbgPrint( char *, ... ); ! 74: void DbgBreakPoint( void ); ! 75: ! 76: ! 77: ! 78: ! 79: PVOID MapFile(PWSTR); ! 80: ! 81: #ifdef FIREWALLS ! 82: #define RIP(x) DoRip((PSZ) x) ! 83: #else ! 84: #define RIP(x) ! 85: #endif ! 86: ! 87: /* ! 88: * A simplified write function. Returns TRUE if the WriteFile() ! 89: * call returns TRUE and the number of bytes written equals the ! 90: * number requested. ! 91: * ! 92: * bWrite( file_handle, address_of_data, number_of_bytes ); ! 93: */ ! 94: ! 95: BOOL bWrite( HANDLE, void *, int ); ! 96: ! 97: /* ! 98: * Function to copy the contents of one file to another. The files ! 99: * are referenced via file handles. No positioning is done - that is ! 100: * up to the user. ! 101: * The second form also allows a byte count to limit the amount of data ! 102: * copied. ! 103: */ ! 104: ! 105: ! 106: long lFICopy( HANDLE, HANDLE ); ! 107: long lFInCopy( HANDLE, HANDLE, long ); ! 108: ! 109: ! 110: /* ! 111: * Spooler interaction functions. These allow drivers to call the ! 112: * spooler directly, without going through engine stub functions. ! 113: */ ! 114: ! 115: BOOL bSplGetFormW( HANDLE, PWSTR, DWORD, BYTE *, DWORD, DWORD * ); ! 116: ! 117: ! 118: DWORD dwSplGetPrinterDataW( HANDLE, PWSTR, BYTE *, DWORD, DWORD * ); ! 119: ! 120: ! 121: BOOL bSplWrite( HANDLE, ULONG, VOID * ); ! 122: ! 123: ! 124: ! 125: /* Function needed to allow the driver to reach the spooler */ ! 126: ! 127: BOOL bImpersonateClient( void ); ! 128: ! 129: ! 130: /************************** HACK *************************************** ! 131: * The following function is only required until the DEVMODE contains ! 132: * a form name rather than an index. And even then it might be required. ! 133: * ! 134: ***********************************************************************/ ! 135: ! 136: char *_IndexToName( int );
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.