windows-nt/Source/XPSP1/NT/public/sdk/inc/faxroute.h
2020-09-26 16:20:57 +08:00

142 lines
4.3 KiB
C

/*++
Copyright (c) Microsoft Corporation. All rights reserved.
Module Name:
faxroute.h
Abstract:
This file contains the prototypes, etc for the
FAX routing extension API.
--*/
#include <commctrl.h>
#ifndef _FAXROUTE_
#define _FAXROUTE_
#if _MSC_VER > 1000
#pragma once
#endif
#ifdef __cplusplus
extern "C" {
#endif
//
// microsoft routing guids
//
#define MS_FAXROUTE_PRINTING_GUID TEXT("{aec1b37c-9af2-11d0-abf7-00c04fd91a4e}")
#define MS_FAXROUTE_FOLDER_GUID TEXT("{92041a90-9af2-11d0-abf7-00c04fd91a4e}")
#define MS_FAXROUTE_EMAIL_GUID TEXT("{6bbf7bfe-9af2-11d0-abf7-00c04fd91a4e}")
//
// callback routines
//
typedef LONG (WINAPI *PFAXROUTEADDFILE)(DWORD JobId, LPCWSTR FileName, GUID *Guid);
typedef LONG (WINAPI *PFAXROUTEDELETEFILE)(DWORD JobId, LPCWSTR FileName);
typedef BOOL (WINAPI *PFAXROUTEGETFILE)(DWORD JobId, DWORD Index, LPWSTR FileNameBuffer, LPDWORD RequiredSize);
typedef BOOL (WINAPI *PFAXROUTEENUMFILE)(DWORD JobId, GUID *GuidOwner, GUID *GuidCaller, LPCWSTR FileName, PVOID Context);
typedef BOOL (WINAPI *PFAXROUTEENUMFILES)(DWORD JobId, GUID *Guid,PFAXROUTEENUMFILE FileEnumerator, PVOID Context);
typedef BOOL (WINAPI *PFAXROUTEMODIFYROUTINGDATA)(DWORD JobId, LPCWSTR RoutingGuid, LPBYTE RoutingData, DWORD RoutingDataSize );
typedef struct _FAX_ROUTE_CALLBACKROUTINES {
DWORD SizeOfStruct; // size of the struct set by the fax service
PFAXROUTEADDFILE FaxRouteAddFile;
PFAXROUTEDELETEFILE FaxRouteDeleteFile;
PFAXROUTEGETFILE FaxRouteGetFile;
PFAXROUTEENUMFILES FaxRouteEnumFiles;
PFAXROUTEMODIFYROUTINGDATA FaxRouteModifyRoutingData;
} FAX_ROUTE_CALLBACKROUTINES, *PFAX_ROUTE_CALLBACKROUTINES;
//
// routing data structure
//
typedef struct _FAX_ROUTE {
DWORD SizeOfStruct; // size of the struct set by the fax service
DWORD JobId; // Fax job identifier
DWORDLONG ElapsedTime; // Elapsed time for whole fax job in Coordinated Universal Time (UTC)
DWORDLONG ReceiveTime; // Starting time for fax job in Coordinated Universal Time (UTC)
DWORD PageCount; // Number of pages received
LPCWSTR Csid; // Called station identifier
LPCWSTR Tsid; // Transmitting station identifier
LPCWSTR CallerId; // Caller id
LPCWSTR RoutingInfo; // Routing info such as DID, T.30-subaddress, etc.
LPCWSTR ReceiverName; // Receiver's name
LPCWSTR ReceiverNumber; // Receiver's fax number
LPCWSTR DeviceName; // Device name for the line that received the fax
DWORD DeviceId; // Permenant line identifier for the receiving device
LPBYTE RoutingInfoData; // Routing infor data to override configured info
DWORD RoutingInfoDataSize;// Size of routing info data
} FAX_ROUTE, *PFAX_ROUTE;
enum FAXROUTE_ENABLE {
QUERY_STATUS = -1,
STATUS_DISABLE = 0,
STATUS_ENABLE = 1
};
//
// prototypes
//
BOOL WINAPI
FaxRouteInitialize(
IN HANDLE HeapHandle,
IN PFAX_ROUTE_CALLBACKROUTINES FaxRouteCallbackRoutines
);
BOOL WINAPI
FaxRouteDeviceEnable(
IN LPCWSTR RoutingGuid,
IN DWORD DeviceId,
IN LONG Enabled
);
BOOL WINAPI
FaxRouteDeviceChangeNotification(
IN DWORD DeviceId,
IN BOOL NewDevice
);
BOOL WINAPI
FaxRouteGetRoutingInfo(
IN LPCWSTR RoutingGuid,
IN DWORD DeviceId,
IN LPBYTE RoutingInfo,
OUT LPDWORD RoutingInfoSize
);
BOOL WINAPI
FaxRouteSetRoutingInfo(
IN LPCWSTR RoutingGuid,
IN DWORD DeviceId,
IN const BYTE *RoutingInfo,
IN DWORD RoutingInfoSize
);
typedef BOOL (WINAPI *PFAXROUTEINITIALIZE) (HANDLE,PFAX_ROUTE_CALLBACKROUTINES);
typedef BOOL (WINAPI *PFAXROUTEMETHOD) (const FAX_ROUTE*,PVOID*,LPDWORD);
typedef BOOL (WINAPI *PFAXROUTEDEVICEENABLE) (LPCWSTR,DWORD,LONG);
typedef BOOL (WINAPI *PFAXROUTEDEVICECHANGENOTIFICATION) (DWORD,BOOL);
typedef BOOL (WINAPI *PFAXROUTEGETROUTINGINFO) (LPCWSTR,DWORD,LPBYTE,LPDWORD);
typedef BOOL (WINAPI *PFAXROUTESETROUTINGINFO) (LPCWSTR,DWORD,const BYTE*,DWORD);
#ifdef __cplusplus
}
#endif
#endif