Leaked source code of windows server 2003
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

/*++
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
);
}