Thema: Delphi WAB Dateieninhalt lesen

Einzelnen Beitrag anzeigen

NickelM

Registriert seit: 22. Jul 2007
Ort: Carlsberg
445 Beiträge
 
Delphi 2009 Professional
 
#2

Re: WAB Dateieninhalt lesen

  Alt 4. Jul 2009, 20:48
So nach einer langen Suche hab ich es gefunden...
Ich schreib es mal als Antwort hier rein...Den Code hatte ich aus dem C++ Code einer Seite zu Pascal übersetzt..weis aber die Seite net mehr...


Delphi-Quellcode:
var AdressBook : IAddrBook;
    WABObject : IWABObject;
    lpcbEntryID : ULONG;
    lpEntryID : PENTRYID;
    ulFlags,ulObjType : ULONG;
    lpIUnknown : IInterface;
    lpABContainer : IABContainer;
    lpMAPItbl : IMAPITABLE;
    ulRows : ULONG;
    lpRowSet : PSRowSet;
    x1,y1 : ULONG;
    lpRow : PSRow;
    lPropVal : SPropValue;
begin
If WABOpen(AdressBook,WABObject,nil,0) = S_OK then
begin
      If AdressBook.GetPAB(lpcbEntryID, lpEntryID) = S_OK then
    begin
      ulFlags := MAPI_BEST_ACCESS;
      ulObjType := 0;
      If AdressBook.OpenEntry(lpcbEntryID,lpEntryID,nil,ulFlags,ulObjType,lpIUnknown) = S_OK then
      begin

        ulFlags := 0;
        if ulObjType = MAPI_ABCONT then
        begin
          lpABContainer := IABContainer(lpIUnknown);
          lpABContainer.GetContentsTable(ulFlags, lpMAPItbl);
             If lpMAPItbl.GetRowCount(0, ulRows)=S_OK then
             begin
          lpMAPItbl.QueryRows(ulRows,0,lpRowSet);
          for x1 := 0 to lpRowSet.cRows-1 do
          begin

          lpRow := @lpRowSet.aRow[x1];
          for y1 := 0 to lpRow.cValues do
          begin

          lPropVal := lpRow.lpProps[y1];
          case lPropVal.ulPropTag of

          PR_DISPLAY_NAME_A:
          begin
          lPropVal.Value.lpszA //Das ist die Eigenschaft als AnsiString (kann auch an eine Stringvariable übergeben werden)
          end;

          PR_EMAIL_ADDRESS_A :
          begin
          lPropVal.Value.lpszA //Das ist die Eigenschaft als AnsiString (kann auch an eine Stringvariable übergeben werden)
          end;

          end;

          end;
          end;

        end;
        end;
      end;
    end;
  end;
end;
Die Datei dafür gibt es hier
Nickel
"Lebe und denke nicht an morgen"
Zitat aus dem gleichnamigen Bollywoodfilm.
  Mit Zitat antworten Zitat