Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

107 lines
3.0 KiB

/*
* Adobe Graphics Manager
*
* Copyright (c) 1996 Adobe Systems Inc.
* All Rights Reserved
*
* UFLStd -- UFL C Standard APIs.
*
*
* $Header:
*/
#ifndef _H_UFLStd
#define _H_UFLStd
#ifdef WIN32KERNEL
//
// Definitions for NT Kernel mode driver.
//
#define UFLmemsetShort memset
#define UFLstrlen strlen
#define UFLstrcmp strcmp
#define UFLstrcmpW _tcscmp
int UFLsprintf(char *buf, size_t cchDest, const char *fmtstr, ...);
long UFLstrtol (const char *nptr, char **endptr, int ibase);
#define KStringCchCopyA(d,l,s) strcpy(d,s)
#else // !WIN32KERNEL
//
// Definitions for NT/9x User mode driver.
//
#include <memory.h>
#include <stdio.h>
#include <string.h>
#define UFLmemsetShort memset
#define UFLstrlen strlen
#define UFLstrcmp strcmp
#define UFLsprintf StringCchPrintfA
#define UFLstrtol strtol
#define KStringCchCopyA(d,l,s) StringCchCopyA(d,l,s)
//
// We need a strcmp function that is aware of Unicode on Unicode savvy
// platform or application.
//
#ifdef UNICODE
#include <tchar.h>
#define UFLstrcmpW _tcscmp
#include <strsafe.h>
#else
/* Although UFLstrcmpW is defined as strcmpW and strcmpW is defined in */
/* UFLSPROC.C, it is not prototyped anywhere. We prototype it here so */
/* we can avoid a "strcmpW() not defined" error in PARSETT.C */
/* jfu: 8-13-97 */
int strcmpW ( unsigned short *str1, unsigned short *str2 );
#define UFLstrcmpW strcmpW
/* _ltoa() and _ultoa() are specific to NT and Win32, but unix and mac */
/* environments define these in UFLSPROC.C, so prototype them here. */
/* jfu: 8-13-97 */
char *_ltoa( long val, char *str, int radix );
char *_ultoa( unsigned long val, char *str, int radix );
#endif // UNICODE
#endif // WIN32KERNEL
/*
This is NOT a full implementation of "sprintf" as found
in the C runtime library. Specifically, the only form of
format specification allowed is %type, where "type" can
be one of the following characters:
d int signed decimal integer
l long signed decimal integer
ld long signed decimal integer
lu unsigned long unsigned decimal integer
u unsigned int unsigned decimal integer
s char* character string
c char character
x,X unsigned long hex number (emits at least two digits, uppercase)
b UFLBool boolean (true or false)
f long 24.8 fixed-pointed number
Normally, you should use UFLsprintf. Use this function
only when you want to sprintf with %f in the form of 24.8 fixed point
number. Currently, it is only used in UFOt42 module.
*/
int UFLsprintfEx(char *buf, size_t cchDest, const char *fmtstr, ...);
//
// Count of characters
//
#define CCHOF(x) (sizeof(x)/sizeof(*(x)))
#endif