/*++ 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 #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