142 lines
4.3 KiB
C
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
|