6.3 Appendix A.3: faxobs.idl
For ease of implementation, the full IDL for the FaxObs Server Interface is provided as follows, where "ms-faxdatatypes.idl" is the IDL listed in section 6.1 of this appendix.
-
import "ms-fax_faxdatatypes.idl"; [ uuid(ea0a3165-4834-11d2-a6f8-00c04fa346cc), version(4.0), pointer_default(unique) ] interface faxobs { error_status_t FaxObs_ConnectionRefCount( [in] handle_t hBinding, [in, out] PRPC_FAX_SVC_HANDLE Handle, [in] DWORD Connect, [out] LPDWORD CanShare ); error_status_t FaxObs_GetVersion( [in] handle_t hBinding, [out] LPDWORD Version ); error_status_t FaxObs_GetInstallType( [in] handle_t hBinding, [out] LPDWORD InstallType, [out] LPDWORD InstalledPlatforms, [out] LPDWORD ProductType ); error_status_t FaxObs_OpenPort( [in] handle_t hBinding, [in] DWORD DeviceId, [in] DWORD Flags, [out] PRPC_FAX_PORT_HANDLE FaxPortHandle ); error_status_t FaxObs_ClosePort( [in,out] PRPC_FAX_PORT_HANDLE FaxPortHandle ); error_status_t FaxObs_SendDocument( [in] handle_t hBinding, [in, string, unique] LPCWSTR FileName, [in] const FAX_JOB_PARAMW *JobParams, [out] LPDWORD FaxJobId ); error_status_t FaxObs_GetQueueFileName( [in] handle_t hBinding, [in, out, unique, size_is(FileNameSize)] LPWSTR FileName, [in] DWORD FileNameSize ); error_status_t FaxObs_EnumJobs( [in] handle_t hBinding, [in, out, unique, size_is(,*BufferSize)] LPBYTE *Buffer, [in,out] LPDWORD BufferSize, [out] LPDWORD JobsReturned ); error_status_t FaxObs_GetJob( [in] handle_t hBinding, [in] DWORD JobId, [in, out, unique, size_is(,*BufferSize)] LPBYTE *Buffer, [in,out] LPDWORD BufferSize ); error_status_t FaxObs_SetJob( [in] handle_t hBinding, [in] DWORD JobId, [in] DWORD Command, [in] const FAX_JOB_ENTRY *JobEntry ); error_status_t FaxObs_GetPageData( [in] handle_t hBinding, [in] DWORD JobId, [in, out, unique, size_is(,*BufferSize)] LPBYTE *Buffer, [in,out] LPDWORD BufferSize, [in,out] LPDWORD ImageWidth, [in,out] LPDWORD ImageHeight ); error_status_t FaxObs_GetDeviceStatus( [in] RPC_FAX_PORT_HANDLE FaxPortHandle, [in, out, unique, size_is(,*BufferSize)] LPBYTE*StatusBuffer, [in,out] LPDWORD BufferSize ); error_status_t FaxObs_Abort( [in] handle_t hBinding, [in] DWORD JobId ); error_status_t FaxObs_EnumPorts( [in] handle_t hBinding, [in, out, unique, size_is(,*BufferSize)] LPBYTE *PortBuffer, [in,out] LPDWORD BufferSize, [out] LPDWORD PortsReturned ); error_status_t FaxObs_GetPort( [in] RPC_FAX_PORT_HANDLE FaxPortHandle, [in, out, unique, size_is(,*BufferSize)] LPBYTE *PortBuffer, [in,out] LPDWORD BufferSize ); error_status_t FaxObs_SetPort( [in] RPC_FAX_PORT_HANDLE FaxPortHandle, [in] const FAX_PORT_INFO *PortInfo ); error_status_t FaxObs_EnumRoutingMethods( [in] RPC_FAX_PORT_HANDLE FaxPortHandle, [in, out, unique, size_is(,*RoutingInfoBufferSize)] LPBYTE *RoutingInfoBuffer, [in,out] LPDWORD RoutingInfoBufferSize, [out] LPDWORD PortsReturned ); error_status_t FaxObs_EnableRoutingMethod( [in] RPC_FAX_PORT_HANDLE FaxPortHandle, [in, string, unique] LPCWSTR RoutingGuid, [in] BOOL Enabled ); error_status_t FaxObs_GetRoutingInfo( [in] RPC_FAX_PORT_HANDLE FaxPortHandle, [in, string, unique] LPCWSTR RoutingGuid, [in, out, unique, size_is(,*RoutingInfoBufferSize)] LPBYTE *RoutingInfoBuffer, [in,out] LPDWORD RoutingInfoBufferSize ); error_status_t FaxObs_SetRoutingInfo( [in] RPC_FAX_PORT_HANDLE FaxPortHandle, [in, string, unique] LPCWSTR RoutingGuid, [in, unique, size_is(RoutingInfoBufferSize)] const BYTE *RoutingInfoBuffer, [in] DWORD RoutingInfoBufferSize ); error_status_t FaxObs_EnumGlobalRoutingInfo( [in] handle_t hBinding, [in, out, unique, size_is(,*RoutingInfoBufferSize)] LPBYTE *RoutingInfoBuffer, [in,out] LPDWORD RoutingInfoBufferSize, [out] LPDWORD MethodsReturned ); error_status_t FaxObs_SetGlobalRoutingInfo( [in] handle_t hBinding, [in] const FAX_GLOBAL_ROUTING_INFOW *RoutingInfo ); error_status_t FaxObs_GetConfiguration( [in] handle_t hBinding, [in, out, unique, size_is(,*BufferSize)] LPBYTE *Buffer, [in,out] LPDWORD BufferSize ); error_status_t FaxObs_SetConfiguration( [in] handle_t hBinding, [in] const FAX_CONFIGURATIONW *FaxConfig ); error_status_t FaxObs_GetLoggingCategories( [in] handle_t hBinding, [in, out, unique, size_is(,*BufferSize)] LPBYTE *Buffer, [in,out] LPDWORD BufferSize, [in,out] LPDWORD NumberCategories ); error_status_t FaxObs_SetLoggingCategories( [in] handle_t hBinding, [in, unique, size_is(BufferSize)] const LPBYTE Buffer, [in] DWORD BufferSize, [in] DWORD NumberCategories ); error_status_t FaxObs_GetTapiLocations( [in] handle_t hBinding, [in, out, unique, size_is(,*BufferSize)] LPBYTE *Buffer, [in,out] LPDWORD BufferSize ); error_status_t FaxObs_SetTapiLocations( [in] handle_t hBinding, [in, unique, size_is(BufferSize)] LPBYTE Buffer, [in] DWORD BufferSize ); error_status_t FaxObs_GetMapiProfiles( [in] handle_t hBinding, [in, out, unique, size_is(,*BufferSize)] LPBYTE *MapiProfiles, [in,out] LPDWORD BufferSize ); error_status_t FaxObs_StartClientServer( [in] handle_t hBinding, [in, string, unique] LPCWSTR MachineName, [in, string, unique] LPCWSTR ClientName, [in] ULONG64 Context ); void Opnum30NotUsedOnWire(void); error_status_t FaxObs_GetSecurityDescriptor( [in] handle_t hBinding, [in] DWORD Id, [in, out, unique, size_is(,*BufferSize)] LPBYTE * FaxSecurityDescriptor, [in, out] LPDWORD BufferSize ); error_status_t FaxObs_SetSecurityDescriptor( [in] handle_t hBinding, [in, unique, size_is(BufferSize)] const LPBYTE FaxSecurityDescriptor, [in] DWORD BufferSize ); error_status_t FaxObs_GetSecurityDescriptorCount( [in] handle_t hBinding, [out] LPDWORD Count ); error_status_t FaxObs_AccessCheck( [in] handle_t hBinding, [in] DWORD AccessMask, [out] LPDWORD fAccess ); }