Функция для отправки специального сообщения в консоль MyChat Client.

 

Синтаксис

function mSendCustomMsgToClientConsoleByCID(iCID: integer; sMsg, sSound: string; bFocus, bSaveToLog: boolean; iType: integer): integer;

 

Параметры и возвращаемые значения

Параметр

Тип

Значение

iCID

integer

уникальный идентификатор подключения клиента в онлайн-структуре сервера;

sMsg

string

текст сообщения. Можно использовать переносы строк (CRLF);

sSound

string

тип звукового уведомления, которое можно указать. Если будет задана пустая строка — никакого звука на клиенте не будет. Если в настройках клиентской программы отключены все звуки, то звукового уведомления также не будет. Список возможных звуков указан в справочнике звуков MyChat Client;

bFocus

boolean

принудительно переключить программу клиента на консоль для показа сообщения;

bSaveToLog

boolean

сохранять сообщение в протоколе клиента на диск, а не только отображать его в консоли;

iType

integer

тип сообщения, один из вариантов.

 

Результат функции

Число 0, если отправка произошла успешно, -1 — если CID не существует или произошла сетевая ошибка.


Пример

Запрет отправки сообщений в общую конференцию main всем пользователям, кроме группы прав NSS. Если в конференцию будет отправлять сообщение пользователь из другой группы, оно будет игнорироваться, а в консоль пользователю в Windows-приложение будет отправляться уведомление про это.


const
  NOTIFY_FLAG = true; // true/false: notify a user that he can't write messages in a conference
  RESTRICTED_CONFS = '|main|';
  ALLOWED_ROLES    = '|Administrators|Operators|NSS|';
  
function OnConfMessage(iCID, iUIN, iUID, iMsgType: integer; sConfName, sMsg: string): boolean;
var
  sRoleName: string;
  bFlag: boolean;
begin
  bFlag := true;
    if pos('|' + sConfName + '|', RESTRICTED_CONFS) <> 0 then begin
      sRoleName := mGetUserRoleName(iUIN);
        if pos('|' + sRoleName + '|', ALLOWED_ROLES) = 0 then begin
          bFlag := false;
          
            if NOTIFY_FLAG then 
              mSendCustomMsgToClientConsoleByCID(iCID, 
                                                 'Sorry, but you can not send messages to the conference #' + sConfName,
                                                 'Status', true, true, 4);
        end;  
    end;
    
  result := bFlag;  
end;

begin

end.


Ещё посмотреть

mGetUserRoleName

mSendCustomMsgToClientConsoleByCID

Pos