想請問各位大大,我用了FaxDev.h來寫網路傳真,但是它有個CallBackfunction
在msdn裡面的message有很多可是我看不太懂它要怎麼寫,不知道各位大大可不可以幫我看看,FaxLineCallBack裡面有很多Device message,不過我看了很久看不太懂我CallFunction之後要如何去呼叫這些message //--------------------------------------------------------------------------- #include
#include
#include
#include
#include
#pragma hdrstop #include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
HANDLE FaxHandle;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender)
{ FAX_DEV_STATUS FaxStatus;
FaxStatus.SizeOfStruct = sizeof(FAX_DEV_STATUS);
FaxStatus.StatusId = 0;
FaxStatus.StringId = 0;
FaxStatus.PageCount = 0;
FaxStatus.CSI = NULL;
FaxStatus.CallerId = NULL;
FaxStatus.RoutingInfo = NULL;
FaxStatus.ErrorCode = 0; HLINEAPP LineAppHandle;
HANDLE HeapHandle;
PFAX_LINECALLBACK *LineCallbackFunction;
FaxDevInitialize(LineAppHandle,&HeapHandle,LineCallbackFunction); LPDWORD DeviceCount;
LPWSTR DeviceNamePrefix;
LPDWORD DeviceIdPrefix;
HANDLE CompletionPort;
ULONG_PTR CompletionKey;
FaxDevVirtualDeviceCreation(DeviceCount,DeviceNamePrefix,&CompletionPort,CompletionKey); FaxDate->DateTime = Now().DateTimeString();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(OpenDialog1->Execute())
{
FaxAttach->Text = OpenDialog1->FileName;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
if(OpenDialog1->Execute())
{
FaxCover->Text = OpenDialog1->FileName;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
//HANDLE FaxHandle;
BOOL ch;
ch = FaxDevEndJob(&FaxHandle);
if(ch)
Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn2Click(TObject *Sender)
{ FAX_SEND FaxSend;
FaxSend.SizeOfStruct = sizeof(FAX_SEND);
FaxSend.FileName = WideString(FaxAttach->Text);
FaxSend.CallerName = WideString("XXX");
FaxSend.CallerNumber = WideString("123456789");
FaxSend.ReceiverName = WideString(FaxName->Text);
FaxSend.ReceiverNumber = WideString(FaxNumber->Text);
//FaxSend.Reserved = 0;
FaxSend.CallHandle = NULL; HLINE LineHandle;
DWORD DeviceId;
//HANDLE FaxHandle;
HANDLE CompletionPortHandle;
ULONG_PTR CompletionKey;
BOOL ch;
ch = FaxDevStartJob(LineHandle,DeviceId,&FaxHandle,&CompletionPortHandle,CompletionKey);
if(ch)
ShowMessage("開始傳送");
else
ShowMessage("檢查你的資料是否正確"); //HANDLE FaxHandle;
FAX_SEND_CALLBACK FaxSendCallback;
FaxDevSend(&FaxHandle,&FaxSend,&FaxSendCallback); //HANDLE FaxHandle;
FaxDevEndJob(&FaxHandle);
}
//--------------------------------------------------------------------------- void __fastcall TForm1::Button3Click(TObject *Sender)
{ FAX_RECEIVE FaxReceive;
FaxReceive.SizeOfStruct=sizeof(FAX_RECEIVE) FAXDEVRECEIVE_SIZE;
FaxReceive.FileName;
FaxReceive.ReceiverName;
FaxReceive.ReceiverNumber;
FaxReceive.Reserved; HLINE LineHandle;
DWORD DeviceId;
//HANDLE FaxHandle;
HANDLE CompletionPortHandle;
ULONG_PTR CompletionKey;
FaxDevStartJob(LineHandle,DeviceId,&FaxHandle,&CompletionPortHandle,CompletionKey); //HANDLE FaxHandle;
HCALL CallHandle;
FaxDevReceive(&FaxHandle,CallHandle,&FaxReceive); //HANDLE FaxHandle;
FaxDevEndJob(&FaxHandle);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::HandleLineCallbackFunction(HANDLE FaxHandle,
DWORD hDevice,DWORD dwMessage,DWORD_PTR dwInstance,DWORD_PTR dwParam1,
DWORD_PTR dwParam2,DWORD_PTR dwParam3)
{
FaxDevStartJob(&Handle);
}