?
Solved

FaxSendDocument API from Delphi

Posted on 2004-03-25
4
Medium Priority
?
1,135 Views
Last Modified: 2013-11-13
Is there a way to call the FaxSendDocument and FaxStartFaxServer APIs from Delphi 6?

Thanks in advance!

A1t
0
Comment
Question by:A1ternity
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
4 Comments
 
LVL 19

Accepted Solution

by:
Melih SARICA earned 1500 total points
ID: 10685194
Hi..

first there is no Ip Called FaxStartFaxServer .

here is the convertion on the API fuctions of 3 basic Functions ( connecting ..Sending , and closing) ( at the end of the emssage)

But Also microsoft Advice us to use Faxserver Com Objects..

Faxserver has 3 sub Objects
                 FaxJobs, FaxPorts and FaxDoc objects.

How to  Send a Document with this objects
************* Fax sending with Com Objects *****************
Procedure ConnectAndSendFaxDocument
  var
        mFaxServer      : variant;
        mFaxDocument    : variant;
  begin
        mfaxserver :=CreateOleObject('FaxServer.FaxServer');
        mfaxServer.Connect('MyFaxserver');  // if this parameter is null then connect to localhost
        mFaxDocument:=mFaxServer.CreateDocument('Filename');
        mfaxDocument.FaxNumber:='5555555';
        mFaxDocument.Filename:='Filename';
        mfaxDocument.Send;
        mFaxServer.Disconnect;
        mFaxServer:=nil;
        mFaxDocument:=nil;
  end;


here is the link of microsoft help about Faxserver Com Object
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fax/faxlegacyvb_9tb3.asp


************** Unit Winfax *****************
unit winfax;
//  Object      : Winfax.dll WinAPI Functions
//  Author      : Non Zero ( Melih SARICA)
//  Date        : 26/04/2004
//  Status      : Not Fully Convereted

interface
uses windows;

 Type
   HCall                = Cardinal;
  _FAX_JOB_PARAM = record
        SizeOfStruct            : dword;        //structure size, in bytes
        RecipientNumber         : Pchar;        //pointer to recipient's fax number
        RecipientName           : Pchar;        //pointer to recipient's name
        Tsid                    : Pchar;        //pointer to transmitting station identifier
        SenderName              : Pchar;        //pointer to sender's name
        SenderCompany           : Pchar;        //pointer to sender's company
        SenderDept              : Pchar;        //pointer to sender's department
        BillingCode             : PChar;        //pointer to billing code
        ScheduleAction          : Dword;        //job scheduling action code
        ScheduleTime            : SYSTEMTIME;   //time to send fax
        DeliveryReportType      : dword;        //e-mail delivery report type
        DeliveryReportAddress   : Pchar;        //pointer to e-mail address
        DocumentName            : Pchar;        //pointer to document name to display
        CallHandle              : Hcall;        //reserved
        Reserved                : array [0..2] of byte;   //must be zero
  end;
  FAX_JOB_PARAM  = _FAX_JOB_PARAM;
  PFAX_JOB_PARAM = ^_FAX_JOB_PARAM;


 function FaxConnectFaxServer(
  MachineName   : Pchar;  // fax server name    ' null if localcomputer
  FaxHandle     : PHandle         // handle to the fax server
        ):longbool;safecall; external 'winfax.dll' name 'FaxConnectFaxServerA';

 function FaxClose(
  FaxHandle     :  THandle // fax handle to close
        ):longbool;safecall; external 'winfax.dll';

  function  FaxSendDocument(
  FaxHandle     : THandle;          // handle to the fax server
  FileName      : Pchar;            // file with data to transmit
  JobParams     : PFAX_JOB_PARAM;   // pointer to job information structure
  FAX_COVERPAGE_INFO : pointer ;    // Normally it must be a structure but i dont use it .. so it ll be nil in my codes
  FaxJobId      : PDWORD            // fax job identifier
        ):longbool;safecall; external 'winfax.dll';

implementation

end.
0
 

Author Comment

by:A1ternity
ID: 10687254
Actually I found out that the jedi project has translated winfax.h to delphi. So using this API is now pretty easy.
Still, here are your points!
0
 
LVL 19

Expert Comment

by:Melih SARICA
ID: 10687667
Where are they ? where are they? :p

thnx
0
 

Author Comment

by:A1ternity
ID: 10687679
lol there you go :)

Thanks again!
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Since upgrading to Office 2013 or higher installing the Smart Indenter addin will fail. This article will explain how to install it so it will work regardless of the Office version installed.
Whether you’re a college noob or a soon-to-be pro, these tips are sure to help you in your journey to becoming a programming ninja and stand out from the crowd.
Six Sigma Control Plans
Introduction to Processes

752 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question