xref: /reactos/sdk/include/psdk/winfax.h (revision 1734f297)
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 */
657