2 * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the License);
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 using System.Runtime.InteropServices;
20 internal static partial class Interop
22 internal static partial class Messages
24 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
25 internal delegate void MessageIncomingCallback(IntPtr messageHandle, IntPtr userData);
27 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
28 internal delegate void MessageSentCallback(int result, IntPtr userData);
30 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
31 internal delegate bool MessageSearchCallback(IntPtr messageHandle, int index, int resultCount, int totalCount, IntPtr userData);
33 [DllImport(Libraries.Messages, EntryPoint = "messages_open_service")]
34 internal static extern int OpenService(out IntPtr serviceHandle);
36 [DllImport(Libraries.Messages, EntryPoint = "messages_close_service")]
37 internal static extern int CloseService(IntPtr serviceHandle);
39 [DllImport(Libraries.Messages, EntryPoint = "messages_create_message")]
40 internal static extern int CreateMessage(int type, out IntPtr messageHandle);
42 [DllImport(Libraries.Messages, EntryPoint = "messages_destroy_message")]
43 internal static extern int DestroyMessage(IntPtr messageHandle);
45 [DllImport(Libraries.Messages, EntryPoint = "messages_get_message_id")]
46 internal static extern int GetMessageId(IntPtr messageHandle, out int messageId);
48 [DllImport(Libraries.Messages, EntryPoint = "messages_set_sim_id")]
49 internal static extern int SetSimId(IntPtr messageHandle, int simId);
51 [DllImport(Libraries.Messages, EntryPoint = "messages_get_sim_id")]
52 internal static extern int GetSimId(IntPtr messageHandle, out int simId);
54 [DllImport(Libraries.Messages, EntryPoint = "messages_set_mbox_type")]
55 internal static extern int SetMboxType(IntPtr messageHandle, int mboxType);
57 [DllImport(Libraries.Messages, EntryPoint = "messages_get_mbox_type")]
58 internal static extern int GetMboxType(IntPtr messageHandle, out int mboxType);
60 [DllImport(Libraries.Messages, EntryPoint = "messages_get_message_port")]
61 internal static extern int GetMessagePort(IntPtr messageHandle, out int messagePort);
63 [DllImport(Libraries.Messages, EntryPoint = "messages_get_message_type")]
64 internal static extern int GetMessageType(IntPtr messageHandle, out int messageType);
66 [DllImport(Libraries.Messages, EntryPoint = "messages_set_text")]
67 internal static extern int SetText(IntPtr messageHandle, string text);
69 [DllImport(Libraries.Messages, EntryPoint = "messages_get_text")]
70 internal static extern int GetText(IntPtr messageHandle, out string text);
72 [DllImport(Libraries.Messages, EntryPoint = "messages_set_time")]
73 internal static extern int SetTime(IntPtr messageHandle, int time);
75 [DllImport(Libraries.Messages, EntryPoint = "messages_get_time")]
76 internal static extern int GetTime(IntPtr messageHandle, out int time);
78 [DllImport(Libraries.Messages, EntryPoint = "messages_mms_set_subject")]
79 internal static extern int SetSubject(IntPtr messageHandle, string subject);
81 [DllImport(Libraries.Messages, EntryPoint = "messages_mms_get_subject")]
82 internal static extern int GetSubject(IntPtr messageHandle, out string subject);
84 [DllImport(Libraries.Messages, EntryPoint = "messages_add_address")]
85 internal static extern int AddAddress(IntPtr messageHandle, string address, int type);
87 [DllImport(Libraries.Messages, EntryPoint = "messages_get_address_count")]
88 internal static extern int GetAddressCount(IntPtr messageHandle, out int count);
90 [DllImport(Libraries.Messages, EntryPoint = "messages_get_address")]
91 internal static extern int GetAddress(IntPtr messageHandle, int index, out string address, out int type);
93 [DllImport(Libraries.Messages, EntryPoint = "messages_remove_all_addresses")]
94 internal static extern int RemoveAllAddress(IntPtr messageHandle);
96 [DllImport(Libraries.Messages, EntryPoint = "messages_mms_add_attachment")]
97 internal static extern int AddAttachment(IntPtr messageHandle, int type, string path);
99 [DllImport(Libraries.Messages, EntryPoint = "messages_mms_get_attachment_count")]
100 internal static extern int GetAttachmentCount(IntPtr messageHandle, out int count);
102 [DllImport(Libraries.Messages, EntryPoint = "messages_mms_get_attachment")]
103 internal static extern int GetAttachment(IntPtr messageHandle, int index, out int type, out string path);
105 [DllImport(Libraries.Messages, EntryPoint = "messages_mms_remove_all_attachments")]
106 internal static extern int RemoveAllAttachment(IntPtr messageHandle);
108 [DllImport(Libraries.Messages, EntryPoint = "messages_set_message_incoming_cb")]
109 internal static extern int SetMessageIncomingCb(IntPtr serviceHandle, MessageIncomingCallback cb, IntPtr userData);
111 [DllImport(Libraries.Messages, EntryPoint = "messages_unset_message_incoming_cb")]
112 internal static extern int UnsetMessageIncomingCb(IntPtr serviceHandle);
114 [DllImport(Libraries.Messages, EntryPoint = "messages_send_message")]
115 internal static extern int SendMessage(IntPtr serviceHandle, IntPtr messageHandle, bool saveToSentbox, MessageSentCallback cb, IntPtr userData);
117 [DllImport(Libraries.Messages, EntryPoint = "messages_search_message_by_id")]
118 internal static extern int GetMessageById(IntPtr serviceHandle, int msgId, out IntPtr messageHandle);
120 [DllImport(Libraries.Messages, EntryPoint = "messages_foreach_message")]
121 internal static extern int SearchMessage(IntPtr serviceHandle, int mbox, int messageType, string textKeyword, string addressKeyword, int offset, int limit, MessageSearchCallback cb, IntPtr userData);