'****************************************************************************'
'                                                                            '
' Visual Basic declaration for the SPLUS functions.                           '
' This file can be loaded into the global module.                            '
'                                                                            '                                                                           '
'****************************************************************************'


'***************************************************
'   SPlusAttendee holds information about an attendee
'***************************************************

Type SPlusAttendee
    Reserved As Long
    UserType As String
	User As MapiRecip
	Status As Long
End Type


'***************************************************
'   SPlusAssoc describes an associated item
'***************************************************

Type SPlusAssoc
    Reserved As Long
    ItemType As String
	Flags As Long
	ItemID As String
	Position As Long
	Data As String
End Type



'***************************************************
'   SPlusMessage holds information about a message
'***************************************************

Type SPlusMessage
    Reserved As Long
    Subject As String
    NoteText As String
    MessageType As String
    DateReceived As String
    ConversationID As String
    Flags As Long
    RecipCount As Long
    FileCount As Long
    SentForCount As Long
End Type


'***************************************************
'   SPlusAppt holds information about an appointment
'***************************************************

Type SPlusAppt
    Reserved As Long
    ItemType As String
	Flags As Long
	Creator As MapiRecip
	AssocCount As Long
	Organizer As MapiRecip
	OrganizerItemID As String
	AttendeeCount As Long
	Text As String
	Body As String
	Recurrence As String
	DateStart As String
	DateEnd As String
End Type


'***************************************************
'   SPlusTask holds information about a task
'***************************************************

Type SPlusTask
    Reserved As Long
    ItemType As String
	Flags As Long
	Creator As MapiRecip
	AssocCount As Long
	Organizer As MapiRecip
	OrganizerItemID As String
	AttendeeCount As Long
	Text As String
	Body As String
	Recurrence As String
	DateDue As String
	DurationActive As String
	ProjectName As String
	Priority As String
End Type


'***************************************************
'   SPlusUserInfo holds information about some user
'***************************************************

Type SPlusUserInfo
    Reserved As Long
    UserType As String
	Flags As Long
	Assistant As MapiRecip
	StartTime As String
	EndTime As String
	TimeZone As String
	Data As String
End Type


'***************************************************
'   SPlusRestriction describes a restriction
'***************************************************

Type SPlusRestriction
    Reserved As Long
    ItemType As String
	RestrictionType As String
	RestrictionData As String
End Type



'***************************
'   FUNCTION Declarations
'***************************

Declare Function SPLUSSendMeeting Lib "SPLUS.DLL" Alias "BSPLUSSendMeeting" (ByVal S&, ByVal UIP&, M As SPlusMessage, R As MapiRecip, F As MapiFile, SF As MapiRecip, A As SPlusAppt, CAs As SPlusAssoc, At As SPlusAttendee, ByVal F&, ByVal Res&) As Long
Declare Function BSPLUSReadMeeting Lib "SPLUS.DLL" (lMsg&, nRecipCount&, nFileCount&, nSentForCount&, nAssocCount&, nAttendeeCount&, ByVal Session&, ByVal UIParam&, MessageID$, ByVal Flags&, ByVal Reserved&) As Long
Declare Function BSPLUSGetReadMeeting Lib "SPLUS.DLL" (ByVal lMsg&, Message As SPlusMessage, Originator As MapiRecip, Recips As MapiRecip, Files As MapiFile, SentFor As MapiRecip, Appt As SPlusAppt, Assoc As SPlusAssoc, Attendees As SPlusAttendee) As Long

Declare Function SPLUSBeginSession Lib "SPLUS.DLL" Alias "SPLUSBeginSession" (ByVal Session&, ByVal UIParam&, ByVal Flags&, ByVal Reserved&, SPlusSession&) As Long 
Declare Function SPLUSEndSession Lib "SPLUS.DLL" Alias "SPLUSEndSession" (ByVal Session&, ByVal UIParam&, ByVal Flags&, ByVal Reserved&) As Long
Declare Function SPLUSReadFreeBusy Lib "SPLUS.DLL" Alias "BSPLUSReadFreeBusy" (ByVal Session&, ByVal UIParam&, ByVal nUserCount&, Users As MapiRecip, Mon$, ByVal Flags&, ByVal Reserved&, HaveInfo$, FreeBusy$) As Long
Declare Function SPLUSReadUserInfo Lib "SPLUS.DLL" Alias "BSPLUSReadUserInfo" (ByVal Session&, ByVal UIParam&, User As MapiRecip, ByVal Flags&, ByVal Reserved&, UserInfo As SPlusUserInfo) As Long
Declare Function SPLUSFindNextItem Lib "SPLUS.DLL" Alias "BSPLUSFindNextItem" (ByVal Session&, ByVal UIParam&, User As MapiRecip, Restriction As SPlusRestriction, SeedItemID$, ByVal Flags&, ByVal Reserved&, ItemID$) As Long
Declare Function SPLUSDeleteItem Lib "SPLUS.DLL" Alias "BSPLUSDeleteItem" (ByVal Session&, ByVal UIParam&, User As MapiRecip, ItemID$, ByVal Flags&, ByVal Reserved& ) As Long
Declare Function SPLUSSaveAppt Lib "SPLUS.DLL" Alias "BSPLUSSaveAppt" (ByVal Session&, ByVal UIParam&, User As MapiRecip, Appt As SPlusAppt, Assoc As SPlusAssoc, Attendees As SPlusAttendee, ByVal Flags&, ByVal Reserved&, ItemID$) As Long
Declare Function SPLUSSaveTask Lib "SPLUS.DLL" Alias "BSPLUSSaveTask" (ByVal Session&, ByVal UIParam&, User As MapiRecip, Task As SPlusTask, Assoc As SPlusAssoc, Attendees As SPlusAttendee, ByVal Flags&, ByVal Reserved&, ItemID$) As Long
Declare Function BSPLUSReadAppt Lib "SPLUS.DLL" (lAppt&, nAssocCount&, nAttendeeCount&, ByVal Session&, ByVal UIParam&, User As MapiRecip, ItemID$, ByVal Flags&, ByVal Reserved&) As Long
Declare Function BSPLUSGetReadAppt Lib "SPLUS.DLL" (ByVal lAppt&, Appt As SPlusAppt, Assoc As SPlusAssoc, Attendees As SPlusAttendee) As Long
Declare Function BSPLUSReadTask Lib "SPLUS.DLL" (lTask&, nAssocCount&, nAttendeeCount&, ByVal Session&, ByVal UIParam&, User As MapiRecip, ItemID$, ByVal Flags&, ByVal Reserved&) As Long
Declare Function BSPLUSGetReadTask Lib "SPLUS.DLL" (ByVal lTask&, Task As SPlusTask, Assoc As SPlusAssoc, Attendees As SPlusAttendee) As Long


'**************************
'   CONSTANT Declarations
'**************************
'

Global Const	SPLUS_E_INVALID_SENT_FOR					= 10000
Global Const	SPLUS_E_NOT_INSTALLED					= 10005
Global Const	SPLUS_E_NO_ITEMS							= 10010
Global Const	SPLUS_E_NO_SCHEDULE						= 10015
Global Const	SPLUS_E_NO_PRIVILEGE						= 10020
Global Const	SPLUS_E_INVALID_ADDRESS_FORMAT			= 10025
Global Const	SPLUS_E_INVALID_USER						= 10030
Global Const	SPLUS_E_INVALID_ITEM						= 10035
Global Const	SPLUS_E_INVALID_TYPE						= 10040
Global Const	SPLUS_E_INVALID_FLAGS					= 10045
Global Const	SPLUS_E_INVALID_ASSOC					= 10050
Global Const	SPLUS_E_INVALID_ORGANIZER				= 10055
Global Const	SPLUS_E_INVALID_ORGANIZER_ID				= 10060
Global Const	SPLUS_E_INVALID_ATTENDEES				= 10065
Global Const	SPLUS_E_INVALID_TIME						= 10070
Global Const	SPLUS_E_INVALID_PRIORITY					= 10075
Global Const	SPLUS_E_INVALID_MONTH					= 10080
Global Const	SPLUS_E_INVALID_RESTRICTION				= 10085
Global Const	SPLUS_E_ALARM_RING_IN_PAST				= 10090
Global Const	SPLUS_E_NOT_ONLINE						= 10095


'***********************
'   FLAG Declarations
'***********************

Global Const	SPLUS_NO_REQUEST_SENT					=&H00000000
Global Const	SPLUS_NO_RESPONSE						=&H00000001
Global Const	SPLUS_POSITIVE_RESPONSE					=&H00000002
Global Const	SPLUS_NEGATIVE_RESPONSE					=&H00000003
Global Const	SPLUS_AMBIGUOUS_RESPONSE					=&H00000004

Global Const	SPLUS_RESPONSE_REQUESTED					=&H00010000

Global Const	SPLUS_PRIVATE							=&H00000001
Global Const	SPLUS_PRIVATE_PROJECT					=&H00000002
Global Const	SPLUS_TENTATIVE							=&H00000004

Global Const	SPLUS_BOSS_WANTS_COPY					=&H00000001

Global Const	SPLUS_DEFAULT_ALARM						=&H00001000

Global Const	SPLUS_MODIFY_FLAGS						=&H00010000
Global Const	SPLUS_MODIFY_ASSOC						=&H00020000
Global Const	SPLUS_MODIFY_ATTENDEES					=&H00040000
Global Const	SPLUS_MODIFY_TEXT						=&H00080000
Global Const	SPLUS_MODIFY_TIMES						=&H00400000
Global Const	SPLUS_MODIFY_PROJECT_NAME				=&H00800000
Global Const	SPLUS_MODIFY_PRIORITY					=&H01000000

Global Const	SPLUS_SUPPRESS_RECIPIENTS				=&H00010000
