|
|
1.1 root 1: /*++
2:
3: Copyright (c) 1990 Microsoft Corporation
4:
5: Module Name:
6:
7: local.h
8:
9: Abstract:
10:
11: Header file for Local Print Providor
12:
13: Author:
14:
15: Dave Snipp (DaveSn) 15-Mar-1991
16:
17: Revision History:
18:
19: --*/
20:
21: extern HANDLE hInst;
22: extern HANDLE hHeap;
23: extern HANDLE HeapSemaphore;
24: extern HANDLE InitSemaphore;
25: extern CRITICAL_SECTION SpoolerSection;
26: extern DWORD PortInfo1Offsets[];
27:
28:
29: #define IDS_LOCALMONITOR 300
30: #define IDS_INVALIDPORTNAME_S 301
31: #define IDS_PORTALREADYEXISTS_S 302
32: #define IDS_NOTHING_TO_CONFIGURE 303
33: #define IDS_COULD_NOT_OPEN_FILE 304
34: #define IDS_UNKNOWN_ERROR 305
35: #define IDS_OVERWRITE_EXISTING_FILE 306
36:
37: #define MSG_ERROR MB_OK | MB_ICONSTOP
38: #define MSG_WARNING MB_OK | MB_ICONEXCLAMATION
39: #define MSG_YESNO MB_YESNO | MB_ICONQUESTION
40: #define MSG_INFORMATION MB_OK | MB_ICONINFORMATION
41: #define MSG_CONFIRMATION MB_OKCANCEL | MB_ICONEXCLAMATION
42:
43: #define TIMEOUT_MIN 1
44: #define TIMEOUT_MAX 999
45: #define TIMEOUT_STRING_MAX 3
46:
47: #define WITHINRANGE( val, lo, hi ) \
48: ( ( val <= hi ) && ( val >= lo ) )
49:
50:
51: /* DEBUGGING:
52: */
53:
54: #define DBG_NONE 0x00000000
55: #define DBG_INFO 0x00000001
56: #define DBG_WARNING 0x00000002
57: #define DBG_ERROR 0x00000004
58: #define DBG_TRACE 0x00000008
59:
60: #if DBG
61:
62: /* Quick fix:
63: *
64: * Ensure DbgPrint and DbgBreakPoint are prototyped,
65: * so that we're not screwed by STDCALL.
66: * This should be replaced by OutputDebugString
67: */
68: ULONG
69: DbgPrint(
70: PCH Format,
71: ...
72: );
73:
74: VOID
75: DbgBreakPoint(
76: VOID
77: );
78:
79:
80: #define GLOBAL_DEBUG_FLAGS Debug
81:
82: extern DWORD GLOBAL_DEBUG_FLAGS;
83:
84: /* These flags are not used as arguments to the DBGMSG macro.
85: * You have to set the high word of the global variable to cause it to break.
86: * It is ignored if used with DBGMSG.
87: * (Here mainly for explanatory purposes.)
88: */
89: #define DBG_BREAK_ON_WARNING ( DBG_WARNING << 16 )
90: #define DBG_BREAK_ON_ERROR ( DBG_ERROR << 16 )
91:
92: /* Double braces are needed for this one, e.g.:
93: *
94: * DBGMSG( DBG_ERROR, ( "Error code %d", Error ) );
95: *
96: * This is because we can't use variable parameter lists in macros.
97: * The statement gets pre-processed to a semi-colon in non-debug mode.
98: *
99: * Set the global variable GLOBAL_DEBUG_FLAGS via the debugger.
100: * Setting the flag in the low word causes that level to be printed;
101: * setting the high word causes a break into the debugger.
102: * E.g. setting it to 0x00040006 will print out all warning and error
103: * messages, and break on errors.
104: */
105: #define DBGMSG( Level, MsgAndArgs ) \
106: { \
107: if( ( Level & 0xFFFF ) & GLOBAL_DEBUG_FLAGS ) \
108: DbgPrint MsgAndArgs; \
109: if( ( Level << 16 ) & GLOBAL_DEBUG_FLAGS ) \
110: DbgBreakPoint(); \
111: }
112:
113: #else
114: #define DBGMSG
115: #endif
116:
117:
118:
119: BOOL APIENTRY
120: PortNameDlg(
121: HWND hwnd,
122: WORD msg,
123: WPARAM wparam,
124: LPARAM lparam
125: );
126:
127: BOOL APIENTRY
128: ConfigureLPTPortDlg(
129: HWND hwnd,
130: WORD msg,
131: WPARAM wparam,
132: LPARAM lparam
133: );
134:
135: BOOL APIENTRY
136: PrintToFileDlg(
137: HWND hwnd,
138: WORD msg,
139: WPARAM wparam,
140: LPARAM lparam
141: );
142:
143: VOID
144: EnterSplSem(
145: VOID
146: );
147:
148: VOID
149: LeaveSplSem(
150: VOID
151: );
152:
153: LPVOID
154: AllocSplMem(
155: DWORD cb
156: );
157:
158: BOOL
159: FreeSplMem(
160: LPVOID pMem,
161: DWORD cb
162: );
163:
164: LPVOID
165: ReallocSplMem(
166: LPVOID lpOldMem,
167: DWORD cbOld,
168: DWORD cbNew
169: );
170:
171: LPWSTR
172: AllocSplStr(
173: LPWSTR lpStr
174: );
175:
176: BOOL
177: FreeSplStr(
178: LPWSTR lpStr
179: );
180:
181: BOOL
182: ReallocSplStr(
183: LPWSTR *plpStr,
184: LPWSTR lpStr
185: );
186:
187: PINIENTRY
188: FindName(
189: PINIENTRY pIniKey,
190: LPWSTR pName
191: );
192:
193: PINIENTRY
194: FindIniKey(
195: PINIENTRY pIniEntry,
196: LPWSTR lpName
197: );
198:
199: LPBYTE
200: PackStrings(
201: LPWSTR *pSource,
202: LPBYTE pDest,
203: DWORD *DestOffsets,
204: LPBYTE pEnd
205: );
206:
207: int
208: Message(
209: HWND hwnd,
210: DWORD Type,
211: int CaptionID,
212: int TextID,
213: ...
214: );
215:
216: DWORD
217: ReportError(
218: HWND hwndParent,
219: DWORD idTitle,
220: DWORD idDefaultError
221: );
222:
223: BOOL
224: MakeLink(
225: LPWSTR pOldDosDeviceName,
226: LPWSTR pNewDosDeviceName,
227: LPWSTR *ppOldNtDeviceName,
228: LPWSTR pNewNtDeviceName,
229: SECURITY_DESCRIPTOR *pSecurityDescriptor
230: );
231:
232: BOOL
233: RemoveLink(
234: LPWSTR pOldDosDeviceName,
235: LPWSTR pNewDosDeviceName,
236: LPWSTR *ppOldNtDeviceName
237: );
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.