;[%0.1n h] ;[%d min] ;[%s - History++] ;[''(Unknown Contact)''' { TRANSLATE-IGNORE } )\r\n else\r\n begin\r\n ci.cbSize := SizeOf(ci);\r\n ci.hContact := hContact;\r\n ci.szProto := PAnsiChar(Proto);\r\n ci.dwFlag := CNF_DISPLAY + CNF_UNICODE;\r\n if CallService(MS_CONTACT_GETCONTACTINFO, 0, LPARAM(@ci)) = 0 then\r\n begin\r\n RetPWideChar := ci.retval.szVal.w;\r\n UW := TranslateW('''(Unknown Contact)''' { TRANSLATE-IGNORE } );\r\n if WideCompareText(RetPWideChar, UW) = 0 then\r\n Result := AnsiToWideString(GetContactID(hContact, Proto), CP_ACP)\r\n else\r\n Result := RetPWideChar;\r\n mir_free(RetPWideChar);\r\n end\r\n else\r\n Result := String(GetContactID(hContact, Proto));\r\n if Result = '' then\r\n Result := TranslateAnsiW(Proto { TRANSLATE-IGNORE } );\r\n end;\r\n end;\r\nend;\r\n\r\nfunction GetContactID(hContact: THandle; Proto: AnsiString = ''; Contact: boolean = false): AnsiString;\r\nvar\r\n uid: PAnsiChar;\r\n dbv: TDBVARIANT;\r\n cgs: TDBCONTACTGETSETTING;\r\n tmp: String;\r\nbegin\r\n Result := '';\r\n if not((hContact = 0) and Contact) then\r\n begin\r\n if Proto = '' then\r\n Proto := GetContactProto(hContact);\r\n uid := PAnsiChar(CallProtoService(PAnsiChar(Proto), PS_GETCAPS, PFLAG_UNIQUEIDSETTING, 0));\r\n if (uint_ptr(uid) <> CALLSERVICE_NOTFOUND) and (uid <> nil) then\r\n begin\r\n cgs.szModule := PAnsiChar(Proto);\r\n cgs.szSetting := uid;\r\n cgs.pValue := @dbv;\r\n if CallService(MS_DB_CONTACT_GETSETTING, hContact, LPARAM(@cgs)) = 0 then\r\n begin\r\n case dbv._type of\r\n DBVT_BYTE:\r\n Result := AnsiString(intToStr(dbv.bVal));\r\n DBVT_WORD:\r\n Result := AnsiString(intToStr(dbv.wVal));\r\n DBVT_DWORD:\r\n Result := AnsiString(intToStr(dbv.dVal));\r\n DBVT_ASCIIZ:\r\n Result := AnsiString(dbv.szVal.a);\r\n DBVT_UTF8:\r\n begin\r\n tmp := AnsiToWideString(dbv.szVal.a, CP_UTF8);\r\n Result := WideToAnsiString(tmp, hppCodepage);\r\n end;\r\n DBVT_WCHAR:\r\n Result := WideToAnsiString(dbv.szVal.w, hppCodepage);\r\n end;\r\n // free variant\r\n DBFreeVariant(@dbv);\r\n end;\r\n end;\r\n end;\r\nend;\r\n\r\nfunction WriteContactCodePage(hContact: THandle; CodePage: Cardinal; Proto: AnsiString = '] ;[''(Unknown Contact)''' { TRANSLATE-IGNORE } )\r\n else\r\n Name := GetContactDisplayName(PDWord(PAnsiChar(EventInfo.pBlob) + BytePos + 4)^, '', true);\r\n if Boolean(EventInfo.flags and DBEF_UTF) then\r\n cp := CP_UTF8\r\n else\r\n cp := hppCodepage;\r\n Result := Format(Template, [Name, uin, AnsiToWideString(#13#10 + Body, cp)]);\r\nend;\r\n\r\nprocedure GetEventTextForICQAuthGranted(EventInfo: TDBEventInfo; var Hi: THistoryItem);\r\nbegin\r\n hi.Text := GetEventTextForICQSystem(EventInfo,\r\n TranslateW('Authorization request granted by %s (%d): %s] ;[Full History [%s] - [%s]] ;[Partial History [%s] - [%s]] ;[Please restart Miranda NG for your changes to take effect.]