Получить статус работы факса
Я пробовал код ниже для отправки факса:
uses
ComObj, ActiveX, FAXCOMEXLib_TLB;
procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
JobIDs: OleVariant;
FaxServer: IFaxServer2;
FaxDocument: IFaxDocument2;
begin
try
FaxServer := CoFaxServer.Create;
FaxServer.Connect('');
FaxDocument := CoFaxDocument.Create;
FaxDocument.Body := 'd:\Document.pdf';
FaxDocument.DocumentName := 'Document name';
FaxDocument.Recipients.Add('+1 (425) 555-4567', 'Bill');
FaxDocument.Sender.Name := 'Bob';
FaxDocument.Sender.BillingCode := '23A54';
FaxDocument.Sender.Department := 'Accts Payable';
FaxDocument.Sender.FaxNumber := '+972 (4) 555-9070';
JobIDs := FaxDocument.ConnectedSubmit(FaxServer);
for I := VarArrayLowBound(JobIDs, 1) to VarArrayHighBound(JobIDs, 1) do
ShowMessage('Job ID: ' + VarArrayGet(JobIDs, [I]));
except
on E: EOleSysError do
ShowMessage(
Format('Sending of the fax failed! %s [%d]', [E.Message, E.ErrorCode])
);
end;
end;
Я пытался получить статус работы для отправленного факса. Я пытался добавить
var
FaxJobStatus: IFaxJobStatus;
.....
FaxJobStatus := CoFaxJobStatus.Create;
скомпилировал исходный код и не обнаружил ошибки, но после выполнения кода происходит сбой в FaxJobStatus:= CoFaxJobStatus.Create, говорящий "класс не зарегистрирован".
1 ответ
Из документации IFaxJobStatus:
Вы не создаете объект FaxJobStatus. Он получается как часть уведомления, когда вы реализуете IFaxServerNotify::OnIncomingJobChanged или IFaxServerNotify::OnOutgoingJobChanged, которые включают параметр типа FaxJobStatus. Когда происходит событие и вызывается реализованная функция, вы получаете этот объект, содержащий динамическую информацию.
Таким образом, вы должны зарегистрироваться для IFaxServerNotify.OnIncomingJobChanged
или же IFaxServerNotify.OnOutgoingJobChanged
События. Когда событие получено, вы получаете объект FaxJobStatus и можете прочитать его Status
имущество.