Article # 592, added by Geoworks, historical record
| first |
previous |
index |
next |
last |
Broken C-stub: SpoolGetPaperSizeOrder
C Routine: SpoolGetPaperSizeOrder Date Fixed: 7/18/97 The c-stub for SpoolGetPaperSizeOrder is broken because it does not take the proper parameters. It needs to have a fourth parameter, namely the PageType. Use this fixed function prototype and c-stub in your application if you want to get the paper size order from the spool library. /* * Put this function prototype in your .goc file so it will know * about the new C-stub routine. */ extern void _pascal SpoolGetPaperSizeOrderFixed(byte *orderBuf, byte *userDefBuf, PaperSizeOrderInfo *numBuf, PageType pageType); ; ------------------------- spool.asm ------------------------------- ; include necessary header files include stdapp.def include spool.def ; make this C-stub available for external use global SPOOLGETPAPERSIZEORDERFIXED:far ; start our code resource CommonCode segment resource ; define this internal structure for our stub PaperSizeOrderInfo struct PSOI_numOrdered word PSOI_numUnused word PaperSizeOrderInfo ends ; turn on the pascal parameter-passing convention SetGeosConvention ; start our C-stub SPOOLGETPAPERSIZEORDERFIXED proc far orderBuf:fptr.byte, userDefBuf:fptr.byte, numBuf:fptr.PaperSizeOrderInfo, pageType:PageType ; above params must be word-sized ; ; These are the registers this stub will use, save them. ; uses ds, es, di, si .enter ; directive to save registers les di, ss:[orderBuf] ; load first param lds si, ss:[userDefBuf] ; load second param push bp ; save bp here, not in uses mov bp, ss:[pageType] ; load third param call SpoolGetPaperSizeOrder ; call asm routine ; ; Restore bp here because accessing the local variables ; requires bp. ; pop bp les di, ss:[numBuf] ; make pointer to buffer ; ; Set the number of page size orders retrieved ; and those left unused. ; mov es:[di].PSOI_numOrdered, cx mov es:[di].PSOI_numUnused, dx .leave ; this restores registers ret SPOOLGETPAPERSIZEORDERFIXED endp ; return to C parameter-passing convention SetDefaultConvention ; end code resource CommonCode ends