Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: D. Roth. am 26.10.05 - 14:05:26

Titel: $LINKS nicht vorhanden
Beitrag von: D. Roth. am 26.10.05 - 14:05:26
Hallo zusammen , ich möchte gern per C API Links auslesen. Das funktioniert aber leider mit einigen Mails nicht.

Weil das $LINKS Feld nicht vorhanden.

Gibt es einen Lösungsweg ??
Neu Speicher hilft nicht !!
Titel: Re: $LINKS nicht vorhanden
Beitrag von: Gandhi am 27.10.05 - 14:42:32
Meiner Erfahrung nach werden nicht alle Felder so abgespeichert, wie es der Domino Client angibt (z.B. Body Felder in Mime-Mails).
Ich würde mal mittels C-Api eine Liste aller Felder erstellen und nachschauen, ob da was passendes dabei ist.
Titel: Re: $LINKS nicht vorhanden
Beitrag von: D. Roth. am 28.10.05 - 13:38:49
Ich hab das Feld gefunden(LINKEXPORT2 im Body Feld) !!

Gibt es eine Möglichkeit es auszulesen ( Hab es mit C Api nicht hinbekommen !!). Oder das Feld $Links mit einem Agent zu erstellen ?
Titel: Re: $LINKS nicht vorhanden
Beitrag von: Gandhi am 28.10.05 - 14:20:05
Da muss ich passen - aber wenn Du weisst wo es steht müsstest Du doch auch den Wert lesen können :-:
Titel: Re: $LINKS nicht vorhanden
Beitrag von: D. Roth. am 28.10.05 - 14:42:25
Mein Problem ist ich lese das RichText Field in den Arbeitspeicher,
 aber ich weis nicht was für ein CD Typ der LINKExport2 ist .

-----------Schnipp----------------------------------------------------------------------

' read all the Rich Text item info into an array...
   Redim A(0) As APIItem
   m = 0 ' counter
   tt = 0 ' total bytes
   
   NSFItemInfo hNT, item, Len(item), A(m).Item, dt, A(m).Value, A(m).Size
   While Not A(m).Size = 0
      tt = tt + A(m).Size
      m = m + 1
      Redim Preserve A(m)
      ItemInfoNext hNT, A(m - 1).Item, item, Len(item), A(m).Item, dt, A(m).Value, A(m).Size
   Wend
   m = m - 1
' copy the actual Rich Text into a memory block...
   OSMemAlloc 0, tt, hM
   pm = OSLockObject(hM)
   pp = pm
   For i = 0 To m
      aa = A(i)
      na = aa.Size - 2
      pv = OSLockObject(aa.Value.hPool) + aa.Value.Block + 2
      CopyMem pp, pv, na
      OSUnlockObject aa.Value.hPool
      pp = pp + na
   Next
' scan the Rich Text for composite data records...
   R=0
   Do
      GetCD pm, tt, toff, tlen, sig, R
      If sig = ??? Then ' ??? LINKEXPORT2

      End If
   Loop Until ((sig = 0)Or(sig=???))
-----------Schnipp----------------------------------------------------------------------

Sub GetCD(pointer As Long, length As Long, cdoffset As Long, cdlength As Long, cdsig As Integer, R As Long)
   Dim i As Integer
   Do
      Peek i, pointer + R, 2
      cdsig = i And &HFF
      cdlength = (i And &HFF00) / 256
      cdlength = cdlength And &HFF
      If ((cdlength And &HFF) = &HFF) Then
         cdlength = 0
         Peek cdlength, pointer + R + 2, 2
      Elseif cdlength = 0 Then
         Peek cdlength, pointer + R + 2, 4
      End If
      cdoffset = R
      If cdsig = 0 Then R = R + 1 Else R = R + cdlength
   Loop Until R >= length Or Not cdsig = 0
   
   If R >= length Then
      cdoffset = 0
      cdlength = 0
      cdsig = 0
      R = 0
   End If
End Sub

Titel: Re: $LINKS nicht vorhanden
Beitrag von: Gandhi am 28.10.05 - 14:46:47
Frage: Wozu dient das eigentlich?
Fraeg: Bei einigen Mails geht das, bei anderen nicht: Worin unterscheiden sich die Mails?
Frage: Warum C-Api, wenn Du das aus Script heraus machst?

Ich tippe bei Frage 2 auf Mime/Richtext als Unterscheidungskriterium.
Titel: Re: $LINKS nicht vorhanden
Beitrag von: D. Roth. am 28.10.05 - 15:03:24
zu Frage 1 : Ich bekomm eine Email mit dem DocLink den ich mit einem Agent auslese
zu Frage 2 : Sie unterscheiden sich darin das einige Email mit einem Agent erstellt werden und andere nicht ( Diese funzen nicht)
zu Frage 3: Ich will mit LS und der C Api den Inhalt auslesen. ( Gibt es eine bessere Lösung ??)
Titel: Re: $LINKS nicht vorhanden
Beitrag von: Gandhi am 28.10.05 - 15:06:12
Prüf bitte mal den Type des Items (item.type). Würde mich interessieren, ob das vielleicht Mime Mails sind - dann kommst Du mit NotesMIMEEntity auch ganz ohne C-Api ans Ziel.
Titel: Re: $LINKS nicht vorhanden
Beitrag von: D. Roth. am 01.11.05 - 11:30:37
Hi es sind leider keine MIME Mails !!
Titel: Re: $LINKS nicht vorhanden
Beitrag von: D. Roth. am 04.11.05 - 08:06:40
Kann mir jemand bei der C Api weiterhelfen ??