Article # 700, added by Geoworks, historical record
| first |
previous |
index |
next |
last |
Pressing "send" in launched fax editor fails assertion.
Q. I'm writing an application that starts up the fax editor and then allows the user to send a FAX from there. However, when I press the "send" button, the system crashes and I see this in Swat: Death due to ASSERTION_FAILED addIt+48: MOV AX, 12 (000ch) Execution died in patient mailbox: addIt+48: MOV AX, 12 (000ch) *** No explanation available *** Interrupt 3: Breakpoint trap Stopped in FatalError, GEOS system source file not available. The backtrace of that thread looks like this: * 1: near FatalError(), bootBoot.asm:878 2: far AppFatalError(), bootBoot.asm:878 3: far MediaEnsureTransportInfo(), mediaTransport.asm:583 5: far MSCGenInteractionInitiate(), uiSendControl.asm:4176 7: cspr *MySendControl{MailboxSendControlClass}26631(0000h 0004h 3b00h) (@1, ^^l6700h:0020h) 10: far VSCGenInteractionInitiate(), uiViewerSend.asm:902 12: call *MySendControl{MySendCtrlClass}26631(0000h 0004h 3b00h) (@2, ^^l6700h:0020h) 16: far OLPopupActivate(), cwinPopup.asm:1875 18: call *MySendControl{MySendCtrlClass}19461(0000h 0004h 3b00h) (@3, ^^l6700h:0020h) What could be going wrong? A. In the MediaEnsureTransportInfo routine, it's checking that the transport/option/medium tuple is valid. However, the validity of that medium is not the cause of the problem. You need to attach a print control object to your fax send controller. Here's a code segment from the SDK_9000\FaxSend1 sample app: @object ComplexMonikerClass FaxSendSendControl = { ComplexMoniker = FaxSendMailboxSendControlClass; CMI_topText = CMT_SEND; GCI_output = process; GII_visibility = GIV_POPUP; MSCI_defBodyType = MOT_SELECTION; HINT_SEEK_REPLY_BAR; HINT_SEEK_SLOT = 0; ATTR_GEN_INIT_FILE_CATEGORY = "fax"; ATTR_MAILBOX_SEND_CONTROL_SEND_SELECTION; ATTR_MAILBOX_SEND_CONTROL_SINGLE_TRANSPORT = { { GMID_CELL_MODEM, MANUFACTURER_ID_GEOWORKS }, { GMTID_FAX_SEND, MANUFACTURER_ID_GEOWORKS }, 0 }; ATTR_MAILBOX_SEND_CONTROL_TRANSPORT_HINT_OPTR = { { GMTID_FAX_SEND, MANUFACTURER_ID_GEOWORKS }, 0, @FaxSendPrintControl }; } @object PrintControlClass FaxSendPrintControl = { GI_states = @default & ~GS_ENABLED; PCI_output = process; PCI_docNameOutput = process; } Without the print control, the FAX send controller will crash.