Plugin SDK, eigene Profilangaben ändern?

Plugins für QIP 2012 können hier vorgestellt und besprochen werden.
Antworten
Benutzeravatar
gordon--
Beiträge: 4
Registriert: Mi, 24. Feb 2010, 07:10
Wohnort: Hude / Oldenburg
Kontaktdaten:

Plugin SDK, eigene Profilangaben ändern?

Beitrag von gordon-- » So, 8. Apr 2012, 18:08

Leider ist das SDK-Wiki von QIP nur auf russisch und sich alles aus dem SDK Beispiel zu suchen ist nicht gerade übersichtlich. Daher frage ich mal hier nach in der hoffnung das sich hier auch der ein oder andere damit befasst.

Und zwar möchte ich probieren die eigenen Profilangaben (ICQ) zu ändern. In dem SDK habe ich die Messages PM_PLUGIN_DETAILS_GET bzw. PM_PLUGIN_SET_DETAILS. Allerdings bin ich mir selber noch gar nicht sicher ob man damit sein eigenes Profil modifizieren kann oder nur die zwischengespeicherten Profile seiner Kontakte. Allerdings ist es mir nichtmal gelungen die Daten eines Kontaktes bzw. mir selbst auszulesen obwohl ich mich möglichst nah an das SDK gehalten habe. Evtl. gibts aber auch Probleme mit dem DllHandle welches man übergeben muss, dort habe ich etwas geschummelt. Siehe Code:

Code: Alles auswählen

procedure TQipPlugin.DoTheMagic;
var
  PlugMsg1:TPluginMessage;
  AccountName:WideString;
  hIcq:Cardinal;
  Details:pContactDetails;
begin
  AccountName := '43....98';

  hIcq := GetModuleHandle('inficq.dll');

  PlugMsg1.Msg       := PM_PLUGIN_DETAILS_GET;
  PlugMsg1.DllHandle := FPluginInfo.DllHandle;
  PlugMsg1.WParam := hIcq;
  PlugMsg1.LParam := LongInt(PWideChar(AccountName));
  FPluginSvc.OnPluginMessage(PlugMsg1);

  if (Boolean(PlugMsg1.Result)) then begin
    Details := pContactDetails(PlugMsg1.NParam);
    MessageBox(0, PChar(DateToStr(Details.BirthDate)), 'geb', 0);
  end;

end;
Als AccountName habe ich zum Test einfach mal eine Statische UIN eingefügt. Das Protocol-Handle welches laut SDK scheinbar das Dll-Handle des Protkolls ist hab ich mir mittels GetModuleHandle geholt, ob das so richtig ist weiß ich natürlich auch nicht. Aber wenn man was automatisch machen will und nicht folgend auf irgendeine Nachricht vom Core, wo soll man sich das Handle sonst her holen?

Hat da jemand Lösungsvorschläge?

Antworten