300 lines
14 KiB
C
300 lines
14 KiB
C
//
|
|
// MAPI Properties
|
|
//
|
|
//
|
|
// Mail user generic properties = 0x3a00 - 0x3aff
|
|
|
|
// 4000 57FF Transport-defined envelope property
|
|
// 5800 5FFF Transport-defined per-recipient property
|
|
// 6000 65FF User-defined non-transmittable property
|
|
// 6600 67FF Provider-defined internal non-transmittable property
|
|
// 6800 7BFF Message class-defined content property
|
|
// 7C00 7FFF Message class-defined non-transmittable
|
|
// property
|
|
|
|
|
|
// Transport-defined message envelope properties = 0x4000 - 0x57ff
|
|
// Transport-defined recipient properties = 0x5800 - 0x5fff
|
|
// User-defined non-transmittable message props = 0x6000 - 0x65ff
|
|
// Provider-defined internal non-transmittable props = 0x6600 - 0x67ff
|
|
// Message class-defined message content properties = 0x6800 - 0x7bff
|
|
// Message class-defined non-transmittable message
|
|
// props = 0x7c00 - 0x7fff
|
|
// User-defined properties identified only by name,
|
|
// through the property name to ID mapping facility
|
|
// of the IMAPIProp interface = 0x8000 - 0xfffe
|
|
//
|
|
|
|
#define TRANSPORT_ENVELOPE_BASE 0x4000
|
|
#define TRANSPORT_RECIP_BASE 0x5800
|
|
#define USER_NON_TRANSMIT_BASE 0x6000
|
|
#define PROVIDER_INTERNAL_NON_TRANSMIT_BASE 0x6600
|
|
#define MESSAGE_CLASS_CONTENT_BASE 0x6800
|
|
#define MESSAGE_CLASS_NON_TRANSMIT_BASE 0x7C00
|
|
|
|
#define EFAX_MESSAGE_BASE TRANSPORT_ENVELOPE_BASE + 0x500
|
|
#define EFAX_RECIPIENT_BASE TRANSPORT_RECIP_BASE + 0x100
|
|
#define EFAX_PR_OPTIONS_BASE PROVIDER_INTERNAL_NON_TRANSMIT_BASE + 0x100
|
|
|
|
#define EFAX_ADDR_TYPE "FAX"
|
|
|
|
//
|
|
// LOGON Properties
|
|
//
|
|
// Properties we store in the Profile.
|
|
//
|
|
// The following is used to access the properties in the logon array.
|
|
// If you add a property to the profile, you should increment this number!
|
|
#define MAX_LOGON_PROPERTIES 10
|
|
|
|
// Other logon properties:
|
|
// PR_SENDER_NAME - in mapitags.h
|
|
// PR_SENDER_EMAIL_ADDRESS - in mapitags.h (this file)
|
|
// Fax Product name
|
|
#define PR_FAX_PRODUCT_NAME PROP_TAG(PT_TSTRING, (EFAX_PR_OPTIONS_BASE + 0x0))
|
|
|
|
// Active fax device name
|
|
#define PR_FAX_ACTIVE_MODEM_NAME PROP_TAG(PT_TSTRING, (EFAX_PR_OPTIONS_BASE + 0x1))
|
|
|
|
// If value is TRUE, work offline
|
|
#define PR_FAX_WORK_OFF_LINE PROP_TAG(PT_BOOLEAN, (EFAX_PR_OPTIONS_BASE + 0x2))
|
|
|
|
// If true, you want to share the active fax device
|
|
#define PR_FAX_SHARE_DEVICE PROP_TAG(PT_BOOLEAN, (EFAX_PR_OPTIONS_BASE + 0x3))
|
|
|
|
// The share name
|
|
#define PR_FAX_SHARE_NAME PROP_TAG(PT_TSTRING, (EFAX_PR_OPTIONS_BASE + 0x4))
|
|
|
|
// Sender Country code ID - used internally by fax config
|
|
#define PR_FAX_SENDER_COUNTRY_ID PROP_TAG(PT_LONG, (EFAX_PR_OPTIONS_BASE + 0x5))
|
|
|
|
// multi-value proerty to hold the names of the netfax devices the user added
|
|
#define PR_FAX_NETFAX_DEVICES PROP_TAG(PT_MV_STRING8, (EFAX_PR_OPTIONS_BASE + 0x6))
|
|
|
|
// The share pathname on the sharing machine
|
|
#define PR_FAX_SHARE_PATHNAME PROP_TAG(PT_TSTRING, (EFAX_PR_OPTIONS_BASE + 0x7))
|
|
|
|
// Profile section version
|
|
#define PR_FAX_PROFILE_VERSION PROP_TAG(PT_LONG, (EFAX_PR_OPTIONS_BASE + 0x8))
|
|
|
|
//
|
|
// Non-Transmittable message properties
|
|
//
|
|
|
|
#define PR_FAX_CHEAP_BEGIN_HOUR PROP_TAG(PT_I2, (EFAX_MESSAGE_BASE + 0x1))
|
|
#define PR_FAX_CHEAP_BEGIN_MINUTE PROP_TAG(PT_I2, (EFAX_MESSAGE_BASE + 0x2))
|
|
#define PR_FAX_CHEAP_END_HOUR PROP_TAG(PT_I2, (EFAX_MESSAGE_BASE + 0x3))
|
|
#define PR_FAX_CHEAP_END_MINUTE PROP_TAG(PT_I2, (EFAX_MESSAGE_BASE + 0x4))
|
|
#define PR_FAX_NOT_EARLIER_HOUR PROP_TAG(PT_I2, (EFAX_MESSAGE_BASE + 0x5))
|
|
#define PR_FAX_NOT_EARLIER_MINUTE PROP_TAG(PT_I2, (EFAX_MESSAGE_BASE + 0x6))
|
|
#define PR_FAX_NOT_EARLIER_DATE PROP_TAG(PT_I2, (EFAX_MESSAGE_BASE + 0x7))
|
|
#define PR_FAX_NUMBER_RETRIES PROP_TAG(PT_I2, (EFAX_MESSAGE_BASE + 0x8))
|
|
#define PR_FAX_MINUTES_BETWEEN_RETRIES PROP_TAG(PT_I2, (EFAX_MESSAGE_BASE + 0x9))
|
|
// Should a cover page be sent with this message
|
|
#define PR_FAX_INCLUDE_COVER_PAGE PROP_TAG(PT_BOOLEAN, (EFAX_MESSAGE_BASE + 0xA))
|
|
#define PR_FAX_COVER_PAGE_BODY PROP_TAG(PT_I2, (EFAX_MESSAGE_BASE + 0xB))
|
|
#define PR_FAX_LOGO_STRING PROP_TAG(PT_STRING8, (EFAX_MESSAGE_BASE + 0xC))
|
|
// Should this message be send as text, in printed format, or best available
|
|
#define PR_FAX_DELIVERY_FORMAT PROP_TAG(PT_LONG, (EFAX_MESSAGE_BASE + 0xD))
|
|
#define PR_FAX_PRINT_ORIENTATION PROP_TAG(PT_I2, (EFAX_MESSAGE_BASE + 0xE))
|
|
#define PR_FAX_PAPER_SIZE PROP_TAG(PT_I2, (EFAX_MESSAGE_BASE + 0xF))
|
|
#define PR_FAX_IMAGE_QUALITY PROP_TAG(PT_I2, (EFAX_MESSAGE_BASE + 0x10))
|
|
// These should be set by transport so Linearizer can see them.
|
|
#define PR_FAX_SENDER_NAME PROP_TAG(PT_STRING8, (EFAX_MESSAGE_BASE + 0x11))
|
|
#define PR_FAX_SENDER_EMAIL_ADDRESS PROP_TAG(PT_STRING8, (EFAX_MESSAGE_BASE + 0x12))
|
|
#define PR_FAX_LMI_CUSTOM_OPTION PROP_TAG(PT_BINARY, (EFAX_MESSAGE_BASE + 0x13))
|
|
#define PR_FAX_PREVIOUS_STATE PROP_TAG(PT_I2, (EFAX_MESSAGE_BASE + 0x14))
|
|
#define PR_FAX_FAXJOB PROP_TAG(PT_BINARY, (EFAX_MESSAGE_BASE + 0x15))
|
|
// The billing code to bill for the transmission of this message
|
|
#define PR_FAX_BILLING_CODE PROP_TAG(PT_STRING8, (EFAX_MESSAGE_BASE + 0x16))
|
|
// Previous billing codes used
|
|
#define PR_FAX_PREV_BILLING_CODES PROP_TAG(PT_MV_STRING8, (EFAX_MESSAGE_BASE + 0x17))
|
|
// Is Fax message to begin (or fully included, if short) on the cover page
|
|
#define PR_FAX_BGN_MSG_ON_COVER PROP_TAG(PT_BOOLEAN, (EFAX_MESSAGE_BASE + 0x18))
|
|
// Should the message be sent immediately, at cheap rates or at a specific time
|
|
#define PR_FAX_SEND_WHEN_TYPE PROP_TAG(PT_LONG, (EFAX_MESSAGE_BASE + 0x19))
|
|
// Absolute pathname of default coverpage file
|
|
#define PR_FAX_DEFAULT_COVER_PAGE PROP_TAG(PT_STRING8, (EFAX_MESSAGE_BASE + 0x1A))
|
|
// Maximum Time to wait for connection (seconds)
|
|
#define PR_FAX_MAX_TIME_TO_WAIT PROP_TAG(PT_I2, (EFAX_MESSAGE_BASE + 0x1B))
|
|
// Enable/Disable logging calls
|
|
#define PR_FAX_LOG_ENABLE PROP_TAG(PT_BOOLEAN, (EFAX_MESSAGE_BASE + 0x1C))
|
|
// Number of calls to keep log of
|
|
#define PR_FAX_LOG_NUM_OF_CALLS PROP_TAG(PT_I2, (EFAX_MESSAGE_BASE + 0x1D))
|
|
// Display call progress
|
|
#define PR_FAX_DISPLAY_PROGRESS PROP_TAG(PT_BOOLEAN, (EFAX_MESSAGE_BASE + 0x1E))
|
|
// Embed Linked objects before sending
|
|
#define PR_FAX_EMBED_LINKED_OBJECTS PROP_TAG(PT_BOOLEAN, (EFAX_MESSAGE_BASE + 0x1F))
|
|
// TAPI Location ID
|
|
#define PR_FAX_TAPI_LOC_ID PROP_TAG(PT_LONG, (EFAX_MESSAGE_BASE + 0x20))
|
|
// Must render ALL attachments before sending
|
|
#define PR_FAX_MUST_RENDER_ALL_ATTACH PROP_TAG(PT_BOOLEAN, (EFAX_MESSAGE_BASE + 0x21))
|
|
// Enable per-recipient options
|
|
#define PR_FAX_ENABLE_RECIPIENT_OPTIONS PROP_TAG(PT_BOOLEAN, (EFAX_MESSAGE_BASE + 0x22))
|
|
// Calling Card Name
|
|
#define PR_FAX_CALL_CARD_NAME PROP_TAG(PT_STRING8, (EFAX_MESSAGE_BASE + 0x24))
|
|
// Print to fax rba stream filename
|
|
#define PR_FAX_PRINT_TO_NAME PROP_TAG(PT_STRING8, (EFAX_MESSAGE_BASE + 0x25))
|
|
#define PR_FAX_SECURITY_SEND PROP_TAG(PT_BINARY, (EFAX_MESSAGE_BASE + 0x26))
|
|
#define PR_FAX_SECURITY_RECEIVED PROP_TAG(PT_I2, (EFAX_MESSAGE_BASE + 0x27))
|
|
// RBA data property (print-to-fax)
|
|
#define PR_FAX_RBA_DATA PROP_TAG(PT_BINARY, (EFAX_MESSAGE_BASE + 0x28))
|
|
|
|
// Poll retrieval
|
|
#define PR_POLL_RETRIEVE_SENDME PROP_TAG(PT_I2, (EFAX_MESSAGE_BASE + 0x29))
|
|
#define PR_POLL_RETRIEVE_TITLE PROP_TAG(PT_TSTRING, (EFAX_MESSAGE_BASE + 0x30))
|
|
#define PR_POLL_RETRIEVE_PASSWORD PROP_TAG(PT_TSTRING, (EFAX_MESSAGE_BASE + 0x31))
|
|
#define PR_POLLTYPE PROP_TAG(PT_I2, (EFAX_MESSAGE_BASE + 0x32))
|
|
|
|
// Poll server
|
|
#define PR_MESSAGE_TYPE PROP_TAG(PT_I2, (EFAX_MESSAGE_BASE + 0x33))
|
|
|
|
// Digital signature for an attachment
|
|
#define PR_ATTACH_SIGNATURE PROP_TAG(PT_BINARY, (EFAX_MESSAGE_BASE + 0x34))
|
|
|
|
// (print-to-fax # of pages)
|
|
#define PR_FAX_PRINT_TO_PAGES PROP_TAG(PT_LONG, (EFAX_MESSAGE_BASE + 0x35))
|
|
|
|
// On incoming message attachment, this contains image data requiring render conversion.
|
|
#define PR_FAX_IMAGE PROP_TAG(PT_BINARY, (EFAX_MESSAGE_BASE + 0x36))
|
|
|
|
// Print a header line on the top of every G3 fax page (branding)
|
|
#define PR_FAX_PRINT_HEADER PROP_TAG(PT_BOOLEAN, (EFAX_MESSAGE_BASE + 0x37))
|
|
|
|
// Billing code DWORD representation
|
|
#define PR_FAX_BILLING_CODE_DWORD PROP_TAG(PT_LONG, (EFAX_MESSAGE_BASE + 0x38))
|
|
|
|
|
|
//
|
|
// Non-Transmittable mail-user properties
|
|
//
|
|
#define PR_FAX_RECIP_CAPABILITIES PROP_TAG(PT_I2, (EFAX_RECIPIENT_BASE + 0x0))
|
|
// Name of the recipient to put on the cover page
|
|
#define PR_FAX_CP_NAME PROP_TAG(PT_TSTRING, (EFAX_RECIPIENT_BASE + 0x1))
|
|
#define PR_FAX_CP_NAME_W PROP_TAG(PT_UNICODE, (EFAX_RECIPIENT_BASE + 0x1))
|
|
#define PR_FAX_CP_NAME_A PROP_TAG(PT_STRING8, (EFAX_RECIPIENT_BASE + 0x1))
|
|
#define PR_RECIP_INDEX PROP_TAG(PT_I2, (EFAX_RECIPIENT_BASE + 0x2))
|
|
#define PR_HOP_INDEX PROP_TAG(PT_I2, (EFAX_RECIPIENT_BASE + 0x3))
|
|
// BUGBUG: This should go away
|
|
#define PR_RECIP_VOICENUM PROP_TAG(PT_TSTRING, (EFAX_RECIPIENT_BASE + 0x4))
|
|
#define PR_FAX_ENCRYPTION_KEY PROP_TAG(PT_BINARY, (EFAX_RECIPIENT_BASE + 0x5))
|
|
|
|
// Moved here from chicago\ui\faxab\faxab.h
|
|
#define PR_COUNTRY_ID PROP_TAG(PT_LONG,0x6607)
|
|
#define PR_AREA_CODE PROP_TAG(PT_STRING8,0x6608)
|
|
#define PR_TEL_NUMBER PROP_TAG(PT_STRING8,0x6609)
|
|
#define PR_MAILBOX PROP_TAG(PT_STRING8,0x660a)
|
|
|
|
|
|
#define ArrayIndex(PROP, ARRAY)(ARRAY)[(PROP_ID(PROP) - EFAX_XP_MESSAGE_BASE - 1)]
|
|
|
|
|
|
/**********************************************************************************
|
|
|
|
Property Values Section
|
|
|
|
***********************************************************************************/
|
|
|
|
#define NUM_SENDER_PROPS 3 // How many sender ID properties?
|
|
|
|
// Send As
|
|
// PR_FAX_DELIVERY_FORMAT
|
|
#define SEND_BEST 0
|
|
#define SEND_EDITABLE 1
|
|
#define SEND_PRINTED 2
|
|
#define DEFAULT_SEND_AS SEND_BEST
|
|
|
|
// Send At
|
|
// PR_FAX_SEND_WHEN_TYPE
|
|
#define SEND_ASAP 0
|
|
#define SEND_CHEAP 1
|
|
#define SEND_AT_TIME 2
|
|
#define DEFAULT_SEND_AT SEND_ASAP
|
|
|
|
// Paper Size
|
|
// PR_FAX_PAPER_SIZE
|
|
#define PAPER_US_LETTER 0 // US Letter page size
|
|
#define PAPER_US_LEGAL 1
|
|
#define PAPER_A4 2
|
|
#define PAPER_B4 3
|
|
#define PAPER_A3 4
|
|
// "real" default page size is in a resource string depending on U.S. vs metric
|
|
#define DEFAULT_PAPER_SIZE PAPER_US_LETTER // Default page size
|
|
|
|
// Print Orientation
|
|
// PR_FAX_PRINT_ORIENTATION
|
|
#define PRINT_PORTRAIT 0 // Protrait printing
|
|
#define PRINT_LANDSCAPE 1
|
|
#define DEFAULT_PRINT_ORIENTATION PRINT_PORTRAIT
|
|
|
|
// Image Quality
|
|
// PR_FAX_IMAGE_QUALITY
|
|
#define IMAGE_QUALITY_BEST 0
|
|
#define IMAGE_QUALITY_STANDARD 1
|
|
#define IMAGE_QUALITY_FINE 2
|
|
#define IMAGE_QUALITY_300DPI 3
|
|
#define IMAGE_QUALITY_400DPI 4
|
|
#define DEFAULT_IMAGE_QUALITY IMAGE_QUALITY_BEST
|
|
|
|
// Speaker
|
|
// PR_FAX_SPEAKER_VOLUME
|
|
#define NUM_OF_SPEAKER_VOL_LEVELS 4 // Number of speaker volume levels
|
|
#define DEFAULT_SPEAKER_VOLUME 2 // Default speaker volume level
|
|
#define SPEAKER_ALWAYS_ON 2 // Speaker mode: always on
|
|
#define SPEAKER_ON_UNTIL_CONNECT 1 // speaker on unitl connected
|
|
#define SPEAKER_ALWAYS_OFF 0 // Speaker off
|
|
#define DEFAULT_SPEAKER_MODE SPEAKER_ON_UNTIL_CONNECT // Default speaker mode
|
|
|
|
// Answer
|
|
// PR_FAX_ANSWER_MODE
|
|
#define NUM_OF_RINGS 3
|
|
#define ANSWER_NO 0
|
|
#define ANSWER_MANUAL 1
|
|
#define ANSWER_AUTO 2
|
|
#define DEFAULT_ANSWER_MODE ANSWER_NO
|
|
|
|
// Blind Dial
|
|
#define DEFAULT_BLIND_DIAL 3
|
|
// Comma Delay
|
|
#define DEFAULT_COMMA_DELAY 2
|
|
// Dial Tone Wait
|
|
#define DEFAULT_DIAL_TONE_WAIT 30
|
|
// Hangup Delay
|
|
#define DEFAULT_HANGUP_DELAY 60
|
|
|
|
// Poll retrieval
|
|
// PR_POLL_RETRIEVE_SENDME
|
|
#define SENDME_DEFAULT 0
|
|
#define SENDME_DOCUMENT 1
|
|
|
|
// PR_POLLTYPE
|
|
#define POLLTYPE_REQUEST 1
|
|
#define POLLTYPE_STORE 2
|
|
|
|
// Type of fax devices (line IDs)
|
|
// PR_FAX_ACTIVE_MODEM_TYPE
|
|
/*
|
|
defined in ifaxdev\h\filet30.h
|
|
|
|
#define LINEID_NONE (0x0)
|
|
#define LINEID_COMM_PORTNUM (0x1)
|
|
#define LINEID_COMM_HANDLE (0x2)
|
|
#define LINEID_TAPI_DEVICEID (0x3)
|
|
#define LINEID_TAPI_PERMANENT_DEVICEID (0x4)
|
|
#define LINEID_NETFAX_DEVICE (0x10)
|
|
|
|
*/
|
|
|
|
// Line ID (depends on the value in PR_FAX_ACTIVE_MODEM_TYPE)
|
|
// PR_FAX_ACTIVE_MODEM
|
|
#define NO_MODEM 0xffffffff // To show no modem is selected
|
|
|
|
// PR_FAX_TAPI_LOC_ID
|
|
#define NO_LOCATION 0xffffffff // No TAPI location
|
|
|
|
// Values for PR_FAX_FLAGS
|
|
// #define EFAX_FLAG_PEER_TO_PEER ((ULONG)0x00000001)
|
|
#define EFAX_FLAG_UI_ALWAYS ((ULONG)0x00000002)
|
|
// #define EFAX_FLAG_LOG_EVENTS ((ULONG)0x00000004)
|
|
#define EFAX_FLAG_SAVE_DATA ((ULONG)0x00000008)
|