00001 /* 00002 * k_status.h 00003 * 00004 * (c) 1992-96 Sassafras Software Inc. 00005 */ 00006 00007 #define scDetachable 0x00000001 /* key can be reclaimed by KeyServer without affecting program */ 00008 #define scHaveKey 0x00000080 /* key is valid and held by client */ 00009 00010 #define keyOldClientErr 9507 /* the client software is too old to get a key for this program */ 00011 #define keyNotKeyedErr 9520 /* returned by KeyStatus if the indicated program is not keyed */ 00012 #define keyNoClientErr -1 /* KeyAccess not installed or not running (generated by glue) */ 00013 00014 int pascal KeyStatus (long keyRef, long FAR *flags, long FAR *foreTime); 00015 int pascal KeyIntfS4200 (void); 00016 00017 /* 00018 int pascal KeyStatus (long keyRef, long FAR *flags, long FAR *foreTime); 00019 00020 DESCRIPTION 00021 00022 This function checks the status of any keyed program, or 00023 indicates that the calling program is not keyed. 00024 00025 PARAMETERS 00026 00027 keyRef [in] reference for the keyed program, 00028 or zero for current program. 00029 flags [out] service class. See above bits 00030 for details (scDetachable, etc.) 00031 foreTime [out] number of seconds that the keyed 00032 program has been in foreground. 00033 00034 USAGE 00035 00036 long flags; 00037 long foreTime; 00038 00039 err = KeyStatus(0, &flags, &foreTime); 00040 00041 Call KeyStatus to check whether a program is keyed, and if so, 00042 what the status of the key is. If the program is not keyed, 00043 KeyStatus returns keyNotKeyedErr, keyOldClientErr, keyNoClientErr, 00044 or some other negative error code. On noErr, the status of the 00045 key is returned in flags, and the time that the program has 00046 spent running in the foreground is returned in foreTime. 00047 00048 The status flags can be used to determine whether the key for a 00049 keyed program has been invalidated, and what type of services 00050 are activated for the keyed program. The most interesting flags 00051 are the scDetachable and scHaveKey flags, which reflect the 00052 validity of the key. If scHaveKey is clear, then the keyed 00053 program is no longer running with KeyServerÍs permission. This 00054 normally means that the user has been asked to quit from the 00055 keyed program because of a network failure, because the key 00056 timed out, or because the KeyServer administrator reclaimed the 00057 key. However, if the KeyServer administrator has made the key 00058 detachable, the user should still be allowed to run the keyed 00059 program. This option is usually set for programs that are site 00060 licensed, or have an infinite number of keys available. 00061 00062 In order to use this routine, you will need to link k_status.lib 00063 with your other object code. To guarantee you are using the 00064 proper version of this object code file, use the KeyIntfS4200() 00065 routine. 00066 00067 00068 int pascal KeyIntfS4200 (void); 00069 00070 DESCRIPTION 00071 00072 This function provides a means of version control for the 00073 k_status.lib object library. 00074 00075 USAGE 00076 00077 err = KeyIntfS4200(); 00078 00079 To make sure that the interface file you use matches the object 00080 file, include one call, anywhere in your code, to the KeyIntfS3100 00081 routine. If the object library does not support the proper version 00082 of the KeyStatus routine, you will get a link-time error, telling 00083 you that KeyIntfS3100 is not defined. In this case, you should 00084 locate the proper version of k_status.lib, and include it in your 00085 link process. 00086 00087 When you build your program for the final release, you can remove 00088 the call to KeyIntfS3100. There is very little overhead to leaving 00089 it in the final code, but sometimes every byte counts. The only 00090 real error conditions stemming from this function will happen at 00091 program link time. 00092 00093 */ 00094
Generated on Thu Oct 27 11:46:44 2005 with
1.4.5 written by Dimitri van Heesch,
© 1997-2001