147 lines
4.6 KiB
C
147 lines
4.6 KiB
C
#pragma option push -b -a8 -pc -A- /*P_O_Push*/
|
|
/*++
|
|
|
|
Copyright (c) 1997-1999 Microsoft Corporation
|
|
|
|
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_INBOX_GUID TEXT("{9d3d0c32-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)(IN DWORD JobId,IN LPCWSTR FileName,IN GUID *Guid);
|
|
typedef LONG (WINAPI *PFAXROUTEDELETEFILE)(IN DWORD JobId,IN LPCWSTR FileName);
|
|
typedef BOOL (WINAPI *PFAXROUTEGETFILE)(IN DWORD JobId,IN DWORD Index,OUT LPWSTR FileNameBuffer,OUT LPDWORD RequiredSize);
|
|
typedef BOOL (WINAPI *PFAXROUTEENUMFILE)(IN DWORD JobId,IN GUID *GuidOwner,IN GUID *GuidCaller,IN LPCWSTR FileName,IN OUT PVOID Context);
|
|
typedef BOOL (WINAPI *PFAXROUTEENUMFILES)(IN DWORD JobId,IN GUID *Guid,IN PFAXROUTEENUMFILE FileEnumerator,IN OUT PVOID Context);
|
|
typedef BOOL (WINAPI *PFAXROUTEMODIFYROUTINGDATA)(IN DWORD JobId,IN LPCWSTR RoutingGuid,IN LPBYTE RoutingData,IN 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) (IN HANDLE,IN PFAX_ROUTE_CALLBACKROUTINES);
|
|
typedef BOOL (WINAPI *PFAXROUTEMETHOD) (IN const FAX_ROUTE*,OUT PVOID*,OUT LPDWORD);
|
|
typedef BOOL (WINAPI *PFAXROUTEDEVICEENABLE) (IN LPCWSTR,IN DWORD,IN LONG);
|
|
typedef BOOL (WINAPI *PFAXROUTEDEVICECHANGENOTIFICATION) (IN DWORD,IN BOOL);
|
|
typedef BOOL (WINAPI *PFAXROUTEGETROUTINGINFO) (IN LPCWSTR,IN DWORD,OUT LPBYTE,OUT LPDWORD);
|
|
typedef BOOL (WINAPI *PFAXROUTESETROUTINGINFO) (IN LPCWSTR,IN DWORD,IN const BYTE*,IN DWORD);
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|
|
#pragma option pop /*P_O_Pop*/
|