Einzelnen Beitrag anzeigen

DelphiPeter

Registriert seit: 21. Dez 2007
Ort: Iserlohn
198 Beiträge
 
Delphi 2010 Professional
 
#1

Tobit DvISE Programmierung

  Alt 6. Apr 2008, 20:02
Hallo Leute

Ich habe ein großes Problem. Kennt sich jemand mit Tobit DvISE API Programmierung aus? Ich komme zwar gut zurecht, aber ich habe Probleme mit dem FaxItem Objekt.

Und zwar muss ich die Absender Fax Nummer auslesen. Über Visual C# geht das so oFaxItem.Field("SRFrom").Value. In der Dokkumentation der API wird der Zugriff auf Fields zu beschrieben.

Zitat:
get_Fields

Returns the Items Field Collection
In addition, the item allows access to seperate fields as properties of the object itself. A field can be addressed via their ID in the fields collection.

List of defined field IDs: Field ID's

Midl:
IDispatch* Fields();




Syntax:
HRESULT Fields([out, retval] IDispatch** lppFields);
[out]lppFields: contains the Fields object



Example:
VARIANT vIndex;
Archive* pArchive = NULL;
MessageItems* pMessageItems = NULL;
MessageItem* pMessageItem = NULL;
FaxItem* pFaxItem = NULL;
Fields* pFields = NULL;
Field* pField = NULL;

vIndex.vt = VT_I4;
if (SUCCEEDED (pAcc->GetSpecialArchive(DvArchivePersonalIn,&pArchive)) )
{
if (SUCCEEDED(pArchive->get_AllItems(&pMessageItems)))
{
vIndex.lVal = 1;
if (SUCCEEDED(pMessageItems->Item(vIndex, &pMessageItem)))
{
if (SUCCEEDED(pMessageItem->QueryInterface(IID_FaxItem,(void**)&pFaxItem)))
{
if (SUCCEEDED (pFaxItem->get_Fields((LPDISPATCH)&pFields)))
{
VARIANT vt;
vt.vt = VT_I4;
vt.lVal = Field_FullnameFrom;
if (SUCCEEDED (pFields->Item(vt, &pField)))
{
VariantInit(&vt);
pField->get_Value(&vt);
...
pField->Release ();
}
pFields->Release ();
}
}
pMessageItem->Release();
}
pMessageItems->Release();
}
pArchive->Release();
}
Mein Ansatz sieht so aus:

Delphi-Quellcode:
...
oApp := CreateOLEObject('DVOBJAPILIB.DvISEAPI') as IApplication;
oAccount := oApp.Logon(Unassigned, Unassigned, Unassigned, Unassigned, Unassigned, 'AUTH');
oArchive := OAccount.GetArchive(archiv);
oMessageItems := oArchive.FaxItems;

...

for m := 0 to oMessageItems.Count-1 do begin
   oFaxItem := oMessageItems.Item(m) as FaxItem;

   AbsenderFax := oFaxItem.Fields('SRFROM');
end;
...
Dann bekomme ich den Fehler nach Fields "Operator oder Semikolon fehlt."


Also wenn jemand Ahnung hat, oder mir sonst irgendwie helfen kann, wäre ich wirklich sehr sehr dankbar!

Danke

Peter

[edit=SirThornberry]Titel geändert - Das du Hilfe benötigst sagt bereits das gewählte Forum aus und ob du die Hilfe dringend brauchst oder nicht beschreibt das Problem ja nicht wozu aber der Titel da ist - Mfg, SirThornberry[/edit]
Peter Majewski
  Mit Zitat antworten Zitat