Quellcode: ims.h

#ifndef __IMS_H__
#define __IMS_H__

/*h-----------------------------------------------------------------------

Copyright (c)1995-96 Cynex. All rights reserved.

$Archive: $

$Revision: $
$Author: $
$Date: $

Compiler: C/C++

Contents: Imagine Messaging Service

$NoKeywords: $

------------------------------------------------------------------------*/

/*s-----------------------------------------------------------------------
Include files
------------------------------------------------------------------------*/
#include "cynex.h"

/*s-----------------------------------------------------------------------
Definitions
------------------------------------------------------------------------*/
//
// Registrybase of IMS
//
#define REGKEY_IMS_BASE TEXT("Software\\Cynex\\IMS\\1.0")
#define REGVALUE_IMS_BASE_HOMEDIR TEXT("HomeDir")
#define REGVALUE_IMS_BASE_IMSSERVER TEXT("IMSServer")
#define REGVALUE_IMS_BASE_IMSCLIENTPROTOCOL TEXT("IMSRpcClientProtocol")
#define REGVALUE_IMS_BASE_IMSSERVERPROTOCOL TEXT("IMSRpcServerProtocols")
#define REGVALUE_IMS_BASE_IMMSCLIENTPROTOCOL TEXT("IMMSRpcClientProtocol")
#define REGVALUE_IMS_BASE_IMMSSERVERPROTOCOL TEXT("IMMSRpcServerProtocols")
#define REGVALUE_IMS_BASE_RETRY_PAUSE TEXT("RetryPause")

#define REGKEY_IMS_CUSTOMER_INFO TEXT("Software\\Cynex\\IMS\\1.0\\CustomerInfo")
#define REGVALUE_IMS_CUSTOMER_INFO_COMPANY TEXT("Company")
#define REGVALUE_IMS_CUSTOMER_INFO_NAME TEXT("Name")
#define REGVALUE_IMS_CUSTOMER_INFO_ADDRESS TEXT("Address")
#define REGVALUE_IMS_CUSTOMER_INFO_ZIPCITY TEXT("ZipAndCity")
#define REGVALUE_IMS_CUSTOMER_INFO_PHONE TEXT("Phone")
#define REGVALUE_IMS_CUSTOMER_INFO_FAX TEXT("Fax")
#define REGVALUE_IMS_CUSTOMER_INFO_HANDY TEXT("Handy")
#define REGVALUE_IMS_CUSTOMER_INFO_EMAIL TEXT("EMail")
#define REGVALUE_IMS_CUSTOMER_INFO_NOTES TEXT("Notes")


//
// Imagine Messaging Flags (IMF)
// Used for calls to IMProcessMessage
//
#define IMF_SHOW_LOCAL 1
#define IMF_LOG 2
#define IMF_ASYNCHRON 4

//
// Messagelog state (ML)
//
#define ML_STATE_OK 0x0001
#define ML_STATE_FAILED 0x0002
#define ML_STATE_PENDING 0x0004
#define ML_STATE_ABORTED 0x0008

//
// Messageresponse (MR)
//
#define MR_NOT_SUPPORTED 0x0000
#define MR_NONE 0x0000
#define MR_OK 0x0001
#define MR_CANCEL 0x0002
#define MR_HELP 0x0004
#define MR_YES 0x0008
#define MR_NO 0x0010
#define MR_RETRY 0x0020
#define MR_IGNORE 0x0040
#define MR_ABORT 0x0080

//
// Default source address generator
//
#define IMS_DEFAULT_SOURCE_PROCESSOR TEXT("imsdefaultsource.dll")

//
// Receiver capabilities
// IMSM = Imagine Messaging Service Module
//
#define IMSM_CAP_CONFIGURE_MESSAGE 0x00000001
#define IMSM_CAP_STORE_AND_FORWARD 0x00000002
#define IMSM_CAP_SECURE_CHANNEL 0x00000004
#define IMSM_CAP_MULTICAST 0x00000008

#define IMSM_CAP_PROCESS_HEADING 0x00010000
#define IMSM_CAP_PROCESS_TEXT 0x00020000
#define IMSM_CAP_PROCESS_HTML 0x00040000
#define IMSM_CAP_PROCESS_VIDEO_AVI 0x00080000
#define IMSM_CAP_PROCESS_VIDEO_MPEG 0x00100000
#define IMSM_CAP_PROCESS_AUDIO_WAV 0x00200000

#define IMSM_CAP_MR_NONE 0x0000
#define IMSM_CAP_MR_OK 0x0001
#define IMSM_CAP_MR_CANCEL 0x0002
#define IMSM_CAP_MR_HELP 0x0004
#define IMSM_CAP_MR_YES 0x0008
#define IMSM_CAP_MR_NO 0x0010
#define IMSM_CAP_MR_RETRY 0x0020
#define IMSM_CAP_MR_IGNORE 0x0040
#define IMSM_CAP_MR_ABORT 0x0080

//
// max. Länge der Zusammenfassung von Nachrichten
//
#define STRING_MESSAGE_SUMMARY_LENGTH 200

//
// Anzahl der unterstützen Sprachen
//
#define IMS_NO_OF_LANGUAGES 27

/*s-----------------------------------------------------------------------
Type definitions
------------------------------------------------------------------------*/
#if !defined(__RPC_PROCEDURES__) || defined(__MIDL_PASS__)

typedef UInt32_t IMCapability_t;

typedef Int32_t IMMessageId_t;

typedef UInt32_t IMDetailLevel_t;

typedef enum _IMMessageClass_t { IMCUndefined = -1,
IMCInformation = 0,
IMCWarning,
IMCError,
IMCCritical } IMMessageClass_t;


//
// ACHTUNG: Falls eine Sprache hinzugefügt wird,
// muß die Definition IMS_NO_OF_LANGUAGES angepaßt werden!
//
typedef enum _IMLanguage_t_ { IMLUndefined = 0x0,
IMLGerman = 0x0000001,
IMLEnglish = 0x0000002,
IMLFrench = 0x0000004,
IMLBulgarian = 0x0000008,
IMLJapanese = 0x0000010,
IMLChinese = 0x0000020,
IMLKorean = 0x0000040,
IMLCroatian = 0x0000080,
IMLCzech = 0x0000100,
IMLNorwegian = 0x0000200,
IMLDanish = 0x0000400,
IMLPolish = 0x0000800,
IMLDutch = 0x0001000,
IMLPortuguese = 0x0002000,
IMLRomanian = 0x0004000,
IMLFinnish = 0x0008000,
IMLRussian = 0x0010000,
IMLSlovak = 0x0020000,
IMLSlovenian = 0x0040000,
IMLGreek = 0x0080000,
IMLSpanish = 0x0100000,
IMLHungarian = 0x0200000,
IMLSwedish = 0x0400000,
IMLIcelandic = 0x0800000,
IMLTurkish = 0x1000000,
IMLItalian = 0x2000000} IMLanguage_t;


typedef enum _IMMessageType_t_ { IMMTUndefined = -1,
IMMTHeading = 0x0001,
IMMTText = 0x0002,
IMMTHTML = 0x0004,
IMMTAudioWAV = 0x0008,
IMMTVideoAVI = 0x0010,
IMMTVideoMPEG = 0x0020 } IMMessageType_t;

typedef UInt32_t IMMessageResponse_t;

typedef struct _IMInsertData_s_
{
IMMessageType_t messageType;
UInt32_t size;
Data_t data;
} IMInsertData_s, *PIMInsertData_s;

//
// Message-Zusammenfassung
//
#ifdef __MIDL_PASS__

typedef struct _IMMessageProfile_s_
{
[string] Char_t appName[STRING_NAME_LENGTH + 1];
[string] Char_t appType[STRING_UUID_LENGTH + 1];
IMMessageId_t messageId;
IMDetailLevel_t maxDetailLevel;
IMMessageType_t messageType;
IMMessageClass_t messageClass;
IMLanguage_t languages;
[string] Char_t summary[STRING_MESSAGE_SUMMARY_LENGTH + 1];
} IMMessageProfile_s;

#else

typedef struct _IMMessageProfile_s_
{
Char_t appName[STRING_NAME_LENGTH + 1];
Char_t appType[STRING_UUID_LENGTH + 1];
IMMessageId_t messageId;
IMDetailLevel_t maxDetailLevel;
IMMessageType_t messageType;
IMMessageClass_t messageClass;
IMLanguage_t languages;
Char_t summary[STRING_MESSAGE_SUMMARY_LENGTH + 1];
} IMMessageProfile_s;


#endif


//
// Source-Address
//
#ifdef __MIDL_PASS__

typedef struct _IMSource_s_
{
[string] Char_t applicationName[STRING_NAME_LENGTH + 1];
[string] Char_t platform[STRING_NAME_LENGTH + 1];
[string] Char_t sourceName[STRING_NAME_LENGTH + 1];
[string] Char_t sourceAddress[STRING_NAME_LENGTH + 1];
[string] Char_t applicationType[STRING_UUID_LENGTH + 1];
} IMSource_s;

#else

typedef struct _IMSource_s_
{
Char_t applicationName[STRING_NAME_LENGTH + 1];
Char_t platform[STRING_NAME_LENGTH + 1];
Char_t sourceName[STRING_NAME_LENGTH + 1];
Char_t sourceAddress[STRING_NAME_LENGTH + 1];
Char_t applicationType[STRING_UUID_LENGTH + 1];
} IMSource_s;

#endif

//
// Receiver definitions
//
#ifdef __MIDL_PASS__

typedef struct _IMReceiverAddress_s_
{
[string] Char_t displayName[STRING_NAME_LENGTH + 1];
[string] Char_t internalAddress[STRING_PATH_LENGTH + 1];
IMCapability_t channelCapabilities;
IMMessageResponse_t responseCapabilities;
} IMReceiverAddress_s;

#else

typedef struct _IMReceiverAddress_s_
{
Char_t displayName[STRING_NAME_LENGTH + 1];
Char_t internalAddress[STRING_PATH_LENGTH + 1];
IMCapability_t channelCapabilities;
IMMessageResponse_t responseCapabilities;
} IMReceiverAddress_s;

#endif


#ifdef __MIDL_PASS__

typedef struct _IMChannel_s_
{
[string] Char_t displayName[STRING_NAME_LENGTH + 1];
[string] Char_t computerName[STRING_NAME_LENGTH + 1];
[string] Char_t serviceName[STRING_NAME_LENGTH + 1];
[string] Char_t receiverId[STRING_UUID_LENGTH + 1];
[string] Char_t internalAddress[STRING_PATH_LENGTH + 1];
IMCapability_t channelCapabilities;
IMMessageResponse_t responseCapabilities;
} IMChannel_s;

#else

typedef struct _IMChannel_s_
{
Char_t displayName[STRING_NAME_LENGTH + 1];
Char_t computerName[STRING_NAME_LENGTH + 1];
Char_t serviceName[STRING_NAME_LENGTH + 1];
Char_t receiverId[STRING_UUID_LENGTH + 1];
Char_t internalAddress[STRING_PATH_LENGTH + 1];
IMCapability_t channelCapabilities;
IMMessageResponse_t responseCapabilities;
} IMChannel_s;

#endif

#ifdef __MIDL_PASS__

typedef struct _IMCustomerInformation_s_
{
[string] Char_t company[STRING_NAME_LENGTH + 1];
[string] Char_t name[STRING_NAME_LENGTH + 1];
[string] Char_t address[STRING_PATH_LENGTH + 1];
[string] Char_t zipAndCity[STRING_PATH_LENGTH + 1];
[string] Char_t phoneNo[STRING_PHONE_NO_LENGTH + 1];
[string] Char_t faxNo[STRING_PHONE_NO_LENGTH + 1];
[string] Char_t mobilePhoneNo[STRING_PHONE_NO_LENGTH + 1];
[string] Char_t email[STRING_PATH_LENGTH + 1];
[string] Char_t notes[STRING_NOTES_LENGTH + 1];
} IMCustomerInformation_s;

#else

typedef struct _IMCustomerInformation_s_
{
Char_t company[STRING_NAME_LENGTH + 1];
Char_t name[STRING_NAME_LENGTH + 1];
Char_t address[STRING_PATH_LENGTH + 1];
Char_t zipAndCity[STRING_PATH_LENGTH + 1];
Char_t phoneNo[STRING_PHONE_NO_LENGTH + 1];
Char_t faxNo[STRING_PHONE_NO_LENGTH + 1];
Char_t mobilePhoneNo[STRING_PHONE_NO_LENGTH + 1];
Char_t email[STRING_PATH_LENGTH + 1];
Char_t notes[STRING_NOTES_LENGTH + 1];
} IMCustomerInformation_s;

#endif



#ifdef __MIDL_PASS__

typedef struct _IMReceiverMessageData_s_
{
IMMessageType_t messageType;
UInt32_t dataSize;
[size_is(dataSize)] PByte_t data;
} IMReceiverMessageData_s;


typedef struct _IMReceiverMessage_s_
{
IMCustomerInformation_s customerInformation;
[string] Char_t platform[STRING_NAME_LENGTH + 1];
[string] Char_t applicationName[STRING_NAME_LENGTH + 1];
[string] Char_t applicationType[STRING_UUID_LENGTH + 1];
[string] Char_t subSourceAddress[STRING_NAME_LENGTH + 1];
IMMessageId_t messageId;
IMMessageClass_t messageClass;
IMMessageResponse_t requiredResponse;
UInt32_t noOfData;
[size_is(noOfData)] IMReceiverMessageData_s* data;
} IMReceiverMessage_s;

#else

typedef struct _IMReceiverMessageData_s_
{
IMMessageType_t messageType;
UInt32_t dataSize;
PByte_t data;
} IMReceiverMessageData_s;

typedef struct _IMReceiverMessage_s_
{
IMCustomerInformation_s customerInformation;
Char_t platform[STRING_NAME_LENGTH + 1];
Char_t applicationName[STRING_NAME_LENGTH + 1];
Char_t applicationType[STRING_UUID_LENGTH + 1];
Char_t subSourceAddress[STRING_NAME_LENGTH + 1];
IMMessageId_t messageId;
IMMessageClass_t messageClass;
IMMessageResponse_t requiredResponse;
UInt32_t noOfData;
IMReceiverMessageData_s* data;
} IMReceiverMessage_s;

#endif

//
// Database definitions
//
typedef struct _IMSDBTableReceiver_s_
{
Char_t receiverId[STRING_UUID_LENGTH + 1];
Char_t name[STRING_NAME_LENGTH + 1];
Char_t computerName[STRING_NAME_LENGTH + 1];
Char_t phoneBookEntry[STRING_NAME_LENGTH + 1];
Char_t userName[STRING_NAME_LENGTH + 1];
Char_t password[STRING_PASSWORD_LENGTH + 1];
Char_t domain[STRING_NAME_LENGTH + 1];
Char_t processorPath[STRING_PATH_LENGTH + 1];
} IMSDBTableReceiver_s, IMReceiver_s;

typedef struct _IMSDBTablePlatforms_s_
{
Char_t name[STRING_NAME_LENGTH + 1];
Char_t appType[STRING_UUID_LENGTH + 1];
} IMSDBTablePlatforms_s, IMPlatform_s;

typedef struct _IMSDBTableApplications_s_
{
Char_t appType[STRING_UUID_LENGTH + 1];
Char_t name[STRING_NAME_LENGTH + 1];
Char_t sourceProcessorDLL[STRING_PATH_LENGTH + 1];
} IMSDBTableApplications_s, IMApplication_s;

#ifdef __MIDL_PASS__

typedef struct _IMSDBTableMessages_s_
{
[string] Char_t appType[STRING_UUID_LENGTH + 1];
IMMessageId_t messageId;
IMMessageClass_t messageClass;
IMMessageType_t messageType;
IMDetailLevel_t messageDetail;
IMLanguage_t messageLanguage;
IMMessageResponse_t messageResponse;
UInt32_t dataSize;
[size_is(dataSize)] PByte_t data;
} IMSDBTableMessages_s, IMMessage_s;

#else

typedef struct _IMSDBTableMessages_s_
{
Char_t appType[STRING_UUID_LENGTH + 1];
IMMessageId_t messageId;
IMMessageClass_t messageClass;
IMMessageType_t messageType;
IMDetailLevel_t messageDetail;
IMLanguage_t messageLanguage;
IMMessageResponse_t messageResponse;
UInt32_t dataSize;
PByte_t data;
} IMSDBTableMessages_s, IMMessage_s;

#endif

typedef struct _IMSDBTableConnections_s_
{
UInt32_t connectionId;
Char_t name[STRING_NAME_LENGTH + 1];
} IMSDBTableConnections_s, IMConnection_s;

typedef struct _IMSDBTableConnectionData_s_
{
UInt32_t connectionId;

Char_t appType[STRING_UUID_LENGTH + 1];
IMMessageId_t messageId;
Char_t platformName[STRING_NAME_LENGTH + 1];
Char_t sourceAddress[STRING_NAME_LENGTH + 1];

IMDetailLevel_t detailLevel;
IMLanguage_t language;
Char_t receiverId[STRING_UUID_LENGTH + 1];
Char_t receiverComputerName[STRING_NAME_LENGTH + 1];
IMCapability_t receiverCapabilities;
Char_t receiverAddress[STRING_NAME_LENGTH + 1];
} IMSDBTableConnectionData_s, IMConnectionData_s;


typedef struct _IMSDBTableMessageLog_s_
{
UInt32_t entryId;
UInt32_t timeStamp;
UInt32_t deliverTimeStamp;
UInt32_t logState;

UInt32_t connectionId;
Char_t appType[STRING_UUID_LENGTH + 1];
IMMessageId_t messageId;
Char_t platformName[STRING_NAME_LENGTH + 1];
Char_t sourceAddress[STRING_NAME_LENGTH + 1];
IMDetailLevel_t detailLevel;
IMLanguage_t language;
Char_t receiverId[STRING_UUID_LENGTH + 1];
Char_t receiverComputerName[STRING_NAME_LENGTH + 1];
IMCapability_t receiverCapabilities;
Char_t receiverAddress[STRING_NAME_LENGTH + 1];
UInt32_t insertDataSize;
PByte_t insertData;
} IMSDBTableMessageLog_s, IMMessageLogEntry_s;


typedef struct _IMSDBTableUserDefinedMessageData_s_
{
Char_t appType[STRING_UUID_LENGTH + 1];
IMMessageId_t messageId;
IMDetailLevel_t messageDetail;
IMLanguage_t messageLanguage;
Char_t receiverId[STRING_UUID_LENGTH + 1];
Char_t receiverAddress[STRING_NAME_LENGTH + 1];
UInt32_t dataSize;
PByte_t data;
} IMSDBTableUserDefinedMessageData_s, IMUserDefinedMessageData_s;


#endif // __RPC_PROCEDURES__

/*s-----------------------------------------------------------------------
Functions
------------------------------------------------------------------------*/
#if !defined(__MIDL_PASS__)

#ifdef __cplusplus
extern "C" {
#endif

//
// Configuration
//
Retcode_t API_FUNCTION IMConnectionWizard(
HWND parent,
Char_t* nameBuffer,
UInt32_t* noOfConnections,
IMConnectionData_s** connectionData );

Retcode_t API_FUNCTION IMSetup(
HWND parent );

Retcode_t API_FUNCTION IMReceiverSetup(
HWND parent );

Retcode_t API_FUNCTION IMCustomerSetup(
HWND parent );

Retcode_t API_FUNCTION IMAllocateMemory(
UInt32_t dataSize,
Pointer_t* pPointer );

Retcode_t API_FUNCTION IMFreeMemory(
Pointer_t pPointer );

//
// General functions
//
Retcode_t API_FUNCTION IMProcessMessage(
HWND parent,
Flags_t flags,
Char_t* appType,
Char_t* platform,
Char_t* sourceAddress,
IMMessageId_t messageId,
IMLanguage_t language,
IMDetailLevel_t detailLevel,
UInt32_t noOfInsertData,
IMInsertData_s* insertData,
IMMessageResponse_t* messageResponse );


Retcode_t API_FUNCTION IMShowMessage(
HWND parent,
Char_t* appType,
Char_t* sourceAddress,
IMMessageId_t messageId,
IMMessageResponse_t* messageResponse );


Retcode_t API_FUNCTION IMShowMessageEx(
HWND parent,
Char_t* appType,
Char_t* sourceAddress,
IMMessageId_t messageId,
IMDetailLevel_t detailLevel,
UInt32_t noOfInsertData,
IMInsertData_s* insertData,
IMMessageResponse_t* messageResponse );


Retcode_t API_FUNCTION IMInstallApplication(
Char_t* platform,
Char_t* appType,
Char_t* appName,
Char_t* sourceProcessor,
Char_t* messageFile );

Retcode_t API_FUNCTION IMGetSources(
UInt32_t bufferSize,
IMSource_s* sourceInfos,
UInt32_t* usedBufferSize );


Retcode_t API_FUNCTION IMGetChannels(
UInt32_t bufferSize,
IMChannel_s* channelInfos,
UInt32_t* usedBufferSize );


Retcode_t API_FUNCTION IMGetMessageProfiles(
Char_t* appType,
UInt32_t bufferSize,
IMMessageProfile_s* messageInfos,
UInt32_t* usedBufferSize );

Retcode_t API_FUNCTION IMGetReceiverMessageData(
IMReceiverMessage_s* receiverMessage,
IMMessageType_t messageType,
IMReceiverMessageData_s** receiverMessageData );


Retcode_t API_FUNCTION IMGetReceiverList(
Char_t* computerName,
Char_t* phoneBookEntry,
Char_t* userName,
Char_t* password,
Char_t* domain,
UInt32_t bufferSize,
IMReceiver_s* receiverInfos,
UInt32_t* usedBufferSize );


Retcode_t API_FUNCTION IMRegisterReceiver(
IMReceiver_s* receiverInfo );

Retcode_t API_FUNCTION IMUnregisterReceiver(
Char_t* receiverId,
Char_t* computerName );

Retcode_t API_FUNCTION IMGetCustomerInformation(
IMCustomerInformation_s* customerInfo );

Retcode_t API_FUNCTION IMSetCustomerInformation(
IMCustomerInformation_s* customerInfo );

//
// Database API
//
Retcode_t API_FUNCTION IMDBFreeMemory( Pointer_t pPointer );

Retcode_t API_FUNCTION IMDBCreateDatabase();

Retcode_t API_FUNCTION IMDBAddNewReceiver(
IMReceiver_s* receiverInfo );


Retcode_t API_FUNCTION IMDBDeleteReceiver(
Char_t* receiverId,
Char_t* computerName );

Retcode_t API_FUNCTION IMDBGetReceiver(
Char_t* receiverId,
Char_t* computerName,
IMReceiver_s* receiverInfo );

Retcode_t API_FUNCTION IMDBGetFirstReceiver(
Char_t* computerName,
PHEnum_t iteratorHandle,
IMReceiver_s* receiverInfo );

Retcode_t API_FUNCTION IMDBGetNextReceiver(
PHEnum_t iteratorHandle,
IMReceiver_s* receiverInfo );


Retcode_t API_FUNCTION IMDBAddNewPlatform(
IMPlatform_s* platformInfo );


Retcode_t API_FUNCTION IMDBDeletePlatform(
String_t platformName,
Char_t* appType );

Retcode_t API_FUNCTION IMDBGetPlatform(
String_t platformName,
Char_t* appType,
IMPlatform_s* platformInfo );

Retcode_t API_FUNCTION IMDBUpdatePlatform(
String_t platformName,
Char_t* appType,
IMPlatform_s* platformInfo );

Retcode_t API_FUNCTION IMDBGetFirstPlatform(
Char_t* appType,
PHEnum_t iteratorHandle,
IMPlatform_s* platformInfo );

Retcode_t API_FUNCTION IMDBGetNextPlatform(
PHEnum_t iteratorHandle,
IMPlatform_s* platformInfo );

Retcode_t API_FUNCTION IMDBAddNewApplication(
IMApplication_s* appInfo );

Retcode_t API_FUNCTION IMDBDeleteApplication(
Char_t* appType );

Retcode_t API_FUNCTION IMDBGetApplication(
Char_t* appType,
IMApplication_s* appInfo );

Retcode_t API_FUNCTION IMDBGetFirstApplication(
PHEnum_t iteratorHandle,
IMApplication_s* appInfo );

Retcode_t API_FUNCTION IMDBGetNextApplication(
PHEnum_t iteratorHandle,
IMApplication_s* appInfo );

Retcode_t API_FUNCTION IMDBAddNewMessage(
IMMessage_s* messageInfo );

Retcode_t API_FUNCTION IMDBDeleteMessage(
Char_t* appType,
IMMessageId_t messageId,
IMMessageType_t messageType,
IMDetailLevel_t messageDetail,
IMLanguage_t messageLanguage );

Retcode_t API_FUNCTION IMDBGetMessage(
Char_t* appType,
IMMessageId_t messageId,
IMMessageType_t messageType,
IMDetailLevel_t messageDetail,
IMLanguage_t messageLanguage,
IMMessage_s* messageInfo );

Retcode_t API_FUNCTION IMDBGetFirstMessage(
Char_t* appType,
PHEnum_t iteratorHandle,
IMMessage_s* messageInfo );

Retcode_t API_FUNCTION IMDBGetNextMessage(
PHEnum_t iteratorHandle,
IMMessage_s* messageInfo );

Retcode_t API_FUNCTION IMDBAddNewConnection(
IMConnection_s* connectionInfo );

Retcode_t API_FUNCTION IMDBDeleteConnection(
UInt32_t connectionId );

Retcode_t API_FUNCTION IMDBGetConnection(
UInt32_t connectionId,
IMConnection_s* connectionInfo );

Retcode_t API_FUNCTION IMDBGetFirstConnection(
PHEnum_t iteratorHandle,
IMConnection_s* connectionInfo );

Retcode_t API_FUNCTION IMDBGetNextConnection(
PHEnum_t iteratorHandle,
IMConnection_s* connectionInfo );

Retcode_t API_FUNCTION IMDBAddNewConnectionData(
IMConnectionData_s* connectionDataInfo );

Retcode_t API_FUNCTION IMDBDeleteConnectionData(
UInt32_t connectionId,
Char_t* appType,
IMMessageId_t messageId,
String_t platform,
String_t sourceAddress,
Char_t* receiverId );

Retcode_t API_FUNCTION IMDBGetConnectionData(
UInt32_t connectionId,
Char_t* appType,
IMMessageId_t messageId,
String_t platform,
String_t sourceAddress,
Char_t* receiverId,
IMConnectionData_s* connectionDataInfo );

Retcode_t API_FUNCTION IMDBGetFirstConnectionData(
UInt32_t connectionId,
PHEnum_t iteratorHandle,
IMConnectionData_s* connectionDataInfo );

Retcode_t API_FUNCTION IMDBGetNextConnectionData(
PHEnum_t iteratorHandle,
IMConnectionData_s* connectionDataInfo );

Retcode_t API_FUNCTION IMDBGetFirstConnectionDataWithReceiver(
UInt32_t connectionId,
Char_t* appType,
IMMessageId_t messageId,
String_t platform,
String_t sourceAddress,
PHEnum_t iteratorHandle,
IMConnectionData_s* connectionDataInfo );

Retcode_t API_FUNCTION IMDBGetNextConnectionDataWithReceiver(
PHEnum_t iteratorHandle,
IMConnectionData_s* connectionDataInfo );


Retcode_t API_FUNCTION IMDBAddNewMessageLogEntry(
IMMessageLogEntry_s* messageLogEntry );

Retcode_t API_FUNCTION IMDBDeleteMessageLogEntry(
UInt32_t entryId );

Retcode_t API_FUNCTION IMDBUpdateMessageLogEntry(
UInt32_t entryId,
IMMessageLogEntry_s* newMessageLogEntry );

Retcode_t API_FUNCTION IMDBGetMessageLogEntry(
UInt32_t entryId,
IMMessageLogEntry_s* messageLogEntry );

Retcode_t API_FUNCTION IMDBGetFirstMessageLogEntry(
PHEnum_t iteratorHandle,
IMMessageLogEntry_s* messageLogEntry );

Retcode_t API_FUNCTION IMDBGetNextMessageLogEntry(
PHEnum_t iteratorHandle,
IMMessageLogEntry_s* messageLogEntry );

Retcode_t API_FUNCTION IMDBGetFirstFailedMessageLogEntry(
PHEnum_t iteratorHandle,
IMMessageLogEntry_s* messageLogEntry );

Retcode_t API_FUNCTION IMDBGetNextFailedMessageLogEntry(
PHEnum_t iteratorHandle,
IMMessageLogEntry_s* messageLogEntry );


Retcode_t API_FUNCTION IMDBAddNewUserDefinedMessageData(
IMUserDefinedMessageData_s* userDefinedMessageData );

Retcode_t API_FUNCTION IMDBDeleteUserDefinedMessageData(
Char_t* appType,
IMMessageId_t messageId,
IMDetailLevel_t messageDetail,
IMLanguage_t language,
Char_t* receiverId,
Char_t* receiverAddress );

Retcode_t API_FUNCTION IMDBGetUserDefinedMessageData(
Char_t* appType,
IMMessageId_t messageId,
IMDetailLevel_t messageDetail,
IMLanguage_t language,
Char_t* receiverId,
Char_t* receiverAddress,
IMUserDefinedMessageData_s* userDefinedMessageData );

Retcode_t API_FUNCTION IMDBUpdateUserDefinedMessageData(
Char_t* appType,
IMMessageId_t messageId,
IMDetailLevel_t messageDetail,
IMLanguage_t language,
Char_t* receiverId,
Char_t* receiverAddress,
IMUserDefinedMessageData_s* userDefinedMessageData );


#ifdef __cplusplus
}
#endif

#endif // __MIDL_PASS__

#endif // __IMS_H__