Reactos
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
22extern "C" {
23#endif
24
25typedef DWORD HCALL;
26
27typedef struct _FAX_TIME
28{
29 WORD Hour;
30 WORD Minute;
31} FAX_TIME, *PFAX_TIME;
32
33typedef enum
34{
35 JSA_NOW = 0,
36 JSA_SPECIFIC_TIME,
37 JSA_DISCOUNT_PERIOD
38} FAX_ENUM_JOB_SEND_ATTRIBUTES;
39
40typedef enum
41{
42 DRT_NONE = 0,
43 DRT_EMAIL,
44 DRT_INBOX
45} FAX_ENUM_DELIVERY_REPORT_TYPES;
46
47typedef 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
55typedef 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
63typedef enum
64{
65 PORT_OPEN_QUERY = 1,
66 PORT_OPEN_MODIFY
67} FAX_ENUM_PORT_OPEN_TYPE;
68
69typedef 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
119typedef 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
138typedef 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
157typedef 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
194typedef 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
231typedef 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
242typedef 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
253typedef 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
277typedef 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
301typedef 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
314typedef 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
327typedef 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
340typedef 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
353typedef 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
370typedef 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
387typedef 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
411typedef 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
435typedef struct _FAX_LOG_CATEGORYA
436{
437 LPCSTR Name;
438 DWORD Category;
439 DWORD Level;
440} FAX_LOG_CATEGORYA, *PFAX_LOG_CATEGORYA;
441
442typedef struct _FAX_LOG_CATEGORYW
443{
444 LPCWSTR Name;
445 DWORD Category;
446 DWORD Level;
447} FAX_LOG_CATEGORYW, *PFAX_LOG_CATEGORYW;
448
449typedef 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
456typedef 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
463typedef 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
478typedef 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
493typedef BOOL (CALLBACK *PFAX_RECIPIENT_CALLBACKA)(HANDLE FaxHandle, DWORD RecipientNumber, LPVOID Context, PFAX_JOB_PARAMA JobParams, PFAX_COVERAGE_INFOA CoverpageInfo);
494typedef BOOL (CALLBACK *PFAX_RECIPIENT_CALLBACKW)(HANDLE FaxHandle, DWORD RecipientNumber, LPVOID Context, PFAX_JOB_PARAMW JobParams, PFAX_COVERAGE_INFOW CoverpageInfo);
495
496#ifdef UNICODE
497typedef FAX_JOB_PARAMW FAX_JOB_PARAM;
498typedef PFAX_JOB_PARAMW PFAX_JOB_PARAM;
499typedef FAX_COVERAGE_INFOW FAX_COVERAGE_INFO;
500typedef PFAX_COVERAGE_INFOW PFAX_COVERAGE_INFO;
501typedef FAX_GLOBAL_ROUTING_INFOW FAX_GLOBAL_ROUTING_INFO;
502typedef PFAX_GLOBAL_ROUTING_INFOW PFAX_GLOBAL_ROUTING_INFO;
503typedef FAX_JOB_ENTRYW FAX_JOB_ENTRY;
504typedef PFAX_JOB_ENTRYW PFAX_JOB_ENTRY;
505typedef FAX_PORT_INFOW FAX_PORT_INFO;
506typedef PFAX_PORT_INFOW PFAX_PORT_INFO;
507typedef FAX_ROUTING_METHODW FAX_ROUTING_METHOD;
508typedef PFAX_ROUTING_METHODW PFAX_ROUTING_METHOD;
509typedef FAX_CONFIGURATIONW FAX_CONFIGURATION;
510typedef PFAX_CONFIGURATIONW PFAX_CONFIGURATION;
511typedef FAX_DEVICE_STATUSW FAX_DEVICE_STATUS;
512typedef PFAX_DEVICE_STATUSW PFAX_DEVICE_STATUS;
513typedef FAX_LOG_CATEGORYW FAX_LOG_CATEGORY;
514typedef PFAX_LOG_CATEGORYW PFAX_LOG_CATEGORY;
515typedef FAX_CONTEXT_INFOW FAX_CONTEXT_INFO;
516typedef PFAX_CONTEXT_INFOW PFAX_CONTEXT_INFO;
517typedef FAX_PRINT_INFOW FAX_PRINT_INFO;
518typedef PFAX_PRINT_INFOW PFAX_PRINT_INFO;
519typedef 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 */
543typedef FAX_JOB_PARAMA FAX_JOB_PARAM;
544typedef PFAX_JOB_PARAMA PFAX_JOB_PARAM;
545typedef FAX_COVERAGE_INFOA FAX_COVERAGE_INFO;
546typedef PFAX_COVERAGE_INFOA PFAX_COVERAGE_INFO;
547typedef FAX_GLOBAL_ROUTING_INFOA FAX_GLOBAL_ROUTING_INFO;
548typedef PFAX_GLOBAL_ROUTING_INFOA PFAX_GLOBAL_ROUTING_INFO;
549typedef FAX_JOB_ENTRYA FAX_JOB_ENTRY;
550typedef PFAX_JOB_ENTRYA PFAX_JOB_ENTRY;
551typedef FAX_PORT_INFOA FAX_PORT_INFO;
552typedef PFAX_PORT_INFOA PFAX_PORT_INFO;
553typedef FAX_ROUTING_METHODA FAX_ROUTING_METHOD;
554typedef PFAX_ROUTING_METHODA PFAX_ROUTING_METHOD;
555typedef FAX_CONFIGURATIONA FAX_CONFIGURATION;
556typedef PFAX_CONFIGURATIONA PFAX_CONFIGURATION;
557typedef FAX_DEVICE_STATUSA FAX_DEVICE_STATUS;
558typedef PFAX_DEVICE_STATUSA PFAX_DEVICE_STATUS;
559typedef FAX_LOG_CATEGORYA FAX_LOG_CATEGORY;
560typedef PFAX_LOG_CATEGORYA PFAX_LOG_CATEGORY;
561typedef FAX_CONTEXT_INFOA FAX_CONTEXT_INFO;
562typedef PFAX_CONTEXT_INFOA PFAX_CONTEXT_INFO;
563typedef FAX_PRINT_INFOA FAX_PRINT_INFO;
564typedef PFAX_PRINT_INFOA PFAX_PRINT_INFO;
565typedef 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
590typedef 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
595BOOL WINAPI FaxAbort(HANDLE FaxHandle, DWORD JobId);
596BOOL WINAPI FaxAccessCheck(HANDLE FaxHandle, DWORD AccessMask);
597BOOL WINAPI FaxClose(HANDLE FaxHandle);
598BOOL WINAPI FaxCompleteJobParamsA(PFAX_JOB_PARAMA *JobParams, PFAX_COVERAGE_INFOA *CoverageInfo);
599BOOL WINAPI FaxCompleteJobParamsW(PFAX_JOB_PARAMW *JobParams, PFAX_COVERAGE_INFOW *CoverageInfo);
600BOOL WINAPI FaxConnectFaxServerA(LPCSTR MachineName, LPHANDLE FaxHandle);
601BOOL WINAPI FaxConnectFaxServerW(LPCWSTR MachineName, LPHANDLE FaxHandle);
602BOOL WINAPI FaxEnableRoutingMethodA(HANDLE FaxPortHandle, LPCSTR RoutingGuid, BOOL Enabled);
603BOOL WINAPI FaxEnableRoutingMethodW(HANDLE FaxPortHandle, LPCWSTR RoutingGuid, BOOL Enabled);
604BOOL WINAPI FaxEnumGlobalRoutingInfoA(HANDLE FaxHandle, PFAX_GLOBAL_ROUTING_INFOA *RoutingInfo, LPDWORD MethodsReturned);
605BOOL WINAPI FaxEnumGlobalRoutingInfoW(HANDLE FaxHandle, PFAX_GLOBAL_ROUTING_INFOW *RoutingInfo, LPDWORD MethodsReturned);
606BOOL WINAPI FaxEnumJobsA(HANDLE FaxHandle, PFAX_JOB_ENTRYA *JobEntry, LPDWORD JobsReturned);
607BOOL WINAPI FaxEnumJobsW(HANDLE FaxHandle, PFAX_JOB_ENTRYW *JobEntry, LPDWORD JobsReturned);
608BOOL WINAPI FaxEnumPortsA(HANDLE FaxHandle, PFAX_PORT_INFOA *PortInfo, LPDWORD PortsReturned);
609BOOL WINAPI FaxEnumPortsW(HANDLE FaxHandle, PFAX_PORT_INFOW *PortInfo, LPDWORD PortsReturned);
610BOOL WINAPI FaxEnumRoutingMethodsA(HANDLE FaxPortHandle, PFAX_ROUTING_METHODA *RoutingMethod, LPDWORD MethodsReturned);
611BOOL WINAPI FaxEnumRoutingMethodsW(HANDLE FaxPortHandle, PFAX_ROUTING_METHODW *RoutingMethod, LPDWORD MethodsReturned);
612VOID WINAPI FaxFreeBuffer(LPVOID Buffer);
613BOOL WINAPI FaxGetConfigurationA(HANDLE FaxHandle, PFAX_CONFIGURATIONA *FaxConfig);
614BOOL WINAPI FaxGetConfigurationW(HANDLE FaxHandle, PFAX_CONFIGURATIONW *FaxConfig);
615BOOL WINAPI FaxGetDeviceStatusA(HANDLE FaxPortHandle, PFAX_DEVICE_STATUSA *DeviceStatus);
616BOOL WINAPI FaxGetDeviceStatusW(HANDLE FaxPortHandle, PFAX_DEVICE_STATUSW *DeviceStatus);
617BOOL WINAPI FaxGetJobA(HANDLE FaxHandle, DWORD JobId, PFAX_JOB_ENTRYA *JobEntry);
618BOOL WINAPI FaxGetJobW(HANDLE FaxHandle, DWORD JobId, PFAX_JOB_ENTRYW *JobEntry);
619BOOL WINAPI FaxGetLoggingCategoriesA(HANDLE FaxHandle, PFAX_LOG_CATEGORYA *Categories, LPDWORD NumberCategories);
620BOOL WINAPI FaxGetLoggingCategoriesW(HANDLE FaxHandle, PFAX_LOG_CATEGORYW *Categories, LPDWORD NumberCategories);
621BOOL WINAPI FaxGetPageData(HANDLE FaxHandle, DWORD JobId, LPBYTE *Buffer, LPDWORD BufferSize, LPDWORD ImageWidth, LPDWORD ImageHeight);
622BOOL WINAPI FaxGetPortA(HANDLE FaxPortHandle, PFAX_PORT_INFOA *PortInfo);
623BOOL WINAPI FaxGetPortW(HANDLE FaxPortHandle, PFAX_PORT_INFOW *PortInfo);
624BOOL WINAPI FaxGetRoutingInfoA(HANDLE FaxPortHandle, LPCSTR RoutingGuid, LPBYTE *RoutingInfoBuffer, LPDWORD RoutingInfoBufferSize);
625BOOL WINAPI FaxGetRoutingInfoW(HANDLE FaxPortHandle, LPCWSTR RoutingGuid, LPBYTE *RoutingInfoBuffer, LPDWORD RoutingInfoBufferSize);
626BOOL WINAPI FaxInitializeEventQueue(HANDLE FaxHandle, HANDLE CompletionPort, ULONG_PTR CompletionKey, HWND hWnd, UINT MessageStart);
627BOOL WINAPI FaxOpenPort(HANDLE FaxHandle, DWORD DeviceId, DWORD Flags, LPHANDLE FaxPortHandle);
628BOOL WINAPI FaxPrintCoverPageA(CONST FAX_CONTEXT_INFOA *FaxContextInfo, CONST FAX_COVERAGE_INFOA *CoverPageInfo);
629BOOL WINAPI FaxPrintCoverPageW(CONST FAX_CONTEXT_INFOW *FaxContextInfo, CONST FAX_COVERAGE_INFOW *CoverPageInfo);
630BOOL WINAPI FaxRegisterRoutingExtensionW(HANDLE FaxHandle, LPCWSTR ExtensionName, LPCWSTR FriendlyName, LPCWSTR ImageName, PFAX_ROUTING_INSTALLATION_CALLBACK CallBack, LPVOID Context);
631BOOL WINAPI FaxRegisterServiceProviderW(LPCWSTR DeviceProvider, LPCWSTR FriendlyName, LPCWSTR ImageName, LPCWSTR TspName);
632BOOL WINAPI FaxSendDocumentA(HANDLE FaxHandle, LPCSTR FileName, PFAX_JOB_PARAMA JobParams, CONST FAX_COVERAGE_INFOA *CoverpageInfo, LPDWORD FaxJobId);
633BOOL WINAPI FaxSendDocumentForBroadcastA(HANDLE FaxHandle, LPCSTR FileName, LPDWORD FaxJobId, PFAX_RECIPIENT_CALLBACKA FaxRecipientCallback, LPVOID Context);
634BOOL WINAPI FaxSendDocumentForBroadcastW(HANDLE FaxHandle, LPCWSTR FileName, LPDWORD FaxJobId, PFAX_RECIPIENT_CALLBACKW FaxRecipientCallback, LPVOID Context);
635BOOL WINAPI FaxSendDocumentW(HANDLE FaxHandle, LPCWSTR FileName, PFAX_JOB_PARAMW JobParams, CONST FAX_COVERAGE_INFOW *CoverpageInfo, LPDWORD FaxJobId);
636BOOL WINAPI FaxSetConfigurationA(HANDLE FaxHandle, CONST FAX_CONFIGURATIONA *FaxConfig);
637BOOL WINAPI FaxSetConfigurationW(HANDLE FaxHandle, CONST FAX_CONFIGURATIONW *FaxConfig);
638BOOL WINAPI FaxSetGlobalRoutingInfoA(HANDLE FaxHandle, CONST FAX_GLOBAL_ROUTING_INFOA *RoutingInfo);
639BOOL WINAPI FaxSetGlobalRoutingInfoW(HANDLE FaxHandle, CONST FAX_GLOBAL_ROUTING_INFOW *RoutingInfo);
640BOOL WINAPI FaxSetJobA(HANDLE FaxHandle, DWORD JobId, DWORD Command, CONST FAX_JOB_ENTRYA *JobEntry);
641BOOL WINAPI FaxSetJobW(HANDLE FaxHandle, DWORD JobId, DWORD Command, CONST FAX_JOB_ENTRYW *JobEntry);
642BOOL WINAPI FaxSetLoggingCategoriesA(HANDLE FaxHandle, CONST FAX_LOG_CATEGORYA *Categories, DWORD NumberCategories);
643BOOL WINAPI FaxSetLoggingCategoriesW(HANDLE FaxHandle, CONST FAX_LOG_CATEGORYW *Categories, DWORD NumberCategories);
644BOOL WINAPI FaxSetPortA(HANDLE FaxPortHandle, CONST FAX_PORT_INFOA *PortInfo);
645BOOL WINAPI FaxSetPortW(HANDLE FaxPortHandle, CONST FAX_PORT_INFOW *PortInfo);
646BOOL WINAPI FaxSetRoutingInfoA(HANDLE FaxPortHandle, LPCSTR RoutingGuid, CONST BYTE *RoutingInfoBuffer, DWORD RoutingInfoBufferSize);
647BOOL WINAPI FaxSetRoutingInfoW(HANDLE FaxPortHandle, LPCWSTR RoutingGuid, CONST BYTE *RoutingInfoBuffer, DWORD RoutingInfoBufferSize);
648BOOL WINAPI FaxStartPrintJobA(LPCSTR PrinterName, CONST FAX_PRINT_INFOA *PrintInfo, LPDWORD FaxJobId, PFAX_CONTEXT_INFOA FaxContextInfo);
649BOOL 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 */