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.