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