206 lines
4.6 KiB
C
206 lines
4.6 KiB
C
|
/*++
|
||
|
|
||
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
faxdev.h
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
This file contains the prototypes, etc for the
|
||
|
FAX device provider API.
|
||
|
|
||
|
--*/
|
||
|
|
||
|
#include <commctrl.h>
|
||
|
|
||
|
|
||
|
#ifndef _FAXDEV_
|
||
|
#define _FAXDEV_
|
||
|
|
||
|
#if _MSC_VER > 1000
|
||
|
#pragma once
|
||
|
#endif
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
//
|
||
|
// FAX status constants
|
||
|
//
|
||
|
|
||
|
#define FS_INITIALIZING 0x20000000
|
||
|
#define FS_DIALING 0x20000001
|
||
|
#define FS_TRANSMITTING 0x20000002
|
||
|
#define FS_RECEIVING 0x20000004
|
||
|
#define FS_COMPLETED 0x20000008
|
||
|
#define FS_HANDLED 0x20000010
|
||
|
#define FS_LINE_UNAVAILABLE 0x20000020
|
||
|
#define FS_BUSY 0x20000040
|
||
|
#define FS_NO_ANSWER 0x20000080
|
||
|
#define FS_BAD_ADDRESS 0x20000100
|
||
|
#define FS_NO_DIAL_TONE 0x20000200
|
||
|
#define FS_DISCONNECTED 0x20000400
|
||
|
#define FS_FATAL_ERROR 0x20000800 // see the stringid for the real status
|
||
|
#define FS_NOT_FAX_CALL 0x20001000
|
||
|
#define FS_CALL_DELAYED 0x20002000
|
||
|
#define FS_CALL_BLACKLISTED 0x20004000
|
||
|
#define FS_USER_ABORT 0x20200000
|
||
|
#define FS_ANSWERED 0x20800000
|
||
|
|
||
|
|
||
|
//
|
||
|
// data structures
|
||
|
//
|
||
|
|
||
|
typedef struct _FAX_SEND {
|
||
|
DWORD SizeOfStruct;
|
||
|
LPWSTR FileName;
|
||
|
LPWSTR CallerName;
|
||
|
LPWSTR CallerNumber;
|
||
|
LPWSTR ReceiverName;
|
||
|
LPWSTR ReceiverNumber;
|
||
|
BOOL Branding;
|
||
|
HCALL CallHandle;
|
||
|
DWORD Reserved[3];
|
||
|
} FAX_SEND, *PFAX_SEND;
|
||
|
|
||
|
typedef struct _FAX_RECEIVE {
|
||
|
DWORD SizeOfStruct;
|
||
|
LPWSTR FileName;
|
||
|
LPWSTR ReceiverName;
|
||
|
LPWSTR ReceiverNumber;
|
||
|
DWORD Reserved[4];
|
||
|
} FAX_RECEIVE, *PFAX_RECEIVE;
|
||
|
|
||
|
typedef struct _FAX_DEV_STATUS {
|
||
|
DWORD SizeOfStruct;
|
||
|
DWORD StatusId;
|
||
|
DWORD StringId;
|
||
|
DWORD PageCount;
|
||
|
LPWSTR CSI;
|
||
|
LPWSTR CallerId;
|
||
|
LPWSTR RoutingInfo;
|
||
|
DWORD ErrorCode;
|
||
|
DWORD Reserved[3];
|
||
|
} FAX_DEV_STATUS, *PFAX_DEV_STATUS;
|
||
|
|
||
|
typedef BOOL
|
||
|
(CALLBACK *PFAX_SERVICE_CALLBACK)(
|
||
|
IN HANDLE FaxHandle,
|
||
|
IN DWORD DeviceId,
|
||
|
IN DWORD_PTR Param1,
|
||
|
IN DWORD_PTR Param2,
|
||
|
IN DWORD_PTR Param3
|
||
|
);
|
||
|
|
||
|
typedef void
|
||
|
(CALLBACK *PFAX_LINECALLBACK)(
|
||
|
IN HANDLE FaxHandle,
|
||
|
IN DWORD hDevice,
|
||
|
IN DWORD dwMessage,
|
||
|
IN DWORD_PTR dwInstance,
|
||
|
IN DWORD_PTR dwParam1,
|
||
|
IN DWORD_PTR dwParam2,
|
||
|
IN DWORD_PTR dwParam3
|
||
|
);
|
||
|
|
||
|
BOOL WINAPI
|
||
|
FaxDevInitialize(
|
||
|
IN HLINEAPP LineAppHandle,
|
||
|
IN HANDLE HeapHandle,
|
||
|
OUT PFAX_LINECALLBACK *LineCallbackFunction,
|
||
|
IN PFAX_SERVICE_CALLBACK FaxServiceCallback
|
||
|
);
|
||
|
|
||
|
HRESULT WINAPI FaxDevShutdown(
|
||
|
void
|
||
|
);
|
||
|
|
||
|
BOOL WINAPI
|
||
|
FaxDevVirtualDeviceCreation(
|
||
|
OUT LPDWORD DeviceCount,
|
||
|
OUT LPWSTR DeviceNamePrefix,
|
||
|
OUT LPDWORD DeviceIdPrefix,
|
||
|
IN HANDLE CompletionPort,
|
||
|
IN ULONG_PTR CompletionKey
|
||
|
);
|
||
|
|
||
|
BOOL WINAPI
|
||
|
FaxDevStartJob(
|
||
|
IN HLINE LineHandle,
|
||
|
IN DWORD DeviceId,
|
||
|
OUT PHANDLE FaxHandle,
|
||
|
IN HANDLE CompletionPortHandle,
|
||
|
IN ULONG_PTR CompletionKey
|
||
|
);
|
||
|
|
||
|
BOOL WINAPI
|
||
|
FaxDevEndJob(
|
||
|
IN HANDLE FaxHandle
|
||
|
);
|
||
|
|
||
|
typedef BOOL
|
||
|
(CALLBACK *PFAX_SEND_CALLBACK)(
|
||
|
IN HANDLE FaxHandle,
|
||
|
IN HCALL CallHandle,
|
||
|
IN DWORD Reserved1,
|
||
|
IN DWORD Reserved2
|
||
|
);
|
||
|
|
||
|
BOOL WINAPI
|
||
|
FaxDevSend(
|
||
|
IN HANDLE FaxHandle,
|
||
|
IN PFAX_SEND FaxSend,
|
||
|
IN PFAX_SEND_CALLBACK FaxSendCallback
|
||
|
);
|
||
|
|
||
|
#define FAXDEVRECEIVE_SIZE 4096
|
||
|
|
||
|
BOOL WINAPI
|
||
|
FaxDevReceive(
|
||
|
IN HANDLE FaxHandle,
|
||
|
IN HCALL CallHandle,
|
||
|
IN OUT PFAX_RECEIVE FaxReceive
|
||
|
);
|
||
|
|
||
|
#define FAXDEVREPORTSTATUS_SIZE 4096
|
||
|
|
||
|
BOOL WINAPI
|
||
|
FaxDevReportStatus(
|
||
|
IN HANDLE FaxHandle OPTIONAL,
|
||
|
OUT PFAX_DEV_STATUS FaxStatus,
|
||
|
IN DWORD FaxStatusSize,
|
||
|
OUT LPDWORD FaxStatusSizeRequired
|
||
|
);
|
||
|
|
||
|
BOOL WINAPI
|
||
|
FaxDevAbortOperation(
|
||
|
IN HANDLE FaxHandle
|
||
|
);
|
||
|
|
||
|
BOOL WINAPI
|
||
|
FaxDevConfigure(
|
||
|
OUT HPROPSHEETPAGE *PropSheetPage
|
||
|
);
|
||
|
|
||
|
|
||
|
typedef BOOL (WINAPI *PFAXDEVINITIALIZE) (HLINEAPP,HANDLE,PFAX_LINECALLBACK*,PFAX_SERVICE_CALLBACK);
|
||
|
typedef BOOL (WINAPI *PFAXDEVVIRTUALDEVICECREATION) (LPDWORD,LPWSTR,LPDWORD,HANDLE,ULONG_PTR);
|
||
|
typedef BOOL (WINAPI *PFAXDEVSTARTJOB) (HLINE,DWORD,PHANDLE,HANDLE,ULONG_PTR);
|
||
|
typedef BOOL (WINAPI *PFAXDEVENDJOB) (HANDLE);
|
||
|
typedef BOOL (WINAPI *PFAXDEVSEND) (HANDLE,PFAX_SEND,PFAX_SEND_CALLBACK);
|
||
|
typedef BOOL (WINAPI *PFAXDEVRECEIVE) (HANDLE,HCALL,PFAX_RECEIVE);
|
||
|
typedef BOOL (WINAPI *PFAXDEVREPORTSTATUS) (HANDLE,PFAX_DEV_STATUS,DWORD,LPDWORD);
|
||
|
typedef BOOL (WINAPI *PFAXDEVABORTOPERATION) (HANDLE);
|
||
|
typedef BOOL (WINAPI *PFAXDEVCONFIGURE) (HPROPSHEETPAGE*);
|
||
|
typedef HRESULT (WINAPI * PFAXDEVSHUTDOWN) (void);
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#endif
|