Sync to trunk (r44371)
[reactos.git] / reactos / include / psdk / winfax.h
1 /*
2 * winfax.h
3 *
4 * FAX API Support
5 *
6 * THIS SOFTWARE IS NOT COPYRIGHTED
7 *
8 * This source code is offered for use in the public domain. You may
9 * use, modify or distribute it freely.
10 *
11 * This code is distributed in the hope that it will be useful but
12 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
13 * DISCLAIMED. This includes but is not limited to warranties of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15 *
16 */
17
18 #ifndef __WINFAX_H
19 #define __WINFAX_H
20
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24
25 typedef DWORD HCALL;
26
27 typedef struct _FAX_TIME
28 {
29 WORD Hour;
30 WORD Minute;
31 } FAX_TIME, *PFAX_TIME;
32
33 typedef enum
34 {
35 JSA_NOW = 0,
36 JSA_SPECIFIC_TIME,
37 JSA_DISCOUNT_PERIOD
38 } FAX_ENUM_JOB_SEND_ATTRIBUTES;
39
40 typedef enum
41 {
42 DRT_NONE = 0,
43 DRT_EMAIL,
44 DRT_INBOX
45 } FAX_ENUM_DELIVERY_REPORT_TYPES;
46
47 typedef enum
48 {
49 FAXLOG_CATEGORY_INIT = 1,
50 FAXLOG_CATEGORY_OUTBOUND,
51 FAXLOG_CATEGORY_INBOUND,
52 FAXLOG_CATEGORY_UNKNOWN
53 } FAX_ENUM_LOG_CATEGORIES;
54
55 typedef enum
56 {
57 FAXLOG_LEVEL_NONE = 0,
58 FAXLOG_LEVEL_MIN,
59 FAXLOG_LEVEL_MED,
60 FAXLOG_LEVEL_MAX
61 } FAX_ENUM_LOG_LEVELS;
62
63 typedef enum
64 {
65 PORT_OPEN_QUERY = 1,
66 PORT_OPEN_MODIFY
67 } FAX_ENUM_PORT_OPEN_TYPE;
68
69 typedef enum
70 {
71 JC_UNKNOWN = 0,
72 JC_DELETE,
73 JC_PAUSE,
74 JC_RESUME
75 } FAX_ENUM_JOB_COMMANDS;
76
77 #define JT_UNKNOWN 0
78 #define JT_SEND 1
79 #define JT_RECEIVE 2
80 #define JT_ROUTING 3
81 #define JT_FAIL_RECEIVE 4
82
83 #define JS_PENDING 0x0
84 #define JS_INPROGRESS 0x1
85 #define JS_DELETING 0x2
86 #define JS_FAILED 0x4
87 #define JS_PAUSED 0x8
88 #define JS_NOLINE 0x10
89 #define JS_RETRYING 0x20
90 #define JS_RETRIES_EXCEEDED 0x40
91
92 #define FPS_DIALING 0x20000001
93 #define FPS_SENDING 0x20000002
94 #define FPS_RECEIVING 0x20000004
95 #define FPS_COMPLETED 0x20000008
96 #define FPS_HANDLED 0x20000010
97 #define FPS_UNAVAILABLE 0x20000020
98 #define FPS_BUSY 0x20000040
99 #define FPS_NO_ANSWER 0x20000080
100 #define FPS_BAD_ADDRESS 0x20000100
101 #define FPS_NO_DIAL_TONE 0x20000200
102 #define FPS_DISCONNECTED 0x20000400
103 #define FPS_FATAL_ERROR 0x20000800
104 #define FPS_NOT_FAX_CALL 0x20001000
105 #define FPS_CALL_DELAYED 0x20002000
106 #define FPS_CALL_BLACKLISTED 0x20004000
107 #define FPS_INITIALIZING 0x20008000
108 #define FPS_OFFLINE 0x20010000
109 #define FPS_RINGING 0x20020000
110 #define FPS_AVAILABLE 0x20100000
111 #define FPS_ABORTING 0x20200000
112 #define FPS_ROUTING 0x20400000
113 #define FPS_ANSWERED 0x20800000
114
115 #define FPF_RECEIVE 0x1
116 #define FPF_SEND 0x2
117 #define FPF_VIRTUAL 0x4
118
119 typedef struct _FAX_JOB_PARAMA
120 {
121 DWORD SizeOfStruct;
122 LPCSTR RecipientNumber;
123 LPCSTR RecipientName;
124 LPCSTR Tsid;
125 LPCSTR SenderName;
126 LPCSTR SenderCompany;
127 LPCSTR SenderDept;
128 LPCSTR BillingCode;
129 DWORD ScheduleAction;
130 SYSTEMTIME ScheduleTime;
131 DWORD DeliveryReportType;
132 LPCSTR DeliveryReportAddress;
133 LPCSTR DocumentName;
134 HCALL CallHandle;
135 DWORD_PTR Reserved[3];
136 } FAX_JOB_PARAMA, *PFAX_JOB_PARAMA;
137
138 typedef struct _FAX_JOB_PARAMW
139 {
140 DWORD SizeOfStruct;
141 LPCWSTR RecipientNumber;
142 LPCWSTR RecipientName;
143 LPCWSTR Tsid;
144 LPCWSTR SenderName;
145 LPCWSTR SenderCompany;
146 LPCWSTR SenderDept;
147 LPCWSTR BillingCode;
148 DWORD ScheduleAction;
149 SYSTEMTIME ScheduleTime;
150 DWORD DeliveryReportType;
151 LPCWSTR DeliveryReportAddress;
152 LPCWSTR DocumentName;
153 HCALL CallHandle;
154 DWORD_PTR Reserved[3];
155 } FAX_JOB_PARAMW, *PFAX_JOB_PARAMW;
156
157 typedef struct _FAX_COVERAGE_INFOA
158 {
159 DWORD SizeOfStruct;
160
161 LPCSTR CoverPageName;
162 BOOL UseServerCoverPage;
163
164 LPCSTR RecName;
165 LPCSTR RecFaxNumber;
166 LPCSTR RecCompany;
167 LPCSTR RecStreetAddress;
168 LPCSTR RecCity;
169 LPCSTR RecState;
170 LPCSTR RecZip;
171 LPCSTR RecCountry;
172 LPCSTR RecTitle;
173 LPCSTR RecDepartment;
174 LPCSTR RecOfficeLocation;
175 LPCSTR RecHomePhone;
176 LPCSTR RecOfficePhone;
177
178 LPCSTR SdrName;
179 LPCSTR SdrFaxNumber;
180 LPCSTR SdrCompany;
181 LPCSTR SdrAddress;
182 LPCSTR SdrTitle;
183 LPCSTR SdrDepartment;
184 LPCSTR SdrOfficeLocation;
185 LPCSTR SdrHomePhone;
186 LPCSTR SdrOfficePhone;
187
188 LPCSTR Node;
189 LPCSTR Subject;
190 SYSTEMTIME TimeSent;
191 DWORD PageCount;
192 } FAX_COVERAGE_INFOA, *PFAX_COVERAGE_INFOA;
193
194 typedef struct _FAX_COVERAGE_INFOW
195 {
196 DWORD SizeOfStruct;
197
198 LPCWSTR CoverPageName;
199 BOOL UseServerCoverPage;
200
201 LPCWSTR RecName;
202 LPCWSTR RecFaxNumber;
203 LPCWSTR RecCompany;
204 LPCWSTR RecStreetAddress;
205 LPCWSTR RecCity;
206 LPCWSTR RecState;
207 LPCWSTR RecZip;
208 LPCWSTR RecCountry;
209 LPCWSTR RecTitle;
210 LPCWSTR RecDepartment;
211 LPCWSTR RecOfficeLocation;
212 LPCWSTR RecHomePhone;
213 LPCWSTR RecOfficePhone;
214
215 LPCWSTR SdrName;
216 LPCWSTR SdrFaxNumber;
217 LPCWSTR SdrCompany;
218 LPCWSTR SdrAddress;
219 LPCWSTR SdrTitle;
220 LPCWSTR SdrDepartment;
221 LPCWSTR SdrOfficeLocation;
222 LPCWSTR SdrHomePhone;
223 LPCWSTR SdrOfficePhone;
224
225 LPCWSTR Node;
226 LPCWSTR Subject;
227 SYSTEMTIME TimeSent;
228 DWORD PageCount;
229 } FAX_COVERAGE_INFOW, *PFAX_COVERAGE_INFOW;
230
231 typedef struct _FAX_GLOBAL_ROUTING_INFOA
232 {
233 DWORD SizeOfStruct;
234 DWORD Priority;
235 LPCSTR Guid;
236 LPCSTR FriendlyName;
237 LPCSTR FunctionName;
238 LPCSTR ExtensionImageName;
239 LPCSTR ExtensionFriendlyName;
240 } FAX_GLOBAL_ROUTING_INFOA, *PFAX_GLOBAL_ROUTING_INFOA;
241
242 typedef struct _FAX_GLOBAL_ROUTING_INFOW
243 {
244 DWORD SizeOfStruct;
245 DWORD Priority;
246 LPCWSTR Guid;
247 LPCWSTR FriendlyName;
248 LPCWSTR FunctionName;
249 LPCWSTR ExtensionImageName;
250 LPCWSTR ExtensionFriendlyName;
251 } FAX_GLOBAL_ROUTING_INFOW, *PFAX_GLOBAL_ROUTING_INFOW;
252
253 typedef struct _FAX_JOB_ENTRYA
254 {
255 DWORD SizeOfStruct;
256 DWORD JobId;
257 LPCSTR UserName;
258 DWORD JobType;
259 DWORD QueueStatus;
260 DWORD Status;
261 DWORD Size;
262 DWORD PageCount;
263 LPCSTR RecipientNumber;
264 LPCSTR RecipientName;
265 LPCSTR Tsid;
266 LPCSTR SenderName;
267 LPCSTR SenderCompany;
268 LPCSTR SenderDept;
269 LPCSTR BillingCode;
270 DWORD ScheduleAction;
271 SYSTEMTIME ScheduleTime;
272 DWORD DeliveryReportType;
273 LPCSTR DeliveryReportAddress;
274 LPCSTR DocumentName;
275 } FAX_JOB_ENTRYA, *PFAX_JOB_ENTRYA;
276
277 typedef struct _FAX_JOB_ENTRYW
278 {
279 DWORD SizeOfStruct;
280 DWORD JobId;
281 LPCWSTR UserName;
282 DWORD JobType;
283 DWORD QueueStatus;
284 DWORD Status;
285 DWORD Size;
286 DWORD PageCount;
287 LPCWSTR RecipientNumber;
288 LPCWSTR RecipientName;
289 LPCWSTR Tsid;
290 LPCWSTR SenderName;
291 LPCWSTR SenderCompany;
292 LPCWSTR SenderDept;
293 LPCWSTR BillingCode;
294 DWORD ScheduleAction;
295 SYSTEMTIME ScheduleTime;
296 DWORD DeliveryReportType;
297 LPCWSTR DeliveryReportAddress;
298 LPCWSTR DocumentName;
299 } FAX_JOB_ENTRYW, *PFAX_JOB_ENTRYW;
300
301 typedef struct _FAX_PORT_INFOA
302 {
303 DWORD SizeOfStruct;
304 DWORD DeviceId;
305 DWORD State;
306 DWORD Flags;
307 DWORD Rings;
308 DWORD Priority;
309 LPCSTR DeviceName;
310 LPCSTR Tsid;
311 LPCSTR Csid;
312 } FAX_PORT_INFOA, *PFAX_PORT_INFOA;
313
314 typedef struct _FAX_PORT_INFOW
315 {
316 DWORD SizeOfStruct;
317 DWORD DeviceId;
318 DWORD State;
319 DWORD Flags;
320 DWORD Rings;
321 DWORD Priority;
322 LPCWSTR DeviceName;
323 LPCWSTR Tsid;
324 LPCWSTR Csid;
325 } FAX_PORT_INFOW, *PFAX_PORT_INFOW;
326
327 typedef struct _FAX_ROUTING_METHODA
328 {
329 DWORD SizeOfStruct;
330 DWORD DeviceId;
331 BOOL Enabled;
332 LPCSTR DeviceName;
333 LPCSTR Guid;
334 LPCSTR FriendlyName;
335 LPCSTR FunctionName;
336 LPCSTR ExtensionImageName;
337 LPCSTR ExtensionFriendlyName;
338 } FAX_ROUTING_METHODA, *PFAX_ROUTING_METHODA;
339
340 typedef struct _FAX_ROUTING_METHODW
341 {
342 DWORD SizeOfStruct;
343 DWORD DeviceId;
344 BOOL Enabled;
345 LPCWSTR DeviceName;
346 LPCWSTR Guid;
347 LPCWSTR FriendlyName;
348 LPCWSTR FunctionName;
349 LPCWSTR ExtensionImageName;
350 LPCWSTR ExtensionFriendlyName;
351 } FAX_ROUTING_METHODW, *PFAX_ROUTING_METHODW;
352
353 typedef struct _FAX_CONFIGURATIONA
354 {
355 DWORD SizeOfStruct;
356 DWORD Retries;
357 DWORD RetryDelay;
358 BOOL Branding;
359 DWORD DirtyDays;
360 BOOL UseDeviceTsid;
361 BOOL ServerCp;
362 BOOL PauseServerQueue;
363 FAX_TIME StartCheapTime;
364 FAX_TIME StopCheapTime;
365 BOOL ArchiveOutgoingFaxes;
366 LPCSTR ArchiveDirectory;
367 LPCSTR InboundProfile;
368 } FAX_CONFIGURATIONA, *PFAX_CONFIGURATIONA;
369
370 typedef struct _FAX_CONFIGURATIONW
371 {
372 DWORD SizeOfStruct;
373 DWORD Retries;
374 DWORD RetryDelay;
375 BOOL Branding;
376 DWORD DirtyDays;
377 BOOL UseDeviceTsid;
378 BOOL ServerCp;
379 BOOL PauseServerQueue;
380 FAX_TIME StartCheapTime;
381 FAX_TIME StopCheapTime;
382 BOOL ArchiveOutgoingFaxes;
383 LPCWSTR ArchiveDirectory;
384 LPCWSTR InboundProfile;
385 } FAX_CONFIGURATIONW, *PFAX_CONFIGURATIONW;
386
387 typedef struct _FAX_DEVICE_STATUSA
388 {
389 DWORD SizeOfStruct;
390 LPCSTR CallerId;
391 LPCSTR Csid;
392 DWORD CurrentPage;
393 DWORD DeviceId;
394 LPCSTR DeviceName;
395 LPCSTR DocumentName;
396 DWORD JobType;
397 LPCSTR PhoneNumber;
398 LPCSTR RoutingString;
399 LPCSTR SenderName;
400 LPCSTR RecipientName;
401 DWORD Size;
402 FILETIME StartTime;
403 DWORD Status;
404 LPCSTR StatusString;
405 FILETIME SubmittedTime;
406 DWORD TotalPages;
407 LPCSTR Tsid;
408 LPCSTR UserName;
409 } FAX_DEVICE_STATUSA, *PFAX_DEVICE_STATUSA;
410
411 typedef struct _FAX_DEVICE_STATUSW
412 {
413 DWORD SizeOfStruct;
414 LPCWSTR CallerId;
415 LPCWSTR Csid;
416 DWORD CurrentPage;
417 DWORD DeviceId;
418 LPCWSTR DeviceName;
419 LPCWSTR DocumentName;
420 DWORD JobType;
421 LPCWSTR PhoneNumber;
422 LPCWSTR RoutingString;
423 LPCWSTR SenderName;
424 LPCWSTR RecipientName;
425 DWORD Size;
426 FILETIME StartTime;
427 DWORD Status;
428 LPCWSTR StatusString;
429 FILETIME SubmittedTime;
430 DWORD TotalPages;
431 LPCWSTR Tsid;
432 LPCWSTR UserName;
433 } FAX_DEVICE_STATUSW, *PFAX_DEVICE_STATUSW;
434
435 typedef struct _FAX_LOG_CATEGORYA
436 {
437 LPCSTR Name;
438 DWORD Category;
439 DWORD Level;
440 } FAX_LOG_CATEGORYA, *PFAX_LOG_CATEGORYA;
441
442 typedef struct _FAX_LOG_CATEGORYW
443 {
444 LPCWSTR Name;
445 DWORD Category;
446 DWORD Level;
447 } FAX_LOG_CATEGORYW, *PFAX_LOG_CATEGORYW;
448
449 typedef struct _FAX_CONTEXT_INFOA
450 {
451 DWORD SizeOfStruct;
452 HDC hDC;
453 CHAR ServerName[MAX_COMPUTERNAME_LENGTH + 1];
454 } FAX_CONTEXT_INFOA, *PFAX_CONTEXT_INFOA;
455
456 typedef struct _FAX_CONTEXT_INFOW
457 {
458 DWORD SizeOfStruct;
459 HDC hDC;
460 WCHAR ServerName[MAX_COMPUTERNAME_LENGTH + 1];
461 } FAX_CONTEXT_INFOW, *PFAX_CONTEXT_INFOW;
462
463 typedef struct _FAX_PRINT_INFOA
464 {
465 DWORD SizeOfStruct;
466 LPCSTR DocName;
467 LPCSTR RecipientName;
468 LPCSTR RecipientNumber;
469 LPCSTR SenderName;
470 LPCSTR SenderCompany;
471 LPCSTR SenderDept;
472 LPCSTR SenderBillingCode;
473 LPCSTR Reserved;
474 LPCSTR DrEmailAddress;
475 LPCSTR OutputFileName;
476 } FAX_PRINT_INFOA, *PFAX_PRINT_INFOA;
477
478 typedef struct _FAX_PRINT_INFOW
479 {
480 DWORD SizeOfStruct;
481 LPCWSTR DocName;
482 LPCWSTR RecipientName;
483 LPCWSTR RecipientNumber;
484 LPCWSTR SenderName;
485 LPCWSTR SenderCompany;
486 LPCWSTR SenderDept;
487 LPCWSTR SenderBillingCode;
488 LPCWSTR Reserved;
489 LPCWSTR DrEmailAddress;
490 LPCWSTR OutputFileName;
491 } FAX_PRINT_INFOW, *PFAX_PRINT_INFOW;
492
493 typedef BOOL (CALLBACK *PFAX_RECIPIENT_CALLBACKA)(HANDLE FaxHandle, DWORD RecipientNumber, LPVOID Context, PFAX_JOB_PARAMA JobParams, PFAX_COVERAGE_INFOA CoverpageInfo);
494 typedef BOOL (CALLBACK *PFAX_RECIPIENT_CALLBACKW)(HANDLE FaxHandle, DWORD RecipientNumber, LPVOID Context, PFAX_JOB_PARAMW JobParams, PFAX_COVERAGE_INFOW CoverpageInfo);
495
496 #ifdef UNICODE
497 typedef FAX_JOB_PARAMW FAX_JOB_PARAM;
498 typedef PFAX_JOB_PARAMW PFAX_JOB_PARAM;
499 typedef FAX_COVERAGE_INFOW FAX_COVERAGE_INFO;
500 typedef PFAX_COVERAGE_INFOW PFAX_COVERAGE_INFO;
501 typedef FAX_GLOBAL_ROUTING_INFOW FAX_GLOBAL_ROUTING_INFO;
502 typedef PFAX_GLOBAL_ROUTING_INFOW PFAX_GLOBAL_ROUTING_INFO;
503 typedef FAX_JOB_ENTRYW FAX_JOB_ENTRY;
504 typedef PFAX_JOB_ENTRYW PFAX_JOB_ENTRY;
505 typedef FAX_PORT_INFOW FAX_PORT_INFO;
506 typedef PFAX_PORT_INFOW PFAX_PORT_INFO;
507 typedef FAX_ROUTING_METHODW FAX_ROUTING_METHOD;
508 typedef PFAX_ROUTING_METHODW PFAX_ROUTING_METHOD;
509 typedef FAX_CONFIGURATIONW FAX_CONFIGURATION;
510 typedef PFAX_CONFIGURATIONW PFAX_CONFIGURATION;
511 typedef FAX_DEVICE_STATUSW FAX_DEVICE_STATUS;
512 typedef PFAX_DEVICE_STATUSW PFAX_DEVICE_STATUS;
513 typedef FAX_LOG_CATEGORYW FAX_LOG_CATEGORY;
514 typedef PFAX_LOG_CATEGORYW PFAX_LOG_CATEGORY;
515 typedef FAX_CONTEXT_INFOW FAX_CONTEXT_INFO;
516 typedef PFAX_CONTEXT_INFOW PFAX_CONTEXT_INFO;
517 typedef FAX_PRINT_INFOW FAX_PRINT_INFO;
518 typedef PFAX_PRINT_INFOW PFAX_PRINT_INFO;
519 typedef PFAX_RECIPIENT_CALLBACKA PFAX_RECIPIENT_CALLBACK;
520 #define FaxCompleteJobParams FaxCompleteJobParamsW
521 #define FaxConnectFaxServer FaxConnectFaxServerW
522 #define FaxEnableRoutingMethod FaxEnableRoutingMethodW
523 #define FaxEnumGlobalRoutingInfo FaxEnumGlobalRoutingInfoW
524 #define FaxEnumJobs FaxEnumJobsW
525 #define FaxEnumPorts FaxEnumPortsW
526 #define FaxEnumRoutingMethods FaxEnumRoutingMethodsW
527 #define FaxGetConfiguration FaxGetConfigurationW
528 #define FaxGetDeviceStatus FaxGetDeviceStatusW
529 #define FaxGetJob FaxGetJobW
530 #define FaxGetLoggingCategories FaxGetLoggingCategoriesW
531 #define FaxGetPort FaxGetPortW
532 #define FaxGetRoutingInfo FaxGetRoutingInfoW
533 #define FaxSendDocument FaxSendDocumentW
534 #define FaxSendDocumentForBroadcast FaxSendDocumentForBroadcastW
535 #define FaxSetConfiguration FaxSetConfigurationW
536 #define FaxSetGlobalRoutingInfo FaxSetGlobalRoutingInfoW
537 #define FaxSetJob FaxSetJobW
538 #define FaxSetLoggingCategories FaxSetLoggingCategoriesW
539 #define FaxSetPort FaxSetPortW
540 #define FaxSetRoutingInfo FaxSetRoutingInfoW
541 #define FaxStartPrintJob FaxStartPrintJobW
542 #else /* !UNICODE */
543 typedef FAX_JOB_PARAMA FAX_JOB_PARAM;
544 typedef PFAX_JOB_PARAMA PFAX_JOB_PARAM;
545 typedef FAX_COVERAGE_INFOA FAX_COVERAGE_INFO;
546 typedef PFAX_COVERAGE_INFOA PFAX_COVERAGE_INFO;
547 typedef FAX_GLOBAL_ROUTING_INFOA FAX_GLOBAL_ROUTING_INFO;
548 typedef PFAX_GLOBAL_ROUTING_INFOA PFAX_GLOBAL_ROUTING_INFO;
549 typedef FAX_JOB_ENTRYA FAX_JOB_ENTRY;
550 typedef PFAX_JOB_ENTRYA PFAX_JOB_ENTRY;
551 typedef FAX_PORT_INFOA FAX_PORT_INFO;
552 typedef PFAX_PORT_INFOA PFAX_PORT_INFO;
553 typedef FAX_ROUTING_METHODA FAX_ROUTING_METHOD;
554 typedef PFAX_ROUTING_METHODA PFAX_ROUTING_METHOD;
555 typedef FAX_CONFIGURATIONA FAX_CONFIGURATION;
556 typedef PFAX_CONFIGURATIONA PFAX_CONFIGURATION;
557 typedef FAX_DEVICE_STATUSA FAX_DEVICE_STATUS;
558 typedef PFAX_DEVICE_STATUSA PFAX_DEVICE_STATUS;
559 typedef FAX_LOG_CATEGORYA FAX_LOG_CATEGORY;
560 typedef PFAX_LOG_CATEGORYA PFAX_LOG_CATEGORY;
561 typedef FAX_CONTEXT_INFOA FAX_CONTEXT_INFO;
562 typedef PFAX_CONTEXT_INFOA PFAX_CONTEXT_INFO;
563 typedef FAX_PRINT_INFOA FAX_PRINT_INFO;
564 typedef PFAX_PRINT_INFOA PFAX_PRINT_INFO;
565 typedef PFAX_RECIPIENT_CALLBACKW PFAX_RECIPIENT_CALLBACK;
566 #define FaxCompleteJobParams FaxCompleteJobParamsA
567 #define FaxConnectFaxServer FaxConnectFaxServerA
568 #define FaxEnableRoutingMethod FaxEnableRoutingMethodA
569 #define FaxEnumGlobalRoutingInfo FaxEnumGlobalRoutingInfoA
570 #define FaxEnumJobs FaxEnumJobsA
571 #define FaxEnumPorts FaxEnumPortsA
572 #define FaxEnumRoutingMethods FaxEnumRoutingMethodsA
573 #define FaxGetConfiguration FaxGetConfigurationA
574 #define FaxGetDeviceStatus FaxGetDeviceStatusA
575 #define FaxGetJob FaxGetJobA
576 #define FaxGetLoggingCategories FaxGetLoggingCategoriesA
577 #define FaxGetPort FaxGetPortA
578 #define FaxGetRoutingInfo FaxGetRoutingInfoA
579 #define FaxSendDocument FaxSendDocumentA
580 #define FaxSendDocumentForBroadcast FaxSendDocumentForBroadcastA
581 #define FaxSetConfiguration FaxSetConfigurationA
582 #define FaxSetGlobalRoutingInfo FaxSetGlobalRoutingInfoA
583 #define FaxSetJob FaxSetJobA
584 #define FaxSetLoggingCategories FaxSetLoggingCategoriesA
585 #define FaxSetPort FaxSetPortA
586 #define FaxSetRoutingInfo FaxSetRoutingInfoA
587 #define FaxStartPrintJob FaxStartPrintJobA
588 #endif /* UNICODE */
589
590 typedef BOOL (CALLBACK *PFAX_ROUTING_INSTALLATION_CALLBACKW)(HANDLE FaxHandle, LPVOID Context, LPWSTR MethodName, LPWSTR FriendlyName, LPWSTR FunctionName, LPWSTR Guid);
591 #define PFAX_ROUTING_INSTALLATION_CALLBACK PFAX_ROUTING_INSTALLATION_CALLBACKW
592 #define FaxRegisterRoutingExtension FaxRegisterRoutingExtensionW
593 #define FaxRegisterServiceProvider FaxRegisterServiceProviderW
594
595 BOOL WINAPI FaxAbort(HANDLE FaxHandle, DWORD JobId);
596 BOOL WINAPI FaxAccessCheck(HANDLE FaxHandle, DWORD AccessMask);
597 BOOL WINAPI FaxClose(HANDLE FaxHandle);
598 BOOL WINAPI FaxCompleteJobParamsA(PFAX_JOB_PARAMA *JobParams, PFAX_COVERAGE_INFOA *CoverageInfo);
599 BOOL WINAPI FaxCompleteJobParamsW(PFAX_JOB_PARAMW *JobParams, PFAX_COVERAGE_INFOW *CoverageInfo);
600 BOOL WINAPI FaxConnectFaxServerA(LPCSTR MachineName, LPHANDLE FaxHandle);
601 BOOL WINAPI FaxConnectFaxServerW(LPCWSTR MachineName, LPHANDLE FaxHandle);
602 BOOL WINAPI FaxEnableRoutingMethodA(HANDLE FaxPortHandle, LPCSTR RoutingGuid, BOOL Enabled);
603 BOOL WINAPI FaxEnableRoutingMethodW(HANDLE FaxPortHandle, LPCWSTR RoutingGuid, BOOL Enabled);
604 BOOL WINAPI FaxEnumGlobalRoutingInfoA(HANDLE FaxHandle, PFAX_GLOBAL_ROUTING_INFOA *RoutingInfo, LPDWORD MethodsReturned);
605 BOOL WINAPI FaxEnumGlobalRoutingInfoW(HANDLE FaxHandle, PFAX_GLOBAL_ROUTING_INFOW *RoutingInfo, LPDWORD MethodsReturned);
606 BOOL WINAPI FaxEnumJobsA(HANDLE FaxHandle, PFAX_JOB_ENTRYA *JobEntry, LPDWORD JobsReturned);
607 BOOL WINAPI FaxEnumJobsW(HANDLE FaxHandle, PFAX_JOB_ENTRYW *JobEntry, LPDWORD JobsReturned);
608 BOOL WINAPI FaxEnumPortsA(HANDLE FaxHandle, PFAX_PORT_INFOA *PortInfo, LPDWORD PortsReturned);
609 BOOL WINAPI FaxEnumPortsW(HANDLE FaxHandle, PFAX_PORT_INFOW *PortInfo, LPDWORD PortsReturned);
610 BOOL WINAPI FaxEnumRoutingMethodsA(HANDLE FaxPortHandle, PFAX_ROUTING_METHODA *RoutingMethod, LPDWORD MethodsReturned);
611 BOOL WINAPI FaxEnumRoutingMethodsW(HANDLE FaxPortHandle, PFAX_ROUTING_METHODW *RoutingMethod, LPDWORD MethodsReturned);
612 VOID WINAPI FaxFreeBuffer(LPVOID Buffer);
613 BOOL WINAPI FaxGetConfigurationA(HANDLE FaxHandle, PFAX_CONFIGURATIONA *FaxConfig);
614 BOOL WINAPI FaxGetConfigurationW(HANDLE FaxHandle, PFAX_CONFIGURATIONW *FaxConfig);
615 BOOL WINAPI FaxGetDeviceStatusA(HANDLE FaxPortHandle, PFAX_DEVICE_STATUSA *DeviceStatus);
616 BOOL WINAPI FaxGetDeviceStatusW(HANDLE FaxPortHandle, PFAX_DEVICE_STATUSW *DeviceStatus);
617 BOOL WINAPI FaxGetJobA(HANDLE FaxHandle, DWORD JobId, PFAX_JOB_ENTRYA *JobEntry);
618 BOOL WINAPI FaxGetJobW(HANDLE FaxHandle, DWORD JobId, PFAX_JOB_ENTRYW *JobEntry);
619 BOOL WINAPI FaxGetLoggingCategoriesA(HANDLE FaxHandle, PFAX_LOG_CATEGORYA *Categories, LPDWORD NumberCategories);
620 BOOL WINAPI FaxGetLoggingCategoriesW(HANDLE FaxHandle, PFAX_LOG_CATEGORYW *Categories, LPDWORD NumberCategories);
621 BOOL WINAPI FaxGetPageData(HANDLE FaxHandle, DWORD JobId, LPBYTE *Buffer, LPDWORD BufferSize, LPDWORD ImageWidth, LPDWORD ImageHeight);
622 BOOL WINAPI FaxGetPortA(HANDLE FaxPortHandle, PFAX_PORT_INFOA *PortInfo);
623 BOOL WINAPI FaxGetPortW(HANDLE FaxPortHandle, PFAX_PORT_INFOW *PortInfo);
624 BOOL WINAPI FaxGetRoutingInfoA(HANDLE FaxPortHandle, LPCSTR RoutingGuid, LPBYTE *RoutingInfoBuffer, LPDWORD RoutingInfoBufferSize);
625 BOOL WINAPI FaxGetRoutingInfoW(HANDLE FaxPortHandle, LPCWSTR RoutingGuid, LPBYTE *RoutingInfoBuffer, LPDWORD RoutingInfoBufferSize);
626 BOOL WINAPI FaxInitializeEventQueue(HANDLE FaxHandle, HANDLE CompletionPort, ULONG_PTR CompletionKey, HWND hWnd, UINT MessageStart);
627 BOOL WINAPI FaxOpenPort(HANDLE FaxHandle, DWORD DeviceId, DWORD Flags, LPHANDLE FaxPortHandle);
628 BOOL WINAPI FaxPrintCoverPageA(CONST FAX_CONTEXT_INFOA *FaxContextInfo, CONST FAX_COVERAGE_INFOA *CoverPageInfo);
629 BOOL WINAPI FaxPrintCoverPageW(CONST FAX_CONTEXT_INFOW *FaxContextInfo, CONST FAX_COVERAGE_INFOW *CoverPageInfo);
630 BOOL WINAPI FaxRegisterRoutingExtensionW(HANDLE FaxHandle, LPCWSTR ExtensionName, LPCWSTR FriendlyName, LPCWSTR ImageName, PFAX_ROUTING_INSTALLATION_CALLBACK CallBack, LPVOID Context);
631 BOOL WINAPI FaxRegisterServiceProviderW(LPCWSTR DeviceProvider, LPCWSTR FriendlyName, LPCWSTR ImageName, LPCWSTR TspName);
632 BOOL WINAPI FaxSendDocumentA(HANDLE FaxHandle, LPCSTR FileName, PFAX_JOB_PARAMA JobParams, CONST FAX_COVERAGE_INFOA *CoverpageInfo, LPDWORD FaxJobId);
633 BOOL WINAPI FaxSendDocumentForBroadcastA(HANDLE FaxHandle, LPCSTR FileName, LPDWORD FaxJobId, PFAX_RECIPIENT_CALLBACKA FaxRecipientCallback, LPVOID Context);
634 BOOL WINAPI FaxSendDocumentForBroadcastW(HANDLE FaxHandle, LPCWSTR FileName, LPDWORD FaxJobId, PFAX_RECIPIENT_CALLBACKW FaxRecipientCallback, LPVOID Context);
635 BOOL WINAPI FaxSendDocumentW(HANDLE FaxHandle, LPCWSTR FileName, PFAX_JOB_PARAMW JobParams, CONST FAX_COVERAGE_INFOW *CoverpageInfo, LPDWORD FaxJobId);
636 BOOL WINAPI FaxSetConfigurationA(HANDLE FaxHandle, CONST FAX_CONFIGURATIONA *FaxConfig);
637 BOOL WINAPI FaxSetConfigurationW(HANDLE FaxHandle, CONST FAX_CONFIGURATIONW *FaxConfig);
638 BOOL WINAPI FaxSetGlobalRoutingInfoA(HANDLE FaxHandle, CONST FAX_GLOBAL_ROUTING_INFOA *RoutingInfo);
639 BOOL WINAPI FaxSetGlobalRoutingInfoW(HANDLE FaxHandle, CONST FAX_GLOBAL_ROUTING_INFOW *RoutingInfo);
640 BOOL WINAPI FaxSetJobA(HANDLE FaxHandle, DWORD JobId, DWORD Command, CONST FAX_JOB_ENTRYA *JobEntry);
641 BOOL WINAPI FaxSetJobW(HANDLE FaxHandle, DWORD JobId, DWORD Command, CONST FAX_JOB_ENTRYW *JobEntry);
642 BOOL WINAPI FaxSetLoggingCategoriesA(HANDLE FaxHandle, CONST FAX_LOG_CATEGORYA *Categories, DWORD NumberCategories);
643 BOOL WINAPI FaxSetLoggingCategoriesW(HANDLE FaxHandle, CONST FAX_LOG_CATEGORYW *Categories, DWORD NumberCategories);
644 BOOL WINAPI FaxSetPortA(HANDLE FaxPortHandle, CONST FAX_PORT_INFOA *PortInfo);
645 BOOL WINAPI FaxSetPortW(HANDLE FaxPortHandle, CONST FAX_PORT_INFOW *PortInfo);
646 BOOL WINAPI FaxSetRoutingInfoA(HANDLE FaxPortHandle, LPCSTR RoutingGuid, CONST BYTE *RoutingInfoBuffer, DWORD RoutingInfoBufferSize);
647 BOOL WINAPI FaxSetRoutingInfoW(HANDLE FaxPortHandle, LPCWSTR RoutingGuid, CONST BYTE *RoutingInfoBuffer, DWORD RoutingInfoBufferSize);
648 BOOL WINAPI FaxStartPrintJobA(LPCSTR PrinterName, CONST FAX_PRINT_INFOA *PrintInfo, LPDWORD FaxJobId, PFAX_CONTEXT_INFOA FaxContextInfo);
649 BOOL WINAPI FaxStartPrintJobW(LPCWSTR PrinterName, CONST FAX_PRINT_INFOW *PrintInfo, LPDWORD FaxJobId, PFAX_CONTEXT_INFOW FaxContextInfo);
650
651 #ifdef __cplusplus
652 }
653 #endif
654 #endif /* __WINFAX_H */
655
656 /* EOF */