|
|
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.