Announcement

Collapse
No announcement yet.

ICQAPI

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • ICQAPI

    Hi leudz,
    ich habe mir die icqapi downgeloadet ( www.icq.com/api ) und möchte jetzt eine DLL ansteuern.
    so sieht die function in der ICQAPI aus
    BOOL WINAPI ICQAPICall_SetLicenseKey(char *pszName, char *pszPassword, char *pszLicense);
    ich habe sie so in delphi übersetzt
    function ICQAPICall_SetLicenseKey(pszName, pszPassword, pszLicense : PChar): Bool; StdCall; external 'ICQMAPI.dll';

    und so habe ich die func gestartet:
    ICQAPICall_SetLicenseKey('iseekyou', 'password', 'FFFFFFFFFFFFFFFF')

    das dumme ist nur, das ich immer als rückgabewert FALSE bekomme, die ICQAPI sagt:"Every call returns a boolean value, TRUE means success, while FALSE mean failure"
    Kann mir jemand helfen??
    pleeez
    mfg Binford

  • #2
    Deine Umsetzung der Funktion und ihr Aufruf ist voellig korrekt. Es muss also an den Strings liegen, die du uebergibst. Bist du sicher das die Texte in den Strings zum erfolg fuehren muessen

    Comment


    • #3
      Also ich habe mich mehrmals registriert für die ICQAPI, unter verschiedenen namen, als registrationcode bekommt man immer 'FFFFFFFFFFFFFFFF', das Password muss mindestens 8 zeichen lang sein.
      Also mich würde echt interessieren wie man das zum laufen bekommt!
      trotzdem danke für dein Kommentar

      Comment


      • #4
        Hier .......<br>
        <br>
        var DLL : THandle;<br>
        i,ApiVer,ICQUSERID : Integer;<br>
        type<br>
        TSetLicenseKey = function (pszName,pszPassword,pszLicense:Pchar):bool;stdcal l;<br>
        TSetOwnerState = function (iState:Integer):bool;stdcall;<br>
        TSendMessage = function (iUIN:Integer;pszMessage:PChar):bool;stdcall;<br>
        TGetFullUserData = function (pUser:Pointer;iVersion:Integer):bool;stdcall;<br>
        TGetVersion = function (var iVersion:Integer):bool;stdcall;<br>
        TBSICQAPI_user = record<br>
        m_iUIN : Integer;<br>
        m_hFloatWindow: HWND;<br>
        m_iIP : Integer;<br>
        m_szNickname: array[1..20] of Char;<br>
        m_szFirstName: array[1..20] of Char;<br>
        m_szLastName: array[1..20] of Char;<br>
        m_szEmail: array[1..100] of Char;<br>
        m_szCity: array[1..100] of Char;<br>
        m_szState: array[1..100] of Char;<br>
        m_iCountry: Integer;<br>
        m_szCountryName: array[1..100] of Char;<br>
        m_szHomePage: array[1..100] of Char;<br>
        m_iAge: Integer;<br>
        m_szPhone: array[1..20] of Char;<br>
        m_bGender: byte;<br>
        m_iHomeZip: Integer;<br>
        m_iStateFlags: Integer;<br>
        end;<br>
        <br>
        procedure TForm1.FormCreate(Sender: TObject);<br>
        var SetLicenseKey : TSetLicenseKey;<br>
        GetVersion : TGetVersion;<br>
        T,T3 : TFarProc;<br>
        iVersion : Integer;<br>
        begin<br>
        ApiVer:=0;<br>
        ICQUSERID:=0;<br>
        i:=0;<br>
        DLL:=LoadLibrary('icqmapi.dll');<br>
        T:=getProcAddress(DLL,'ICQAPICall_SetLicenseKey'); <br>
        if T <> nil then begin<br>
        @SetLicenseKey := T;<br>
        SetLicenseKey('Privat','12345678','876C62E167C8E67 3');<br>
        end else LStatus.Caption:='Fehler';<br>
        T3:=getProcAddress(DLL,'ICQAPICall_GetVersion');<b r>
        if T3 <> nil then begin<br>
        @GetVersion := T3;<br>
        iVersion:=0;<br>
        GetVersion(iVersion);<br>
        label15.Caption:=IntToStr(iVersion);<br>
        ApiVer:=iVersion;<br>
        end else LStatus.Caption:='Fehler';<br>
        if apiver = 0 then begin LStatus.Caption:='ICQ is DOWN!!!'; <br>exit; end;<br>
        end;<br>

        M.f.G Hendrik Leesc

        Comment

        Working...
        X