land.h

Go to the documentation of this file.
00001 
00002 /*  $Id: land.h 453 2005-09-11 02:39:18Z icreedon $    */
00003 
00004 /******************************************************************************
00005 
00006     UserLand Frontier(tm) -- High performance Web content management,
00007     object database, system-level and Internet scripting environment,
00008     including source code editing and debugging.
00009 
00010     Copyright (C) 1992-2004 UserLand Software, Inc.
00011 
00012     This program is free software; you can redistribute it and/or modify
00013     it under the terms of the GNU General Public License as published by
00014     the Free Software Foundation; either version 2 of the License, or
00015     (at your option) any later version.
00016 
00017     This program is distributed in the hope that it will be useful,
00018     but WITHOUT ANY WARRANTY; without even the implied warranty of
00019     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00020     GNU General Public License for more details.
00021 
00022     You should have received a copy of the GNU General Public License
00023     along with this program; if not, write to the Free Software
00024     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00025 
00026 ******************************************************************************/
00027 
00028 #define landinclude /*so other modules can tell if we've been loaded*/
00029 
00030 
00031 
00032 #ifndef THINKC
00033 
00034     #define THINKC /*possible values are MPWC or THINKC*/
00035 
00036 #endif
00037 
00038 
00039 #ifdef MPWC
00040 
00041     #undef THINKC /*turning on MPWC from command line overrides default*/
00042     
00043     #include <types.h>
00044     #include <resources.h>
00045     #include <dialogs.h>
00046     #include <menus.h>
00047     #include <fonts.h>
00048     #include <events.h>
00049     #include <controls.h>
00050     #include <segload.h>
00051     #include <memory.h>
00052     #include <toolutils.h>
00053     #include <packages.h>
00054     #include <sound.h>
00055     #include <files.h>
00056     #include <EPPC.h>
00057     
00058 #endif
00059 
00060 
00061 #ifndef __ALIASES__
00062 
00063     #include <Aliases.h>
00064 
00065 #endif
00066 
00067 #ifndef __AEREGISTRY__
00068 
00069     #include <AERegistry.h>
00070 
00071 #endif
00072 
00073 #ifndef standardinclude
00074 
00075     #include <standard.h>
00076 
00077 #endif
00078 
00079 
00080 typedef unsigned char **hdlbigstring;
00081 
00082 typedef pascal boolean (*landeventrecordcallback) (EventRecord *);
00083 
00084 typedef pascal OSErr (*landnoparamcallback) (void);
00085 
00086 typedef pascal OSErr (*landfilespeccallback) (FSSpec *);
00087 
00088 typedef pascal boolean (*landqueuepopcallback) (Handle, long);  /* 2004-10-24 aradke: param list was ... */
00089 
00090 typedef pascal OSErr (*tyeventcreatecallback)(AEEventClass theAEEventClass, AEEventID theAEEventID, const AEAddressDesc *target, short returnID, long transactionID, AppleEvent *result);
00091 
00092 typedef pascal OSErr (*tyeventsendcallback)(const AppleEvent *theAppleEvent, AppleEvent *reply, AESendMode sendMode, AESendPriority sendPriority, long timeOutInTicks, AEIdleUPP idleProc, AEFilterUPP filterProc);
00093 
00094 typedef pascal OSErr (*tyeventhandler) (AppleEvent *, AppleEvent *, long);
00095 
00096 typedef unsigned long tydate;
00097 
00098 typedef unsigned long tyenumerator;
00099 
00100 typedef AEKeyword typaramkeyword;
00101 
00102 typedef unsigned long tyapplicationid;
00103 
00104 typedef unsigned long tyverbclass;
00105 
00106 typedef unsigned long tyverbtoken;
00107 
00108 typedef short tysystem6processid;
00109     
00110 typedef struct tyverbarrayelement {
00111     
00112     tyverbtoken token;
00113     
00114     tyverbclass class;
00115     
00116     boolean flfasthandler;
00117     } tyverbarrayelement;
00118 
00119 typedef tyverbarrayelement tyverbarray [1];
00120 
00121 typedef tyverbarray **hdlverbarray;
00122 
00123 
00124 typedef enum typaramtype {
00125     
00126     notype = typeWildCard, /*allows you to ask for a param w/o specifying its type*/
00127     
00128     booleantype = typeBoolean, /*1 == true, 0 == false*/
00129     
00130     charactertype = 'char', /*a 1-byte unsigned character*/
00131     
00132     inttype = typeShortInteger, /*a 2-byte signed number*/
00133     
00134     longtype = typeLongInteger, /*a 4-byte signed number*/
00135     
00136     datetype = 'date', /*4-bytes worth of time/date info, same format as Mac GetDateTime call*/
00137     
00138     floattype = 'flot', /*a SANE single-precision floating point number, same as singletype*/
00139     
00140     directiontype = 'dir ', /*up, down, left, right, etc*/
00141     
00142     pointtype = typeQDPoint, /*a QuickDraw Point*/
00143     
00144     recttype = typeQDRectangle, /*a QuickDraw rectangle*/
00145 
00146     enumtype = typeEnumerated, /*4-character id, a Macintosh OSType*/
00147 
00148     stringtype = 's255', /*Pascal-format string, 1-byte length indicator at head*/
00149     
00150     texttype = typeChar, /*a handle that holds a stream of ASCII characters*/
00151     
00152     binarytype = 'BINA',  /*untyped binary chunk of data*/
00153     
00154     pathtype = 'path', /*file path, separate so cross-platform coercion is possible*/
00155     
00156     aliastype = typeAlias, /*a file alias, as defined by the Macintosh Alias Manager*/
00157     
00158     ostype = typeType,  /*4-character id, a Macintosh OSType*/
00159     
00160     singletype = typeShortFloat, /*a SANE single-precision floating point number*/
00161     
00162     doubletype = typeExtended, /*a SANE extended-precision floating point number*/
00163     
00164     rgbtype = typeRGBColor, /*a Mac color, three components, red, green and blue values*/
00165     
00166     patterntype = 'tptn', /*a Mac pattern, as defined by QuickDraw*/
00167     
00168     fixedtype = typeFixed, /*a fixed point number, dmb: how many places to left and right of decimal?*/
00169     
00170     fsspectype = typeFSS, /*a Macintosh filespec*/
00171     
00172     objectspectype = cObjectSpecifier /*a Mac object specifier, for Frontier, not fully supported in Toolkit*/
00173     } typaramtype;
00174 
00175 
00176 typedef struct typaramrecord {
00177     
00178     typaramkeyword key; /*parameter id, allows optional params; order not important*/
00179     
00180     AEDesc desc; /*a type and handle*/
00181     } typaramrecord, *ptrparamrecord;
00182 
00183 #if 0
00184 
00185 typedef enum typaramtype {
00186     
00187     booleantype = 1, /*1 == true, 0 == false*/
00188     
00189     charactertype = 2, /*a 1-byte unsigned character*/
00190     
00191     inttype = 3, /*a 2-byte signed number*/
00192     
00193     longtype = 4, /*a 4-byte signed number*/
00194     
00195     datetype = 5, /*4-bytes worth of time/date info, same format as Mac GetDateTime call*/
00196     
00197     floattype = 6, /*a SANE single-precision floating point number, same as singletype*/
00198     
00199     directiontype = 7, /*up, down, left, right, etc*/
00200     
00201     pointtype = 8, /*a QuickDraw Point*/
00202     
00203     recttype = 9, /*a QuickDraw rectangle*/
00204 
00205     enumtype = 10, /*4-character id, a Macintosh OSType*/
00206 
00207     stringtype = 11, /*Pascal-format string, 1-byte length indicator at head*/
00208     
00209     texttype = 12, /*a handle that holds a stream of ASCII characters*/
00210     
00211     binarytype = 13,  /*untyped binary chunk of data*/
00212     
00213     pathtype = 14, /*file path, separate so cross-platform coercion is possible*/
00214     
00215     aliastype = 15, /*a file alias, as defined by the Macintosh Alias Manager*/
00216     
00217     ostype = 16,  /*4-character id, a Macintosh OSType*/
00218     
00219     singletype = 17, /*a SANE single-precision floating point number*/
00220     
00221     doubletype = 18, /*a SANE double-precision floating point number*/
00222     
00223     rgbtype = 19, /*a Mac color, three components, red, green and blue values*/
00224     
00225     patterntype = 20, /*a Mac pattern, as defined by QuickDraw*/
00226     
00227     fixedtype = 21, /*a fixed point number, dmb: how many places to left and right of decimal?*/
00228     
00229     fsspectype = 22, /*a Macintosh filespec*/
00230     
00231     objectspectype = 23, /*a Mac object specifier, for Frontier, not fully supported in Toolkit*/
00232     
00233     objectdesctype = 24, /*a Mac object descriptor, for Frontier, not fully supported in Toolkit*/
00234     
00235     notype = 0 /*allows you to ask for a param w/o specifying its type*/
00236     } typaramtype;
00237 
00238 
00239 typedef union typaramvalue {
00240     
00241     unsigned char booleanvalue;
00242     
00243     char charvalue;
00244     
00245     short intvalue;
00246     
00247     long longvalue;
00248     
00249     tydate datevalue;
00250     
00251     float floatvalue;
00252     
00253     tydirection directionvalue;
00254     
00255     Point pointvalue;
00256     
00257     Rect rectvalue;
00258     
00259     tyenumerator enumvalue;
00260     
00261     hdlbigstring stringvalue;
00262     
00263     Handle textvalue;
00264     
00265     Handle binaryvalue;
00266     
00267     hdlbigstring pathvalue;
00268     
00269     AliasHandle aliasvalue;
00270 
00271     OSType osvalue;
00272     
00273     float singlevalue;
00274     
00275     double **doublevalue;
00276     
00277     RGBColor rgbvalue;
00278     
00279     Pattern patternvalue;
00280     
00281     Fixed fixedvalue;
00282     
00283     FSSpecHandle fsspecvalue;
00284     
00285     AEDesc objectspecvalue;
00286     
00287     AEDesc objectdescvalue;
00288     } typaramvalue;
00289     
00290     
00291 typedef struct typaramrecord {
00292     
00293     typaramtype type; /*boolean, short, long, etc.*/
00294     
00295     typaramkeyword key; /*parameter id, allows optional params; order not important*/
00296     
00297     typaramvalue val; /*a char, long, or a handle to a more complex type*/
00298     } typaramrecord, *ptrparamrecord;
00299 
00300 #endif
00301 
00302 
00303 typedef struct tyverbrecord {
00304     
00305     tyverbclass verbclass; /*4-byte class, often same as receiver id*/
00306     
00307     tyverbtoken verbtoken; /*4-byte token, e.g. 'save', 'go  '*/
00308     
00309     tyapplicationid idreceiver; /*signature of the receiver, for outgoing verbs*/
00310     
00311     tyapplicationid idsender; /*signature of the caller, for incoming verbs*/
00312     
00313     long idtransaction; /*for use by caller*/
00314     
00315     Handle transportinfo; /*info the transport layer needs*/
00316     
00317     boolean flverbgetsnoreply : 1; /*set true before landsendverb call*/
00318     
00319     boolean flnextparamisoptional : 1; /*set true before landgetxxxparam call*/
00320     
00321     boolean flverbisdirect: 1; /*set true if verb is to be dispatched directly to code extension*/
00322     
00323     boolean flsystemverb: 1; /*verb was received by a system event handler*/
00324     
00325     Handle hdirectcode; /*for code extension*/
00326     
00327     short ctparams; /*number of items in the params array*/
00328     
00329     #if 0 /*sys6*/
00330     
00331     short nextparam; /*next open slot in the params array*/
00332     
00333     typaramrecord params []; /*variable-length array of parameters*/
00334     
00335     #endif
00336     
00337     long landrefcon; /*for client use*/
00338     } tyverbrecord, *ptrverbrecord, **hdlverbrecord;
00339 
00340 
00341 typedef pascal boolean (*landverbrecordcallback) (hdlverbrecord);
00342 
00343 
00344 typedef enum tytransport { /*indicates which transport layer is active*/
00345     
00346     macsystem7, /*using AppleEvents transport on System 7*/
00347     
00348     macsystem6 /*using System 6 INIT as transport mechanism*/
00349     
00350     /*room for support of other IAC protocols in our super-protocol*/
00351     } tytransport;
00352 
00353 
00354 typedef struct tymacnetglobals { /*for mac system 7 networked messages*/
00355     
00356     boolean flhavebrowsed;
00357     
00358     tyapplicationid idforbrowser;
00359     } tymacnetglobals;
00360 
00361 
00362 typedef struct tynetworkaddress {
00363     
00364     TargetID target;
00365     
00366     /*
00367     boolean flself;
00368     
00369     LocationNameRec location;
00370     
00371     PortInfoRec port;
00372     */
00373     } tynetworkaddress;
00374     
00375 #ifndef __MENUSHARING__
00376 
00377 typedef struct tyruntimemenurecord { /*structures to support Frontier menu sharing*/
00378     
00379     short idmenu;
00380     
00381     short flhierarchic: 1;
00382     
00383     short flinserted: 1; 
00384     
00385     MenuHandle hmenu;
00386     } tyruntimemenurecord;
00387     
00388     
00389 typedef tyruntimemenurecord tymenuarray [1];
00390 
00391 typedef tymenuarray **hdlmenuarray;
00392 
00393 #endif
00394 
00395 typedef struct tymaceventsettings { /*for system 7, info for sending events*/
00396     
00397     long timeoutticks; /*the timeout amount*/
00398     
00399     short interactionlevel; /*the interaction level*/
00400     
00401     long transactionid; /*the transaction id*/
00402     } tymaceventsettings;
00403 
00404 
00405 typedef struct tyfastverbcontext {
00406     
00407     THz savezone;
00408     
00409     Handle savemaphandle;
00410     
00411     short saveresfile;
00412     } tyfastverbcontext;
00413 
00414     
00415 typedef struct tylandglobals {
00416     
00417     boolean flconnected; /*tells us if we can do IAC or not*/
00418     
00419     boolean flacceptanyverb; /*determines whether all verbs are accepted by landhandleverb*/    
00420     
00421     tytransport transport; /*set by landinit, indicates which transport we're using*/
00422     
00423     tyapplicationid applicationid; /*the creator id of the application we're inside of*/
00424     
00425     short iderrorlist; /*resource id of STR# list which holds error messages*/
00426     
00427     hdlverbarray verbarray; /*holds all registered verbs*/
00428     
00429     WindowPtr statswindow; /*if non-nil, the stats window is open*/
00430     
00431     tyverbclass currentclass; /*set by landaddclass*/
00432     
00433     pascal boolean (*handleverbroutine) (hdlverbrecord); /*if non-nil, gets all verbs we don't handle*/
00434     
00435     pascal boolean (*findhandlerroutine) (hdlverbrecord); /*for handling wildcard verbs*/
00436     
00437     landeventrecordcallback breakembraceroutine; /*if non-nil, break a synchronous deadly embrace*/
00438     
00439         /*landcallback menuscriptcompleteroutine; /%if non-nil, callback when script completes*/
00440     
00441     /*names that begin with "mac" are inherently NOT cross-platform*/
00442     
00443     landnoparamcallback macopenapproutine; /*system 7 open application event handler*/
00444     
00445     landfilespeccallback macopendocroutine; /*system 7 open document event handler*/
00446     
00447     landfilespeccallback macprintdocroutine; /*system 7 print document event handler*/
00448     
00449     landnoparamcallback macquitapproutine; /*system 7 quit application event handler*/
00450     
00451     tyapplicationid maceventsender; /*id of app that invoked macxxxroutine*/
00452     
00453     tyeventcreatecallback eventcreatecallback; /*for OSA support*/
00454     
00455     tyeventsendcallback eventsendcallback; /*for OSA support*/
00456     
00457     tymacnetglobals macnetglobals; /*info for system 7 network transport*/
00458     
00459     boolean fldirtyruntimemenus; /*program's runtime menus need updating*/
00460     
00461     boolean flscriptcancelled; /*indicate that menu script has been cancelled*/
00462     
00463     long idmenuscript; /*if not 0, Frontier's id for the currently running script*/
00464     
00465     hdlmenuarray hmenuarray; /*we keep a copy of the menuarray data structure*/
00466     
00467     tysystem6processid system6processid; /*the INIT's id for our mailbox*/
00468     
00469     short ipcrefnum; /*for system 6, the refnum of the UserLand INIT driver*/
00470     
00471     Handle hqueue; /*for system 6, queues message that arrive while we're waiting for a response*/
00472     
00473     short maxqueuedepth; /*for stats window -- the longest chain in the system 6 queue*/
00474     
00475     /*Handle mactypes; /%for system 7, maps our param types to Apple's*/
00476     
00477     long initialfreemem; /*for stats window -- the amount of memory free after landinit*/
00478     
00479     tymaceventsettings eventsettings;
00480     
00481     OSErr landerrorcode; /*error code that caused land call to return false*/
00482     
00483     } tylandglobals, *ptrlandglobals, **hdllandglobals;
00484 
00485 
00486 /*verbs of this class are automatically handled by UserLand Toolkits*/
00487 
00488     #define userlandclass 'land' /*automatically handled UserLand verbs*/
00489     
00490     
00491 /*tokens and keys for communicating with the application scripting system*/
00492 
00493     #define idappscriptrunner 'LAND' /*id of application scripting system*/
00494     
00495     #define runscripttoken 'dosc' /*run the script in the 'scpt' text value*/
00496     
00497     #define idscriptvalue '----' /*identifies the text value for the script*/
00498     
00499     #define schedulescripttoken 'schs' /*schedule the script*/
00500     
00501     
00502 /*tokens and keys for communicating with the runtime application scripting system*/
00503     
00504     #define getmenuarraytoken 'gmry'
00505     
00506     #define idmenuprogram 'menp' /*id of program whose menu we're getting*/
00507     
00508     #define idstartingresource 'res1'
00509     
00510     #define getmenuhandletoken 'gmhd'
00511     
00512     #define idarrayindex 'idix'
00513     
00514     #define idrunmenuitem 'runm'
00515     
00516     #define idmenuidvalue 'mid '
00517     
00518     #define idmenuitemvalue 'mitm'
00519 
00520     #define idupdatemenus 'updm'
00521     
00522     #define idscriptcompleted 'done'
00523     
00524     #define killscripttoken 'kill'
00525 
00526 
00527 /*messages that are generated and handled transparently by the API*/
00528     
00529     #define idrunning 'zzz?'
00530     
00531     #define idgetverbs 'vbs?'
00532     
00533     #define idopenstatswindow 'stat'
00534     
00535     #define idstatsopen 'sts?'
00536 
00537 
00538 /*standard  parameter keywords*/
00539     
00540     #define returnedvaluekey '----' /*normal return value*/
00541     
00542     #define directparamkey '----' /*the key for a direct parameter*/
00543     
00544     #define errornumberkey 'errn'
00545     
00546     #define errorstringkey 'errs'
00547 
00548 
00549 /*error numbers -- indexes into the STR# resource*/
00550     
00551     #define nosuchparamerror 1
00552     
00553     #define wrongtypeerror 2
00554     
00555     #define undefinedverberror 3
00556     
00557     #define nohandlererror 4 
00558     
00559     #define outofmemoryerror 5
00560     
00561     #define usercancellederror 6 
00562     
00563     #define lastinternalerror usercancellederror
00564 
00565 
00566 /*prototypes -- initializing, polling & closing, misc stuff*/
00567 
00568     pascal boolean landinit (void);
00569     
00570     pascal boolean landaddverb (tyverbtoken);
00571     
00572     pascal boolean landaddfastverb (tyverbtoken);
00573     
00574     pascal boolean landaddclass (tyverbclass);
00575     
00576     pascal boolean landdeleteverb (tyverbclass, tyverbtoken);
00577     
00578     pascal boolean landeventfilter (EventRecord *);
00579     
00580     pascal boolean landsettimeout (long);
00581     
00582     pascal boolean landsettransactionid (long);
00583     
00584     pascal boolean landsetinteractionlevel (short);
00585     
00586     pascal boolean landapprunning (tyapplicationid);
00587     
00588     pascal boolean landclose (void);
00589 
00590     pascal boolean landsetapplicationid (tyapplicationid); 
00591 
00592     pascal boolean landacceptanyverb (boolean); 
00593     
00594     pascal boolean landclaimparam (hdlverbrecord, typaramkeyword);
00595 
00596     pascal boolean landefaultbreakembrace (EventRecord *);
00597     
00598     pascal OSErr landsystem7defaultcreate (AEEventClass, AEEventID, const AEAddressDesc *, short, long, AppleEvent *);
00599     
00600     pascal OSErr landsystem7defaultsend (const AppleEvent *, AppleEvent *, AESendMode, AESendPriority, long, AEIdleUPP, AEFilterUPP);
00601     
00602     pascal void landseterror (OSErr);
00603     
00604     pascal OSErr landgeterror (void);
00605     
00606     pascal boolean landvisitsleepingthreads (landqueuepopcallback, long);
00607     
00608     #ifdef flnewfeatures
00609     
00610     pascal boolean landsystem7geteventrecords (hdlverbrecord, AppleEvent *, AppleEvent *);
00611     
00612     pascal OSErr landsystem7getsenderinfo (const AppleEvent *, ProcessSerialNumber *, FSSpec *, OSType *);
00613     
00614     pascal boolean landsystem7pushparam (AERecord *, typaramtype, Handle, void *, long, typaramkeyword);
00615 
00616     pascal boolean landsystem7getparam (const AERecord *, typaramkeyword, typaramtype, typaramrecord *);
00617 
00618     pascal boolean landsystem7getnthparam (const AERecord *, short, typaramrecord *);
00619 
00620     pascal boolean landpushfastcontext (tyfastverbcontext *);
00621     
00622     pascal void landpopfastcontext (const tyfastverbcontext *);
00623 
00624     #else
00625     
00626     pascal OSErr landsystem7callhandler (hdlverbrecord, tyeventhandler);
00627     
00628     #endif
00629     
00630     pascal OSErr landsystem7suspendevent (hdlverbrecord);
00631 
00632     pascal OSErr landsystem7resumeevent (hdlverbrecord);
00633     
00634     pascal boolean landsystem7installfasthandler (tyverbclass, tyverbtoken, tyeventhandler);
00635     
00636     pascal boolean landsystem7removefasthandler (tyverbclass, tyverbtoken);
00637 
00638     pascal boolean landsystem7unpackverb (AppleEvent *, AppleEvent *, hdlverbrecord *);
00639 
00640 
00641 
00642 /* communicating with Frontier scripting system */
00643 
00644     pascal boolean landruntext (Handle, boolean, Str255);
00645     
00646     pascal boolean landrunstring (Str255, boolean, Str255);
00647     
00648     pascal boolean landgetmenuarray (short, hdlmenuarray *);
00649     
00650     pascal boolean landinstallmenuarray (short, hdlmenuarray);
00651     
00652     pascal boolean landmenuhit (short, hdlmenuarray);
00653     
00654     pascal boolean landrunmenuitem (short, short, hdlmenuarray);
00655     
00656     pascal boolean landcancelmenuscript (void);
00657     
00658     pascal boolean landremovemenuarray (hdlmenuarray);
00659     
00660     pascal boolean landdisposemenuarray (hdlmenuarray);
00661     
00662     pascal boolean landenablemenuarray (hdlmenuarray, boolean);
00663     
00664     pascal boolean landmenuneedsupdate (void);
00665     
00666     
00667 /*opening and closing the Toolkit stats window*/
00668     
00669     pascal boolean landopenstatswindow (void);
00670 
00671     pascal boolean landclosestatswindow (void);
00672     
00673     pascal boolean landisstatswindow (WindowPtr); /*return true if it's the stats window*/
00674     
00675 
00676 /*creating, sending & disposing verbs, pushing all standard types*/
00677 
00678     pascal boolean landnewverb (tyapplicationid, ProcessSerialNumber *, tyverbclass, tyverbtoken, short, hdlverbrecord *);
00679     
00680     pascal boolean landpushparam (hdlverbrecord, typaramtype, Handle, void *, long, typaramkeyword);
00681     
00682     pascal boolean landpushbooleanparam (hdlverbrecord, Boolean, typaramkeyword);
00683     
00684     pascal boolean landpushcharparam (hdlverbrecord, char, typaramkeyword);
00685     
00686     pascal boolean landpushintparam (hdlverbrecord, short, typaramkeyword);
00687     
00688     pascal boolean landpushlongparam (hdlverbrecord, long, typaramkeyword);
00689     
00690     pascal boolean landpushdateparam (hdlverbrecord, tydate, typaramkeyword);
00691     
00692     pascal boolean landpushfloatparam (hdlverbrecord, float, typaramkeyword);
00693     
00694     pascal boolean landpushdirectionparam (hdlverbrecord, tydirection, typaramkeyword);
00695         
00696     pascal boolean landpushpointparam (hdlverbrecord, Point, typaramkeyword);
00697     
00698     pascal boolean landpushrectparam (hdlverbrecord, Rect *, typaramkeyword); 
00699     
00700     pascal boolean landpushenumparam (hdlverbrecord, tyenumerator, typaramkeyword);
00701     
00702     pascal boolean landpushstringparam (hdlverbrecord, Str255, typaramkeyword);
00703     
00704     pascal boolean landpushtextparam (hdlverbrecord, Handle, typaramkeyword);
00705     
00706     pascal boolean landpushbinaryparam (hdlverbrecord, Handle, typaramkeyword);
00707 
00708     pascal boolean landpushaliasparam (hdlverbrecord, AliasHandle, typaramkeyword);
00709 
00710     pascal boolean landpushpathparam (hdlverbrecord, Str255, typaramkeyword);
00711     
00712     pascal boolean landpushosparam (hdlverbrecord, OSType, typaramkeyword);
00713     
00714     pascal boolean landpushsingleparam (hdlverbrecord, float, typaramkeyword);
00715     
00716     pascal boolean landpushdoubleparam (hdlverbrecord, double *, typaramkeyword);
00717     
00718     pascal boolean landpushrgbparam (hdlverbrecord, RGBColor *, typaramkeyword);
00719     
00720     pascal boolean landpushpatternparam (hdlverbrecord, Pattern *, typaramkeyword);
00721     
00722     pascal boolean landpushfixedparam (hdlverbrecord, Fixed *, typaramkeyword);
00723     
00724     pascal boolean landpushfsspecparam (hdlverbrecord, FSSpec *, typaramkeyword);
00725     
00726     pascal boolean landpushobjectspecparam (hdlverbrecord, AEDesc *, typaramkeyword);
00727     
00728     pascal boolean landpushkeybinaryparam (hdlverbrecord, Handle, typaramkeyword);
00729     
00730     pascal boolean landsendverb (hdlverbrecord, typaramrecord *, Str255, short *);
00731     
00732     pascal boolean landcomplexsend (hdlverbrecord, hdlverbrecord *);
00733     
00734     pascal boolean landdisposeparamrecord (const typaramrecord *); 
00735     
00736     pascal boolean landdisposeverb (hdlverbrecord);
00737 
00738 
00739 /*getting parameters from a verb record you've received*/
00740 
00741     pascal boolean landgetparam (hdlverbrecord, typaramkeyword, typaramtype, typaramrecord *); 
00742     
00743     pascal boolean landgetbooleanparam (hdlverbrecord, typaramkeyword, Boolean *); 
00744     
00745     pascal boolean landgetcharparam (hdlverbrecord, typaramkeyword, char *);
00746     
00747     pascal boolean landgetintparam (hdlverbrecord, typaramkeyword, short *); 
00748     
00749     pascal boolean landgetlongparam (hdlverbrecord, typaramkeyword, long *); 
00750     
00751     pascal boolean landgetdateparam (hdlverbrecord, typaramkeyword, tydate *); 
00752     
00753     pascal boolean landgetfloatparam (hdlverbrecord, typaramkeyword, float *); 
00754     
00755     pascal boolean landgetdirectionparam (hdlverbrecord, typaramkeyword, tydirection *); 
00756     
00757     pascal boolean landgetpointparam (hdlverbrecord, typaramkeyword, Point *); 
00758     
00759     pascal boolean landgetrectparam (hdlverbrecord, typaramkeyword, Rect *); 
00760     
00761     pascal boolean landgetenumparam (hdlverbrecord, typaramkeyword, tyenumerator *); 
00762     
00763     pascal boolean landgetstringparam (hdlverbrecord, typaramkeyword, Str255); 
00764     
00765     pascal boolean landgettextparam (hdlverbrecord, typaramkeyword, Handle *); 
00766     
00767     pascal boolean landgetbinaryparam (hdlverbrecord, typaramkeyword, Handle *); 
00768 
00769     pascal boolean landgetaliasparam (hdlverbrecord, typaramkeyword, AliasHandle *); 
00770 
00771     pascal boolean landgetpathparam (hdlverbrecord, typaramkeyword, Str255);
00772     
00773     pascal boolean landgetosparam (hdlverbrecord, typaramkeyword, OSType *);
00774     
00775     pascal boolean landgetsingleparam (hdlverbrecord, typaramkeyword, float *);
00776     
00777     pascal boolean landgetdoubleparam (hdlverbrecord, typaramkeyword, double *);
00778     
00779     pascal boolean landgetrgbparam (hdlverbrecord, typaramkeyword, RGBColor *);
00780     
00781     pascal boolean landgetpatternparam (hdlverbrecord, typaramkeyword, Pattern *);
00782     
00783     pascal boolean landgetfixedparam (hdlverbrecord, typaramkeyword, Fixed *);
00784     
00785     pascal boolean landgetfsspecparam (hdlverbrecord, typaramkeyword, FSSpec *);
00786     
00787     pascal boolean landgetobjectspecparam (hdlverbrecord, typaramkeyword, AEDesc *);
00788     
00789     pascal boolean landgetkeybinaryparam (hdlverbrecord, typaramkeyword, Handle *);
00790     
00791     pascal boolean landgetnthparam (hdlverbrecord, short, typaramrecord *);
00792 
00793 
00794 /*returning values*/
00795 
00796     pascal boolean landreturnboolean (hdlverbrecord, Boolean);
00797     
00798     pascal boolean landreturnchar (hdlverbrecord, char);
00799     
00800     pascal boolean landreturnint (hdlverbrecord, short);
00801     
00802     pascal boolean landreturnlong (hdlverbrecord, long);
00803     
00804     pascal boolean landreturndate (hdlverbrecord, tydate);
00805     
00806     pascal boolean landreturnfloat (hdlverbrecord, float);
00807     
00808     pascal boolean landreturndirection (hdlverbrecord, tydirection);
00809         
00810     pascal boolean landreturnpoint (hdlverbrecord, Point);
00811 
00812     pascal boolean landreturnrect (hdlverbrecord, Rect *); 
00813     
00814     pascal boolean landreturnenum (hdlverbrecord, tyenumerator);
00815     
00816     pascal boolean landreturnstring (hdlverbrecord, Str255);
00817     
00818     pascal boolean landreturntext (hdlverbrecord, Handle);
00819     
00820     pascal boolean landreturnbinary (hdlverbrecord, Handle);
00821 
00822     pascal boolean landreturnalias (hdlverbrecord, AliasHandle);
00823 
00824     pascal boolean landreturnpath (hdlverbrecord, Str255);
00825     
00826     pascal boolean landreturnos (hdlverbrecord, OSType);
00827     
00828     pascal boolean landreturnsingle (hdlverbrecord, float);
00829     
00830     pascal boolean landreturndouble (hdlverbrecord, double *);
00831     
00832     pascal boolean landreturnrgb (hdlverbrecord, RGBColor *);
00833     
00834     pascal boolean landreturnpattern (hdlverbrecord, Pattern *);
00835 
00836     pascal boolean landreturnfixed (hdlverbrecord, Fixed *);
00837 
00838     pascal boolean landreturnfsspec (hdlverbrecord, FSSpec *);
00839     
00840     pascal boolean landreturnobjectspec (hdlverbrecord, AEDesc *);
00841     
00842     pascal boolean landreturnkeybinaryparam (hdlverbrecord, Handle);
00843     
00844     pascal boolean landreturnerror (hdlverbrecord, short);
00845 
00846 
00847 /*for returning multiple values*/
00848 
00849     pascal boolean landstartreturn (hdlverbrecord); 
00850     
00851     /*follow by landpushxxxparam for each return value*/
00852 
00853 
00854 /*two routines that make it easy to find out if an application supports a verb*/
00855 
00856     pascal boolean landgetappverbs (tyapplicationid, hdlverbarray *);
00857     
00858     pascal boolean landverbinarray (tyverbclass, tyverbtoken, hdlverbarray);
00859 
00860 
00861 /*routines for modifying normal behavior of standard calls*/
00862     
00863     pascal boolean landnextparamisoptional (hdlverbrecord); /*call before landgetxxxparam*/
00864     
00865     pascal boolean landverbgetsnoreply (hdlverbrecord); /*call before landsendverb*/
00866 
00867 
00868 /*networked messages on Macintosh system 7*/
00869     
00870     pascal boolean landstring2networkaddress (ConstStr255Param, tynetworkaddress *);
00871     
00872     pascal boolean landbrowsenetworkapps (ConstStr255Param, tynetworkaddress *, tyapplicationid);
00873 
00874     pascal boolean landnewnetworkverb (tynetworkaddress *, tyverbclass, tyverbtoken, short, hdlverbrecord *);
00875 
00876     pascal OSErr landgetverbattr (hdlverbrecord, OSType, DescType, AEDesc *);
00877 
00878     pascal OSErr landsetverbattr (hdlverbrecord, OSType, DescType, const void * attrdata, long);
00879 
00880 
00881 /*accessing the Toolkit globals*/
00882 
00883     pascal hdllandglobals landgetglobals (void);
00884 
00885 

Generated on Wed May 31 18:19:50 2006 for frontierkernel 10.1.10a by  doxygen 1.4.6