You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
915 lines
26 KiB
915 lines
26 KiB
/*++
|
|
|
|
Copyright (c) 1995 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
faxrpc.idl
|
|
|
|
Abstract:
|
|
|
|
Contains the remoted fax service apis.
|
|
|
|
Author:
|
|
|
|
Wesley Witt (wesw) 10-Jan-1996
|
|
|
|
Environment:
|
|
|
|
User-mode - Win32 - MIDL
|
|
|
|
--*/
|
|
|
|
//
|
|
// Interface Attributes
|
|
//
|
|
|
|
[
|
|
uuid(ea0a3165-4834-11d2-a6f8-00c04fa346cc),
|
|
version(4.0),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
//
|
|
// Interface Keyword
|
|
//
|
|
|
|
interface fax
|
|
|
|
//
|
|
// Interface Body
|
|
//
|
|
|
|
{
|
|
#define HCALL DWORD
|
|
import "imports.idl"; // import all the include files
|
|
#include "FaxRpcLimit.h"
|
|
|
|
//
|
|
// Context handles
|
|
//
|
|
|
|
typedef [context_handle] HANDLE RPC_FAX_PORT_HANDLE; // FaxOpenPort handle
|
|
typedef [ref] RPC_FAX_PORT_HANDLE *PRPC_FAX_PORT_HANDLE;
|
|
|
|
typedef [context_handle] HANDLE RPC_FAX_SVC_HANDLE; // FaxConnectFaxServer handle
|
|
typedef [ref] RPC_FAX_SVC_HANDLE *PRPC_FAX_SVC_HANDLE;
|
|
|
|
typedef [context_handle] HANDLE RPC_FAX_MSG_ENUM_HANDLE; // FaxStartMessageEnum handle
|
|
typedef [ref] RPC_FAX_MSG_ENUM_HANDLE *PRPC_FAX_MSG_ENUM_HANDLE;
|
|
|
|
typedef [context_handle] HANDLE RPC_FAX_COPY_HANDLE; // FaxStartCopy*Server handle
|
|
typedef [ref] RPC_FAX_COPY_HANDLE *PRPC_FAX_COPY_HANDLE;
|
|
|
|
typedef [context_handle] HANDLE RPC_FAX_EVENT_HANDLE; // FaxStartServerNotification handle
|
|
typedef [ref] RPC_FAX_EVENT_HANDLE *PRPC_FAX_EVENT_HANDLE;
|
|
|
|
typedef [context_handle] HANDLE RPC_FAX_EVENT_EX_HANDLE; // FaxStartServerNotificationEx handle
|
|
typedef [ref] RPC_FAX_EVENT_EX_HANDLE *PRPC_FAX_EVENT_EX_HANDLE;
|
|
|
|
#ifdef SERVER_STUB
|
|
//
|
|
//How to use the range attribute with pointer parameter:
|
|
//
|
|
//The solution is to employ typedef for this purpose, as shown below:
|
|
//
|
|
// typedef [range(0, MAX)] long BOUNDED_DWORD;
|
|
// typedef BOUNDED_DWORD * LPBOUNDED_DWORD;
|
|
//
|
|
// Two typedefs are required because range is not applicable on a pointer type.
|
|
// As this feature is not available in versions of Windows before Windows 2000 SP3 and Windows XP SP1,
|
|
// the following pragma may be used to supress MIDL compiler warnings that would result from employing this technique:
|
|
//
|
|
// midl_pragma warning( disable: 2466 2467)
|
|
//
|
|
midl_pragma warning( disable: 2466 2467 )
|
|
|
|
typedef [range(0, RPC_COPY_BUFFER_SIZE)] DWORD RANGED_DWORD;
|
|
typedef RANGED_DWORD * LPRANGED_DWORD;
|
|
|
|
#else
|
|
|
|
typedef DWORD * LPRANGED_DWORD;
|
|
|
|
#endif
|
|
|
|
|
|
//
|
|
// Structures
|
|
//
|
|
|
|
typedef struct _RPC_FAX_OUTBOUND_ROUTING_GROUPW
|
|
{
|
|
DWORD dwSizeOfStruct;
|
|
[string] LPWSTR lpwstrGroupName;
|
|
[range(0,FAX_MAX_DEVICES_IN_GROUP)]DWORD dwNumDevices;
|
|
[unique, size_is(dwNumDevices)] LPDWORD lpdwDevices;
|
|
FAX_ENUM_GROUP_STATUS Status;
|
|
} RPC_FAX_OUTBOUND_ROUTING_GROUPW, *PRPC_FAX_OUTBOUND_ROUTING_GROUPW;
|
|
|
|
|
|
typedef [switch_type(int)] union _FAX_RULE_DESTINATION
|
|
{
|
|
[case(0)]
|
|
DWORD dwDeviceId;
|
|
[default]
|
|
[string] LPWSTR lpwstrGroupName;
|
|
} FAX_RULE_DESTINATION;
|
|
|
|
typedef struct _RPC_FAX_OUTBOUND_ROUTING_RULEW
|
|
{
|
|
DWORD dwSizeOfStruct;
|
|
DWORD dwAreaCode;
|
|
DWORD dwCountryCode;
|
|
[string] LPWSTR lpwstrCountryName;
|
|
[switch_is(bUseGroup)] FAX_RULE_DESTINATION Destination;
|
|
BOOL bUseGroup;
|
|
} RPC_FAX_OUTBOUND_ROUTING_RULEW, *PRPC_FAX_OUTBOUND_ROUTING_RULEW;
|
|
|
|
|
|
//
|
|
// functions
|
|
//
|
|
|
|
|
|
error_status_t
|
|
FAX_GetServicePrinters(
|
|
[in] handle_t hBinding,
|
|
[out, size_is(,*lpdwBufferSize)] LPBYTE *lpBuffer,
|
|
[out, ref] LPDWORD lpdwBufferSize,
|
|
[out, ref] LPDWORD lpdwPrintersReturned
|
|
);
|
|
|
|
|
|
error_status_t
|
|
FAX_ConnectionRefCount(
|
|
[in] handle_t hBinding,
|
|
[in, out] PRPC_FAX_SVC_HANDLE Handle,
|
|
[in] DWORD Connect,
|
|
[out] LPDWORD CanShare
|
|
);
|
|
|
|
error_status_t
|
|
FAX_OpenPort(
|
|
[in] handle_t hBinding,
|
|
[in] DWORD DeviceId,
|
|
[in] DWORD Flags,
|
|
[out] PRPC_FAX_PORT_HANDLE FaxPortHandle
|
|
);
|
|
|
|
error_status_t
|
|
FAX_ClosePort(
|
|
[in,out] PRPC_FAX_PORT_HANDLE FaxPortHandle
|
|
);
|
|
|
|
error_status_t
|
|
FAX_EnumJobs(
|
|
[in] handle_t hBinding,
|
|
[out, size_is(,*BufferSize)] LPBYTE *Buffer,
|
|
[out, ref] LPDWORD BufferSize,
|
|
[out, ref] LPDWORD JobsReturned
|
|
);
|
|
|
|
error_status_t
|
|
FAX_GetJob(
|
|
[in] handle_t hBinding,
|
|
[in] DWORD JobId,
|
|
[out, size_is(,*BufferSize)] LPBYTE *Buffer,
|
|
[out, ref] LPDWORD BufferSize
|
|
);
|
|
|
|
error_status_t
|
|
FAX_SetJob(
|
|
[in] handle_t hBinding,
|
|
[in] DWORD JobId,
|
|
[in] DWORD Command
|
|
);
|
|
|
|
error_status_t
|
|
FAX_GetPageData(
|
|
[in] handle_t hBinding,
|
|
[in] DWORD JobId,
|
|
[out, size_is(,*BufferSize)] LPBYTE *Buffer,
|
|
[out, ref] LPDWORD BufferSize,
|
|
[in, out] LPDWORD ImageWidth,
|
|
[in, out] LPDWORD ImageHeight
|
|
);
|
|
|
|
error_status_t
|
|
FAX_GetDeviceStatus(
|
|
[in] RPC_FAX_PORT_HANDLE FaxPortHandle,
|
|
[out, size_is(,*BufferSize)] LPBYTE*StatusBuffer,
|
|
[out, ref] LPDWORD BufferSize
|
|
);
|
|
|
|
error_status_t
|
|
FAX_Abort(
|
|
[in] handle_t hBinding,
|
|
[in] DWORD JobId
|
|
);
|
|
|
|
error_status_t
|
|
FAX_EnumPorts(
|
|
[in] handle_t hBinding,
|
|
[out, size_is(,*BufferSize)] LPBYTE *PortBuffer,
|
|
[out, ref] LPDWORD BufferSize,
|
|
[out, ref] LPDWORD PortsReturned
|
|
);
|
|
|
|
error_status_t
|
|
FAX_GetPort(
|
|
[in] RPC_FAX_PORT_HANDLE FaxPortHandle,
|
|
[out, size_is(,*BufferSize)] LPBYTE *PortBuffer,
|
|
[out, ref] LPDWORD BufferSize
|
|
);
|
|
|
|
error_status_t
|
|
FAX_SetPort(
|
|
[in] RPC_FAX_PORT_HANDLE FaxPortHandle,
|
|
[in] const FAX_PORT_INFO *PortInfo
|
|
);
|
|
|
|
error_status_t
|
|
FAX_EnumRoutingMethods(
|
|
[in] RPC_FAX_PORT_HANDLE FaxPortHandle,
|
|
[out, size_is(,*RoutingInfoBufferSize)] LPBYTE *RoutingInfoBuffer,
|
|
[out, ref] LPDWORD RoutingInfoBufferSize,
|
|
[out, ref] LPDWORD PortsReturned
|
|
);
|
|
|
|
error_status_t
|
|
FAX_EnableRoutingMethod(
|
|
[in] RPC_FAX_PORT_HANDLE FaxPortHandle,
|
|
[in, string, unique] LPCWSTR RoutingGuid,
|
|
[in] BOOL Enabled
|
|
);
|
|
|
|
error_status_t
|
|
FAX_GetRoutingInfo(
|
|
[in] RPC_FAX_PORT_HANDLE FaxPortHandle,
|
|
[in, string, unique] LPCWSTR RoutingGuid,
|
|
[out, size_is(,*RoutingInfoBufferSize)] LPBYTE *RoutingInfoBuffer,
|
|
[out, ref] LPDWORD RoutingInfoBufferSize
|
|
);
|
|
|
|
error_status_t
|
|
FAX_SetRoutingInfo(
|
|
[in] RPC_FAX_PORT_HANDLE FaxPortHandle,
|
|
[in, string, unique] LPCWSTR RoutingGuid,
|
|
[in, unique, size_is(RoutingInfoBufferSize)] const BYTE *RoutingInfoBuffer,
|
|
[in, range(0,FAX_MAX_RPC_BUFFER)] DWORD RoutingInfoBufferSize
|
|
);
|
|
|
|
|
|
error_status_t
|
|
FAX_EnumGlobalRoutingInfo(
|
|
[in] handle_t hBinding,
|
|
[out, size_is(,*RoutingInfoBufferSize)] LPBYTE *RoutingInfoBuffer,
|
|
[out, ref] LPDWORD RoutingInfoBufferSize,
|
|
[out, ref] LPDWORD MethodsReturned
|
|
);
|
|
|
|
error_status_t
|
|
FAX_SetGlobalRoutingInfo(
|
|
[in] handle_t hBinding,
|
|
[in] const FAX_GLOBAL_ROUTING_INFOW *RoutingInfo
|
|
);
|
|
|
|
error_status_t
|
|
FAX_GetConfiguration(
|
|
[in] handle_t hBinding,
|
|
[out, size_is(,*BufferSize)] LPBYTE *Buffer,
|
|
[out, ref] LPDWORD BufferSize
|
|
);
|
|
|
|
error_status_t
|
|
FAX_SetConfiguration(
|
|
[in] handle_t hBinding,
|
|
[in] const FAX_CONFIGURATIONW *FaxConfig
|
|
);
|
|
|
|
error_status_t
|
|
FAX_GetLoggingCategories(
|
|
[in] handle_t hBinding,
|
|
[out, size_is(,*BufferSize)] LPBYTE *Buffer,
|
|
[out, ref] LPDWORD BufferSize,
|
|
[out, ref] LPDWORD NumberCategories
|
|
);
|
|
|
|
error_status_t
|
|
FAX_SetLoggingCategories(
|
|
[in] handle_t hBinding,
|
|
[in, unique, size_is(BufferSize)] const LPBYTE Buffer,
|
|
[in, range(0,FAX_MAX_RPC_BUFFER)] DWORD BufferSize,
|
|
[in] DWORD NumberCategories
|
|
);
|
|
|
|
error_status_t
|
|
FAX_GetSecurity(
|
|
[in] handle_t hBinding,
|
|
[out, size_is(,*lpdwBufferSize)] LPBYTE * pSecurityDescriptor,
|
|
[out, ref] LPDWORD lpdwBufferSize
|
|
)
|
|
;
|
|
|
|
error_status_t
|
|
FAX_SetSecurity(
|
|
[in] handle_t hBinding,
|
|
[in] SECURITY_INFORMATION SecurityInformation,
|
|
[in, unique, size_is(dwBufferSize)] const LPBYTE pSecurityDescriptor,
|
|
[in, range(0,FAX_MAX_RPC_BUFFER)] DWORD dwBufferSize
|
|
);
|
|
|
|
error_status_t
|
|
FAX_AccessCheck(
|
|
[in] handle_t hBinding,
|
|
[in] DWORD AccessMask,
|
|
[out, ref] BOOL* pfAccess,
|
|
[in, out, unique] LPDWORD lpdwRights
|
|
);
|
|
|
|
|
|
|
|
error_status_t
|
|
FAX_CheckServerProtSeq(
|
|
[in] handle_t hbinding,
|
|
[in, out, unique] LPDWORD lpdwProtSeq
|
|
);
|
|
|
|
//**************************
|
|
//* Extension API
|
|
//**************************
|
|
|
|
|
|
error_status_t
|
|
FAX_SendDocumentEx
|
|
(
|
|
[in] handle_t hBinding,
|
|
[in, string, unique] LPCWSTR lpcwstrFileName,
|
|
[in] LPCFAX_COVERPAGE_INFO_EXW lpcCoverPageInfo,
|
|
[in] LPCFAX_PERSONAL_PROFILEW lpcSenderProfile,
|
|
[in, range(0,FAX_MAX_RECIPIENTS) ] DWORD dwNumRecipients,
|
|
[in, size_is(dwNumRecipients)] LPCFAX_PERSONAL_PROFILEW lpcRecipientList,
|
|
[in] LPCFAX_JOB_PARAM_EXW lpJobParams,
|
|
[in, out, unique] LPDWORD lpdwJobId,
|
|
[out] PDWORDLONG lpdwlMessageId,
|
|
[out, size_is(dwNumRecipients)] PDWORDLONG lpdwlRecipientMessageIds
|
|
);
|
|
|
|
error_status_t
|
|
FAX_EnumJobsEx(
|
|
[in] handle_t hBinding,
|
|
[in] DWORD dwJobTypes,
|
|
[out, size_is(,*BufferSize)] LPBYTE *Buffer,
|
|
[out, ref] LPDWORD BufferSize,
|
|
[out, ref] LPDWORD lpdwJobs
|
|
);
|
|
|
|
error_status_t
|
|
FAX_GetJobEx(
|
|
[in] handle_t hBinding,
|
|
[in] DWORDLONG dwlMessageID,
|
|
[out, size_is(,*BufferSize)] LPBYTE *Buffer,
|
|
[out, ref] LPDWORD BufferSize
|
|
);
|
|
|
|
|
|
error_status_t
|
|
FAX_GetCountryList(
|
|
[in] handle_t FaxHandle,
|
|
[out, size_is(,*BufferSize)] LPBYTE *Buffer,
|
|
[out, ref] LPDWORD BufferSize
|
|
);
|
|
|
|
|
|
error_status_t
|
|
FAX_GetPersonalProfileInfo
|
|
(
|
|
[in] handle_t hBinding,
|
|
[in] DWORDLONG dwlMessageId,
|
|
[in] FAX_ENUM_MESSAGE_FOLDER dwFolder,
|
|
[in] FAX_ENUM_PERSONAL_PROF_TYPES ProfType,
|
|
[out, size_is(,*BufferSize)] LPBYTE *Buffer,
|
|
[out, ref] LPDWORD BufferSize
|
|
);
|
|
|
|
|
|
//************************************
|
|
//* Getting / Setting the queue state
|
|
//************************************
|
|
|
|
error_status_t
|
|
FAX_GetQueueStates (
|
|
[in] handle_t hFaxHandle,
|
|
[out] LPDWORD pdwQueueStates
|
|
);
|
|
|
|
error_status_t
|
|
FAX_SetQueue (
|
|
[in] handle_t hFaxHandle,
|
|
[in] const DWORD dwQueueStates
|
|
);
|
|
|
|
//*************************************************
|
|
//* Getting / Setting the receipts configuration
|
|
//*************************************************
|
|
|
|
error_status_t
|
|
FAX_GetReceiptsConfiguration (
|
|
[in] handle_t hFaxHandle,
|
|
[out, size_is(,*BufferSize)] LPBYTE *Buffer,
|
|
[out, ref] LPDWORD BufferSize
|
|
);
|
|
|
|
error_status_t
|
|
FAX_SetReceiptsConfiguration (
|
|
[in] handle_t hFaxHandle,
|
|
[in, ref] const PFAX_RECEIPTS_CONFIGW pReceipts
|
|
);
|
|
|
|
error_status_t
|
|
FAX_GetReceiptsOptions (
|
|
[in] handle_t hFaxHandle,
|
|
[out, ref] LPDWORD lpdwReceiptsOptions // Combination of DRT_EMAIL and DRT_MSGBOX
|
|
);
|
|
|
|
//********************************************
|
|
//* Server version
|
|
//********************************************
|
|
|
|
error_status_t
|
|
FAX_GetVersion (
|
|
[in] handle_t hFaxHandle,
|
|
[in, out] PFAX_VERSION pVersion
|
|
);
|
|
|
|
//*********************************************
|
|
//* Getting / Setting the Outbox configuration
|
|
//*********************************************
|
|
|
|
error_status_t
|
|
FAX_GetOutboxConfiguration (
|
|
[in] handle_t hFaxHandle,
|
|
[out, size_is(,*BufferSize)] LPBYTE *Buffer,
|
|
[out, ref] LPDWORD BufferSize
|
|
);
|
|
|
|
error_status_t
|
|
FAX_SetOutboxConfiguration (
|
|
[in] handle_t hFaxHandle,
|
|
[in, ref] const PFAX_OUTBOX_CONFIG pOutboxCfg
|
|
);
|
|
|
|
error_status_t
|
|
FAX_GetPersonalCoverPagesOption (
|
|
[in] handle_t hFaxHandle,
|
|
[out, ref] LPBOOL lpbPersonalCPAllowed
|
|
);
|
|
|
|
//********************************************
|
|
//* Archive configuration
|
|
//********************************************
|
|
|
|
|
|
error_status_t
|
|
FAX_GetArchiveConfiguration (
|
|
[in] handle_t hFaxHandle,
|
|
[in] FAX_ENUM_MESSAGE_FOLDER Folder,
|
|
[out, size_is(,*BufferSize)] LPBYTE *Buffer,
|
|
[out, ref] LPDWORD BufferSize
|
|
);
|
|
|
|
error_status_t
|
|
FAX_SetArchiveConfiguration (
|
|
[in] handle_t hFaxHandle,
|
|
[in] FAX_ENUM_MESSAGE_FOLDER Folder,
|
|
[in, ref] const PFAX_ARCHIVE_CONFIGW pArchiveCfg
|
|
);
|
|
|
|
//********************************************
|
|
//* Activity logging
|
|
//********************************************
|
|
|
|
error_status_t
|
|
FAX_GetActivityLoggingConfiguration (
|
|
[in] handle_t hFaxHandle,
|
|
[out, size_is(,*BufferSize)] LPBYTE *Buffer,
|
|
[out, ref] LPDWORD BufferSize
|
|
);
|
|
|
|
error_status_t
|
|
FAX_SetActivityLoggingConfiguration (
|
|
[in] handle_t hFaxHandle,
|
|
[in, ref] const PFAX_ACTIVITY_LOGGING_CONFIGW pActivLogCfg
|
|
);
|
|
|
|
//********************************************
|
|
//* FSP
|
|
//********************************************
|
|
|
|
error_status_t
|
|
FAX_EnumerateProviders (
|
|
[in] handle_t hFaxHandle,
|
|
[out, size_is(,*BufferSize)] LPBYTE *Buffer,
|
|
[out, ref] LPDWORD BufferSize,
|
|
[out, ref] LPDWORD lpdwNumProviders
|
|
);
|
|
|
|
//********************************************
|
|
//* Ports
|
|
//********************************************
|
|
|
|
error_status_t
|
|
FAX_GetPortEx (
|
|
[in] handle_t hFaxHandle,
|
|
[in] DWORD dwDeviceId,
|
|
[out, size_is(,*BufferSize)] LPBYTE *Buffer,
|
|
[out, ref] LPDWORD BufferSize
|
|
);
|
|
|
|
error_status_t
|
|
FAX_SetPortEx (
|
|
[in] handle_t hFaxHandle,
|
|
[in] DWORD dwDeviceId,
|
|
[in, ref] const PFAX_PORT_INFO_EXW pPortInfo
|
|
);
|
|
|
|
|
|
error_status_t
|
|
FAX_EnumPortsEx (
|
|
[in] handle_t hFaxHandle,
|
|
[out, size_is(,*BufferSize)] LPBYTE *Buffer,
|
|
[out, ref] LPDWORD BufferSize,
|
|
[out, ref] LPDWORD lpdwNumPorts
|
|
);
|
|
|
|
//********************************************
|
|
//* Extension data
|
|
//********************************************
|
|
|
|
error_status_t
|
|
FAX_GetExtensionData (
|
|
[in] handle_t hFaxHandle,
|
|
[in] DWORD dwDeviceId,
|
|
[in,string,ref] LPCWSTR lpctstrNameGUID,
|
|
[out, size_is(,*lpdwDataSize)] LPBYTE *ppData,
|
|
[out, ref] LPDWORD lpdwDataSize
|
|
);
|
|
|
|
error_status_t
|
|
FAX_SetExtensionData (
|
|
[in] handle_t hFaxHandle,
|
|
[in,string] LPCWSTR lpcwstrComputerName,
|
|
[in] DWORD dwDeviceId,
|
|
[in,string] LPCWSTR lpctstrNameGUID,
|
|
[in, ref, size_is(dwDataSize)] LPBYTE pData,
|
|
[in,range(0,FAX_MAX_RPC_BUFFER)] DWORD dwDataSize
|
|
);
|
|
|
|
|
|
//********************************************
|
|
//* Outbound routing
|
|
//********************************************
|
|
|
|
error_status_t
|
|
FAX_AddOutboundGroup (
|
|
[in] handle_t hFaxHandle,
|
|
[in, string,ref] LPCWSTR lpwstrGroupName
|
|
);
|
|
|
|
error_status_t
|
|
FAX_SetOutboundGroup (
|
|
[in] handle_t hFaxHandle,
|
|
[in, ref] PRPC_FAX_OUTBOUND_ROUTING_GROUPW pGroup
|
|
);
|
|
|
|
error_status_t
|
|
FAX_RemoveOutboundGroup (
|
|
[in] handle_t hFaxHandle,
|
|
[in, string, ref] LPCWSTR lpwstrGroupName
|
|
);
|
|
|
|
|
|
error_status_t
|
|
FAX_EnumOutboundGroups (
|
|
[in] handle_t hFaxHandle,
|
|
[out, size_is(,*lpdwDataSize)] LPBYTE *ppData,
|
|
[out, ref] LPDWORD lpdwDataSize,
|
|
[out, ref] LPDWORD lpdwNumGroups
|
|
);
|
|
|
|
error_status_t
|
|
FAX_SetDeviceOrderInGroup (
|
|
[in] handle_t hFaxHandle,
|
|
[in, string, ref] LPCWSTR lpwstrGroupName,
|
|
[in] DWORD dwDeviceId,
|
|
[in] DWORD dwNewOrder
|
|
);
|
|
|
|
error_status_t
|
|
FAX_AddOutboundRule (
|
|
[in] handle_t hFaxHandle,
|
|
[in] DWORD dwAreaCode,
|
|
[in] DWORD dwCountryCode,
|
|
[in] DWORD dwDeviceId,
|
|
[in, string, unique] LPCWSTR lpwstrGroupName,
|
|
[in] BOOL bUseGroup
|
|
);
|
|
|
|
error_status_t
|
|
FAX_RemoveOutboundRule (
|
|
[in] handle_t hFaxHandle,
|
|
[in] DWORD dwAreaCode,
|
|
[in] DWORD dwCountryCode
|
|
);
|
|
|
|
|
|
error_status_t
|
|
FAX_SetOutboundRule (
|
|
[in] handle_t hFaxHandle,
|
|
[in, ref] RPC_FAX_OUTBOUND_ROUTING_RULEW* pRule
|
|
);
|
|
|
|
error_status_t
|
|
FAX_EnumOutboundRules (
|
|
[in] handle_t hFaxHandle,
|
|
[out, size_is(,*lpdwDataSize)] LPBYTE *ppData,
|
|
[out, ref] LPDWORD lpdwDataSize,
|
|
[out, ref] LPDWORD lpdwNumRules
|
|
);
|
|
|
|
|
|
//********************************************
|
|
//* EFSP registration
|
|
//********************************************
|
|
|
|
|
|
error_status_t
|
|
FAX_RegisterServiceProviderEx (
|
|
[in] handle_t hFaxHandle,
|
|
[in,string,ref] LPCWSTR lpctstrGUID,
|
|
[in,string,ref] LPCWSTR lpctstrFriendlyName,
|
|
[in,string,ref] LPCWSTR lpctstrImageName,
|
|
[in,string,ref] LPCWSTR lpctstrTspName,
|
|
[in] DWORD dwFSPIVersion,
|
|
[in] DWORD dwCapabilities
|
|
);
|
|
|
|
error_status_t
|
|
FAX_UnregisterServiceProviderEx (
|
|
[in] handle_t hFaxHandle,
|
|
[in,string,ref] LPCWSTR lpctstrGUID
|
|
);
|
|
|
|
//********************************************
|
|
//* Routing Extension unregistration
|
|
//********************************************
|
|
|
|
//
|
|
// Registration of routing extensions is local (non-RPC)
|
|
//
|
|
|
|
error_status_t
|
|
FAX_UnregisterRoutingExtension (
|
|
[in] handle_t hFaxHandle,
|
|
[in,string,ref] LPCWSTR lpctstrExtensionName
|
|
);
|
|
|
|
//********************************************
|
|
//* Archive jobs
|
|
//********************************************
|
|
|
|
error_status_t
|
|
FAX_StartMessagesEnum (
|
|
[in] handle_t hFaxHandle,
|
|
[in] FAX_ENUM_MESSAGE_FOLDER Folder,
|
|
[out,ref] PRPC_FAX_MSG_ENUM_HANDLE lpHandle
|
|
);
|
|
|
|
error_status_t
|
|
FAX_EndMessagesEnum (
|
|
[in,out,ref] PRPC_FAX_MSG_ENUM_HANDLE lpHandle
|
|
);
|
|
|
|
error_status_t
|
|
FAX_EnumMessages(
|
|
[in,ref] RPC_FAX_MSG_ENUM_HANDLE hEnum,
|
|
[in] DWORD dwNumMessages,
|
|
[out, size_is(,*lpdwBufferSize)] LPBYTE *lppBuffer,
|
|
[out, ref] LPDWORD lpdwBufferSize,
|
|
[out, ref] LPDWORD lpdwNumMessagesRetrieved
|
|
);
|
|
|
|
error_status_t
|
|
FAX_GetMessage (
|
|
[in] handle_t hFaxHandle,
|
|
[in] DWORDLONG dwlMessageId,
|
|
[in] FAX_ENUM_MESSAGE_FOLDER Folder,
|
|
[out, size_is(,*lpdwBufferSize)] LPBYTE *lppBuffer,
|
|
[out, ref] LPDWORD lpdwBufferSize
|
|
);
|
|
|
|
error_status_t
|
|
FAX_RemoveMessage (
|
|
[in] handle_t hFaxHandle,
|
|
[in] DWORDLONG dwlMessageId,
|
|
[in] FAX_ENUM_MESSAGE_FOLDER Folder
|
|
);
|
|
|
|
//********************************************
|
|
//* RPC copy
|
|
//********************************************
|
|
|
|
error_status_t
|
|
FAX_StartCopyToServer (
|
|
[in] handle_t hFaxHandle, // Handle to server
|
|
[in,string,ref] LPCWSTR lpcwstrFileExt, // Extension of file to create on the server
|
|
[in,out,string,ref] LPWSTR lpwstrServerFileName, // File name (and extension) of file created on the server
|
|
[out,ref] PRPC_FAX_COPY_HANDLE lpHandle // RPC copy handle
|
|
);
|
|
|
|
error_status_t
|
|
FAX_StartCopyMessageFromServer (
|
|
[in] handle_t hFaxHandle, // Handle to server
|
|
[in] DWORDLONG dwlMessageId, // Message id
|
|
[in] FAX_ENUM_MESSAGE_FOLDER Folder, // Archive folder
|
|
[out,ref] PRPC_FAX_COPY_HANDLE lpHandle // RPC copy handle
|
|
);
|
|
|
|
error_status_t
|
|
FAX_WriteFile (
|
|
[in,ref] RPC_FAX_COPY_HANDLE hCopy, // RPC copy handle
|
|
[in,ref,size_is(dwDataSize)] const LPBYTE lpbData, // Data chunk to append to file on server
|
|
[in, range(0,RPC_COPY_BUFFER_SIZE)] DWORD dwDataSize // Size of data chunk
|
|
);
|
|
|
|
|
|
error_status_t
|
|
FAX_ReadFile (
|
|
[in,ref] RPC_FAX_COPY_HANDLE hCopy, // RPC copy handle
|
|
[in] DWORD dwMaxDataSize, // Maximal chunk to read
|
|
[out,ref,size_is(*lpdwDataSize)] LPBYTE lpbData, // Data buffer to retrieve from server
|
|
[in,out,ref] LPRANGED_DWORD lpdwDataSize // Size of data retrieved
|
|
);
|
|
|
|
|
|
|
|
|
|
error_status_t
|
|
FAX_EndCopy (
|
|
[in,out,ref] PRPC_FAX_COPY_HANDLE lphCopy
|
|
);
|
|
|
|
|
|
|
|
//********************************************
|
|
//* Server notifications
|
|
//********************************************
|
|
|
|
//
|
|
// FAX_StartServerNotification is obsolete. Use FAX_StartServerNotificationEx()
|
|
//
|
|
error_status_t
|
|
FAX_StartServerNotification(
|
|
[in] handle_t hBinding,
|
|
[in, string, ref] LPCWSTR lpcwstrMachineName,
|
|
[in, string, ref] LPCWSTR lpcwstrEndPoint,
|
|
[in] ULONG64 Context,
|
|
[in, ref, string] LPWSTR lpcwstrProtseqString,
|
|
[in] BOOL bEventEx,
|
|
[in] DWORD dwEventTypes,
|
|
[out,ref] PRPC_FAX_EVENT_HANDLE lpHandle
|
|
);
|
|
|
|
error_status_t
|
|
FAX_StartServerNotificationEx(
|
|
[in] handle_t hBinding,
|
|
[in, string, ref] LPCWSTR lpcwstrMachineName,
|
|
[in, string, ref] LPCWSTR lpcwstrEndPoint,
|
|
[in] ULONG64 Context,
|
|
[in, ref, string] LPWSTR lpcwstrProtSeq, // For BOS interoperability it must be set to "ncacn_ip_tcp"
|
|
[in] BOOL bEventEx,
|
|
[in] DWORD dwEventTypes,
|
|
[out,ref] PRPC_FAX_EVENT_EX_HANDLE lpHandle
|
|
);
|
|
|
|
error_status_t
|
|
FAX_EndServerNotification (
|
|
[in,out,ref] PRPC_FAX_EVENT_EX_HANDLE lpHandle
|
|
);
|
|
|
|
//********************************************
|
|
//* Server activity
|
|
//********************************************
|
|
|
|
error_status_t
|
|
FAX_GetServerActivity(
|
|
[in] handle_t hFaxHandle,
|
|
[in, out, ref] PFAX_SERVER_ACTIVITY pServerActivity
|
|
);
|
|
|
|
//********************************************
|
|
//* Configuration Wizard support functions
|
|
//********************************************
|
|
|
|
error_status_t
|
|
FAX_SetConfigWizardUsed (
|
|
[in] handle_t hFaxHandle,
|
|
[in] BOOL bConfigWizardUsed
|
|
);
|
|
|
|
//********************************************
|
|
//* Routing extensions
|
|
//********************************************
|
|
|
|
error_status_t
|
|
FAX_EnumRoutingExtensions (
|
|
[in] handle_t hFaxHandle,
|
|
[out, size_is(,*BufferSize)] LPBYTE *Buffer,
|
|
[out, ref] LPDWORD BufferSize,
|
|
[out, ref] LPDWORD lpdwNumExts
|
|
);
|
|
|
|
//********************************************
|
|
//* Manual answering support functions
|
|
//********************************************
|
|
|
|
error_status_t
|
|
FAX_AnswerCall(
|
|
[in] handle_t hFaxHandle,
|
|
[in] DWORD dwDeviceId
|
|
);
|
|
|
|
//********************************************
|
|
//* Server / client interoperability
|
|
//********************************************
|
|
|
|
error_status_t
|
|
FAX_ConnectFaxServer(
|
|
[in] handle_t hBinding,
|
|
[in] DWORD dwClientAPIVersion,
|
|
[out, ref] LPDWORD lpdwServerAPIVersion,
|
|
[out, ref] PRPC_FAX_SVC_HANDLE pHandle
|
|
);
|
|
|
|
//********************************************
|
|
//* Hardening FAX_GetSecurity with an Ex
|
|
//********************************************
|
|
error_status_t
|
|
FAX_GetSecurityEx(
|
|
[in] handle_t hBinding,
|
|
[in] SECURITY_INFORMATION SecurityInformation,
|
|
[out, size_is(,*lpdwBufferSize)] LPBYTE * pSecurityDescriptor,
|
|
[out, ref] LPDWORD lpdwBufferSize
|
|
);
|
|
|
|
//********************************************
|
|
//* Ivalidate archive folder
|
|
//********************************************
|
|
|
|
error_status_t
|
|
FAX_RefreshArchive(
|
|
[in] handle_t hFaxHandle,
|
|
[in] FAX_ENUM_MESSAGE_FOLDER Folder
|
|
);
|
|
|
|
|
|
//********************************************
|
|
//* Start FAX_API_VERSION_2
|
|
//********************************************
|
|
|
|
//********************************************
|
|
//* Recipients limit in a single broadcast
|
|
//********************************************
|
|
|
|
error_status_t
|
|
FAX_SetRecipientsLimit(
|
|
[in] handle_t hbinding,
|
|
[in] DWORD dwRecipientsLimit
|
|
);
|
|
|
|
error_status_t
|
|
FAX_GetRecipientsLimit(
|
|
[in] handle_t hbinding,
|
|
[out, ref] LPDWORD lpdwRecipientsLimit
|
|
);
|
|
|
|
|
|
error_status_t
|
|
FAX_GetServerSKU(
|
|
[in] handle_t hbinding,
|
|
[out, ref] PRODUCT_SKU_TYPE* pServerSKU
|
|
);
|
|
|
|
//********************************************
|
|
//* Checking for a valid fax folder
|
|
//********************************************
|
|
|
|
error_status_t
|
|
FAX_CheckValidFaxFolder(
|
|
[in] handle_t hBinding,
|
|
[in, string, ref] LPCWSTR lpcwstrPath
|
|
);
|
|
|
|
}
|
|
|