28 #define P6COMPILE_TIME_ASSERT(name,x) typedef int P6_CTA_ ## name__[(x) ? 1:-1];
42 #if P6SIZEOF_SHORT == 2
46 #error Unable to find an appropriate type for P6UINT16 and P6INT16
51 #elif P6SIZEOF_LONG == 4
55 #error Unable to find an appropriate type for P6UINT32 and P6INT32
57 #if P6SIZEOF_LONGLONG == 8
61 #error Unable to find an appropriate type for P6UINT64 and P6INT64
63 #if P6SIZEOF_PTRDIFF == P6SIZEOF_SIZET
66 #error Unable to find an appropriate type for P6PTRDIFF
113 typedef unsigned short P6WCHAR;
119 #if defined(__GNUC__) || defined(__SUNPRO_CC)
120 #define P6I64(v) v##LL
121 #define P6U64(v) v##ULL
123 #define P6I64(v) v##i64
124 #define P6U64(v) v##ui64
166 P6UINT8 clockNode[8];
170 #define P6UUID_STR_SIZE 39
285 typedef P6UINT64 P6INTERVAL;
291 P6UINT32 milliseconds;
292 P6UINT64 microseconds;
294 } P6EXPANDEDINTERVAL;
297 typedef P6VOID *P6DLLHANDLE;
298 typedef P6VOID *P6SYMPROC;
308 typedef P6UINT8 P6P8BIT;
309 typedef struct {P6UINT8 c[2];} P6P16BIT;
310 typedef struct {P6UINT8 c[4];} P6P32BIT;
311 typedef struct {P6UINT8 c[8];} P6P64BIT;
314 #define P6_NSEC_PER_USEC 1000UL
317 #define P6_NSEC_PER_MSEC 1000000UL
320 #define P6_NSEC_PER_SEC 1000000000UL
323 #define P6_USEC_PER_MSEC 1000UL
326 #define P6_USEC_PER_SEC 1000000UL
329 #define P6_MSEC_PER_SEC 1000UL
331 #define P6_SEC_PER_HOUR 3600UL
333 #define P6_SEC_PER_DAY 86400UL
336 typedef P6SIZE P6PROCESSID;
338 typedef P6SIZE P6THREADID;
339 #define P6INVALID_THREADID 0
346 #define P6MAXTHREADNAME 24
353 #define P6MAXTHREADSTATENAME 24
376 P6WCHAR szwName[P6MAXTHREADNAME];
377 P6WCHAR szwState[P6MAXTHREADSTATENAME];
379 P6THREADPRIORITY priority;
443 typedef P6UINT32 BUILDFLAGS;
445 static const BUILDFLAGS P6BF_NONE = 0x00000000;
446 static const BUILDFLAGS P6BF_DEBUG = 0x00000001;
447 static const BUILDFLAGS P6BF_RETAIL = 0x00000002;
448 static const BUILDFLAGS P6BF_ALPHA = 0x00000004;
449 static const BUILDFLAGS P6BF_BETA = 0x00000008;
450 static const BUILDFLAGS P6BF_RELEASE = 0x00000010;
451 static const BUILDFLAGS P6BF_INTERNAL = 0x00000020;
452 static const BUILDFLAGS P6BF_LOADER = 0x00000100;
454 static const BUILDFLAGS P6BF_BUILDMODE_MASK = 0x00000003;
455 static const BUILDFLAGS P6BF_RELEASETYPE_MASK= 0x0000003c;
458 typedef P6UINT32 VERMAGIC;
460 static const VERMAGIC P6VI_MAGIC1 = 0x18436572;
461 static const VERMAGIC P6VI_MAGIC2 = 0x011951dc;
467 P6VERSION productver;
470 const P6CHAR *pcszLocale;
471 const P6WCHAR *pszwProductName;
472 const P6WCHAR *pszwCopyright;
473 const P6WCHAR *pszwModuleDesc;
474 const P6WCHAR *pszwBuildNotes;
493 #define P6MAX_LOCALE_LEN 64
500 #define P6SAFESTR_MAX_CCH 2147483647
573 static const P6ARGFLAGS P6AFL_NOFLAGS = 0x00000000;
574 static const P6ARGFLAGS P6AFL_LEFTALIGN = 0x00000001;
575 static const P6ARGFLAGS P6AFL_CENTER = 0x00000002;
576 static const P6ARGFLAGS P6AFL_SIGN = 0x00000004;
577 static const P6ARGFLAGS P6AFL_ADDPORT = 0x00000008;
578 static const P6ARGFLAGS P6AFL_ISO860 = 0x00000010;
579 static const P6ARGFLAGS P6AFL_RFC822 = 0x00000020;
580 static const P6ARGFLAGS P6AFL_LOCALTIME = 0x00000040;
581 static const P6ARGFLAGS P6AFL_TRUNCATE = 0x00000080;
582 static const P6ARGFLAGS P6AFL_UPPERCASE = 0x00000100;
583 static const P6ARGFLAGS P6AFL_LOWERCASE = 0x00000200;
585 static const P6ARGFLAGS P6AFL_ALIGNMASK = 0x00000003;
586 static const P6ARGFLAGS P6AFL_CASEMASK = 0x00000300;
639 #define P6ARGINPLACE_INIT(type,fieldWidth,precision,precisionPad,fieldPad,format,flags,data) \
640 {(type),(fieldWidth),(precision),(precisionPad),(fieldPad),(format),(flags),{(data)}}
642 #define P6ARGINIT(arg,nType,fmt,fieldWidth,precision,flags,fieldPad,precisionPad) \
643 (arg)->m_nType = (nType); \
644 (arg)->m_fieldWidth = (fieldWidth); \
645 (arg)->m_precision = (precision); \
646 (arg)->m_precisionPad = (precisionPad); \
647 (arg)->m_fieldPad = (fieldPad); \
648 (arg)->m_fFlags = (flags); \
649 (arg)->m_nFormat = (fmt); \
650 (arg)->u.m_uint64 = P6I64(0)
652 #define P6ARGINITBOOLEX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6AT_BOOL,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->u.m_bool = (data)
653 #define P6ARGINITCHAREX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6AT_CHAR,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->u.m_char = (data)
654 #define P6ARGINITCHARPTREX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6AT_CHARPTR,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->u.m_charptr = (data)
655 #define P6ARGINITUCHAREX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6AT_UCHAR,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->u.m_uchar = (data)
656 #define P6ARGINITWCHAREX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6AT_WCHAR,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->u.m_wchar = (data)
657 #define P6ARGINITWCHARPTREX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6AT_WCHARPTR,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->u.m_wcharptr = (data)
658 #define P6ARGINITPTREX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6AT_PTR,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->u.m_voidptr = (data)
659 #define P6ARGINITINT8EX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6AT_INT8,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->u.m_int8 = (data)
660 #define P6ARGINITUINT8EX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6AT_UINT8,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->u.m_uint8 = (data)
661 #define P6ARGINITINT16EX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6AT_INT16,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->u.m_int16 = (data)
662 #define P6ARGINITUINT16EX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6AT_UINT16,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->u.m_uint16 = (data)
663 #define P6ARGINITINT32EX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6AT_INT32,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->u.m_int32 = (data)
664 #define P6ARGINITUINT32EX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6AT_UINT32,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->u.m_uint32 = (data)
665 #define P6ARGINITINT64EX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6AT_INT64,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->u.m_int64 = (data)
666 #define P6ARGINITUINT64EX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6AT_UINT64,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->u.m_uint64 = (data)
667 #define P6ARGINITSHORTEX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6AT_SHORT,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->u.m_short = (data)
668 #define P6ARGINITUSHORTEX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6AT_USHORT,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->u.m_ushort = (data)
669 #define P6ARGINITINTEX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6AT_INT,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->u.m_int = (data)
670 #define P6ARGINITUINTEX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6AT_UINT,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->u.m_uint = (data)
671 #define P6ARGINITLONGEX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6AT_LONG,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->u.m_long = (data)
672 #define P6ARGINITULONGEX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6AT_ULONG,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->u.m_ulong = (data)
673 #define P6ARGINITSIZEEX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6AT_SIZE,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->u.m_sizet = (data)
674 #define P6ARGINITTHREADIDEX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6AT_THREADID,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->u.m_hThread = (data)
675 #define P6ARGINITERREX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6AT_ERR,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->u.m_err = (data)
676 #define P6ARGINITUUIDEX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6AT_UUID,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->u.m_uuid = (data)
677 #define P6ARGINITCATIDEX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6AT_CATID,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->u.m_catid = (data)
678 #define P6ARGINITNETADDREX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6AT_NETADDR,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->u.m_netAddr = (data)
679 #define P6ARGINITTIMEEX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6AT_TIME,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->u.m_time = (data)
680 #define P6ARGINITINTERVALEX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6AT_INTERVAL,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->u.m_tInterval = (data)
681 #define P6ARGINITFLOATEX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6AT_FLOAT,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->u.m_float = (data)
682 #define P6ARGINITBSTREX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6AT_BSTR,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->u.m_bstr = (data)
683 #define P6ARGINITBWSTREX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6AT_BWSTR,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->u.m_bwstr = (data)
684 #define P6ARGINITBCSTREX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6AT_BCSTR,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->u.m_bcstr = (data)
685 #define P6ARGINITBWCSTREX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6AT_BWCSTR,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->u.m_bwcstr = (data)
687 #define P6AI_BOOL(arg,data) P6ARGINITBOOLEX(arg,data,P6AF_STR,0,0,P6AFL_NOFLAGS,0,0)
688 #define P6AI_BOOL_HEXL(arg,data) P6ARGINITBOOLEX(arg,data,P6AF_HEX,0,0,P6AFL_LOWERCASE,0,0)
689 #define P6AI_BOOL_HEXU(arg,data) P6ARGINITBOOLEX(arg,data,P6AF_HEX,0,0,P6AFL_UPPERCASE,0,0)
690 #define P6AI_BOOL_DEC(arg,data) P6ARGINITBOOLEX(arg,data,P6AF_DEC,0,0,P6AFL_NOFLAGS,0,0)
692 #define P6AI_CHAR(arg,data) P6ARGINITCHAREX(arg,data,P6AF_CHAR,0,0,P6AFL_NOFLAGS,0,0)
693 #define P6AI_CHAR_HEXL(arg,data) P6ARGINITCHAREX(arg,data,P6AF_HEX,0,0,P6AFL_LOWERCASE,0,0)
694 #define P6AI_CHAR_HEXU(arg,data) P6ARGINITCHAREX(arg,data,P6AF_HEX,0,0,P6AFL_UPPERCASE,0,0)
695 #define P6AI_CHAR_DEC(arg,data) P6ARGINITCHAREX(arg,data,P6AF_DEC,0,0,P6AFL_NOFLAGS,0,0)
696 #define P6AI_CHAR_OCT(arg,data) P6ARGINITCHAREX(arg,data,P6AF_OCT,0,0,P6AFL_NOFLAGS,0,0)
697 #define P6AI_CHAR_UPR(arg,data) P6ARGINITCHAREX(arg,data,P6AF_CHAR,0,0,P6AFL_UPPERCASE,0,0)
698 #define P6AI_CHAR_LWR(arg,data) P6ARGINITCHAREX(arg,data,P6AF_CHAR,0,0,P6AFL_LOWERCASE,0,0)
700 #define P6AI_CHARPTR(arg,data) P6ARGINITCHARPTREX(arg,data,P6AF_STR,0,0,P6AFL_NOFLAGS,0,0)
701 #define P6AI_CHARPTR_HEXL(arg,data) P6ARGINITCHARPTREX(arg,data,P6AF_HEX,0,0,P6AFL_LOWERCASE,0,0)
702 #define P6AI_CHARPTR_HEXU(arg,data) P6ARGINITCHARPTREX(arg,data,P6AF_HEX,0,0,P6AFL_UPPERCASE,0,0)
703 #define P6AI_CHARPTR_DEC(arg,data) P6ARGINITCHARPTREX(arg,data,P6AF_DEC,0,0,P6AFL_NOFLAGS,0,0)
704 #define P6AI_CHARPTR_UPR(arg,data) P6ARGINITCHARPTREX(arg,data,P6AF_STR,0,0,P6AFL_UPPERCASE,0,0)
705 #define P6AI_CHARPTR_LWR(arg,data) P6ARGINITCHARPTREX(arg,data,P6AF_STR,0,0,P6AFL_LOWERCASE,0,0)
706 #define P6AI_CHARPTR_HEXSTR(arg,data) P6ARGINITCHARPTREX(arg,data,P6AF_HEXSTR,0,0,P6AFL_LOWERCASE,0,0)
707 #define P6AI_CHARPTR_HEXDUMP(arg,data) P6ARGINITCHARPTREX(arg,data,P6AF_HEXDUMP,0,0,P6AFL_NOFLAGS,0,0)
709 #define P6AI_UCHAR(arg,data) P6ARGINITUCHAREX(arg,data,P6AF_CHAR,0,0,P6AFL_NOFLAGS,0,0)
710 #define P6AI_UCHAR_HEXL(arg,data) P6ARGINITUCHAREX(arg,data,P6AF_HEX,0,0,P6AFL_LOWERCASE,0,0)
711 #define P6AI_UCHAR_HEXU(arg,data) P6ARGINITUCHAREX(arg,data,P6AF_HEX,0,0,P6AFL_UPPERCASE,0,0)
712 #define P6AI_UCHAR_DEC(arg,data) P6ARGINITUCHAREX(arg,data,P6AF_DEC,0,0,P6AFL_NOFLAGS,0,0)
713 #define P6AI_UCHAR_OCT(arg,data) P6ARGINITUCHAREX(arg,data,P6AF_OCT,0,0,P6AFL_NOFLAGS,0,0)
714 #define P6AI_UCHAR_UPR(arg,data) P6ARGINITUCHAREX(arg,data,P6AF_CHAR,0,0,P6AFL_UPPERCASE,0,0)
715 #define P6AI_UCHAR_LWR(arg,data) P6ARGINITUCHAREX(arg,data,P6AF_CHAR,0,0,P6AFL_LOWERCASE,0,0)
717 #define P6AI_WCHAR(arg,data) P6ARGINITWCHAREX(arg,data,P6AF_CHAR,0,0,P6AFL_NOFLAGS,0,0)
718 #define P6AI_WCHAR_HEXL(arg,data) P6ARGINITWCHAREX(arg,data,P6AF_HEX,0,0,P6AFL_LOWERCASE,0,0)
719 #define P6AI_WCHAR_HEXU(arg,data) P6ARGINITWCHAREX(arg,data,P6AF_HEX,0,0,P6AFL_UPPERCASE,0,0)
720 #define P6AI_WCHAR_DEC(arg,data) P6ARGINITWCHAREX(arg,data,P6AF_DEC,0,0,P6AFL_NOFLAGS,0,0)
721 #define P6AI_WCHAR_UPR(arg,data) P6ARGINITWCHAREX(arg,data,P6AF_CHAR,0,0,P6AFL_UPPERCASE,0,0)
722 #define P6AI_WCHAR_LWR(arg,data) P6ARGINITWCHAREX(arg,data,P6AF_CHAR,0,0,P6AFL_LOWERCASE,0,0)
724 #define P6AI_WCHARPTR(arg,data) P6ARGINITWCHARPTREX(arg,data,P6AF_STR,0,0,P6AFL_NOFLAGS,0,0)
725 #define P6AI_WCHARPTR_HEXL(arg,data) P6ARGINITWCHARPTREX(arg,data,P6AF_HEX,0,0,P6AFL_LOWERCASE,0,0)
726 #define P6AI_WCHARPTR_HEXU(arg,data) P6ARGINITWCHARPTREX(arg,data,P6AF_HEX,0,0,P6AFL_UPPERCASE,0,0)
727 #define P6AI_WCHARPTR_DEC(arg,data) P6ARGINITWCHARPTREX(arg,data,P6AF_DEC,0,0,P6AFL_NOFLAGS,0,0)
728 #define P6AI_WCHARPTR_UPR(arg,data) P6ARGINITWCHARPTREX(arg,data,P6AF_STR,0,0,P6AFL_UPPERCASE,0,0)
729 #define P6AI_WCHARPTR_LWR(arg,data) P6ARGINITWCHARPTREX(arg,data,P6AF_STR,0,0,P6AFL_LOWERCASE,0,0)
730 #define P6AI_WCHARPTR_HEXSTR(arg,data) P6ARGINITWCHARPTREX(arg,data,P6AF_HEXSTR,0,0,P6AFL_LOWERCASE,0,0)
731 #define P6AI_WCHARPTR_HEXDUMP(arg,data) P6ARGINITWCHARPTREX(arg,data,P6AF_HEXDUMP,0,0,P6AFL_NOFLAGS,0,0)
733 #define P6AI_PTR(arg,data) P6ARGINITPTREX(arg,data,P6AF_HEX,0,0,P6AFL_LOWERCASE,0,0)
734 #define P6AI_PTR_DEC(arg,data) P6ARGINITPTREX(arg,data,P6AF_DEC,0,0,P6AFL_NOFLAGS,0,0)
736 #define P6AI_INT8(arg,data) P6ARGINITINT8EX(atg,data,P6AF_DEC,0,0,P6AFL_NOFLAGS,0,0)
737 #define P6AI_INT8_HEXL(arg,data) P6ARGINITINT8EX(atg,data,P6AF_HEX,0,0,P6AFL_LOWERCASE,0,0)
738 #define P6AI_INT8_HEXU(arg,data) P6ARGINITINT8EX(atg,data,P6AF_HEX,0,0,P6AFL_UPPERCASE,0,0)
740 #define P6AI_UINT8(arg,data) P6ARGINITUINT8EX(arg,data,P6AF_DEC,0,0,P6AFL_NOFLAGS,0,0)
741 #define P6AI_UINT8_HEXL(arg,data) P6ARGINITUINT8EX(arg,data,P6AF_HEX,0,0,P6AFL_LOWERCASE,0,0)
742 #define P6AI_UINT8_HEXU(arg,data) P6ARGINITUINT8EX(arg,data,P6AF_HEX,0,0,P6AFL_UPPERCASE,0,0)
744 #define P6AI_INT16(arg,data) P6ARGINITINT16EX(arg,data,P6AF_DEC,0,0,P6AFL_NOFLAGS,0,0)
745 #define P6AI_INT16_HEXL(arg,data) P6ARGINITINT16EX(arg,data,P6AF_HEX,0,0,P6AFL_LOWERCASE,0,0)
746 #define P6AI_INT16_HEXU(arg,data) P6ARGINITINT16EX(arg,data,P6AF_HEX,0,0,P6AFL_UPPERCASE,0,0)
748 #define P6AI_UINT16(arg,data) P6ARGINITUINT16EX(arg,data,P6AF_DEC,0,0,P6AFL_NOFLAGS,0,0)
749 #define P6AI_UINT16_HEXL(arg,data) P6ARGINITUINT16EX(arg,data,P6AF_HEX,0,0,P6AFL_LOWERCASE,0,0)
750 #define P6AI_UINT16_HEXU(arg,data) P6ARGINITUINT16EX(arg,data,P6AF_HEX,0,0,P6AFL_UPPERCASE,0,0)
752 #define P6AI_INT32(arg,data) P6ARGINITINT32EX(arg,data,P6AF_DEC,0,0,P6AFL_NOFLAGS,0,0)
753 #define P6AI_INT32_HEXL(arg,data) P6ARGINITINT32EX(arg,data,P6AF_HEX,0,0,P6AFL_LOWERCASE,0,0)
754 #define P6AI_INT32_HEXU(arg,data) P6ARGINITINT32EX(arg,data,P6AF_HEX,0,0,P6AFL_UPPERCASE,0,0)
756 #define P6AI_UINT32(arg,data) P6ARGINITUINT32EX(arg,data,P6AF_DEC,0,0,P6AFL_NOFLAGS,0,0)
757 #define P6AI_UINT32_HEXL(arg,data) P6ARGINITUINT32EX(arg,data,P6AF_HEX,0,0,P6AFL_LOWERCASE,0,0)
758 #define P6AI_UINT32_HEXU(arg,data) P6ARGINITUINT32EX(arg,data,P6AF_HEX,0,0,P6AFL_UPPERCASE,0,0)
760 #define P6AI_INT64(arg,data) P6ARGINITINT64EX(arg,data,P6AF_DEC,0,0,P6AFL_NOFLAGS,0,0)
761 #define P6AI_INT64_HEXL(arg,data) P6ARGINITINT64EX(arg,data,P6AF_HEX,0,0,P6AFL_LOWERCASE,0,0)
762 #define P6AI_INT64_HEXU(arg,data) P6ARGINITINT64EX(arg,data,P6AF_HEX,0,0,P6AFL_UPPERCASE,0,0)
764 #define P6AI_UINT64(arg,data) P6ARGINITUINT64EX(arg,data,P6AF_DEC,0,0,P6AFL_NOFLAGS,0,0)
765 #define P6AI_UINT64_HEXL(arg,data) P6ARGINITUINT64EX(arg,data,P6AF_HEX,0,0,P6AFL_LOWERCASE,0,0)
766 #define P6AI_UINT64_HEXU(arg,data) P6ARGINITUINT64EX(arg,data,P6AF_HEX,0,0,P6AFL_UPPERCASE,0,0)
768 #define P6AI_SHORT(arg,data) P6ARGINITSHORTEX(arg,data,P6AF_DEC,0,0,P6AFL_NOFLAGS,0,0)
769 #define P6AI_SHORT_HEXL(arg,data) P6ARGINITSHORTEX(arg,data,P6AF_HEX,0,0,P6AFL_LOWERCASE,0,0)
770 #define P6AI_SHORT_HEXU(arg,data) P6ARGINITSHORTEX(arg,data,P6AF_HEX,0,0,P6AFL_UPPERCASE,0,0)
772 #define P6AI_USHORT(arg,data) P6ARGINITUSHORTEX(arg,data,P6AF_DEC,0,0,P6AFL_NOFLAGS,0,0)
773 #define P6AI_USHORT_HEXL(arg,data) P6ARGINITUSHORTEX(arg,data,P6AF_HEX,0,0,P6AFL_LOWERCASE,0,0)
774 #define P6AI_USHORT_HEXU(arg,data) P6ARGINITUSHORTEX(arg,data,P6AF_HEX,0,0,P6AFL_UPPERCASE,0,0)
776 #define P6AI_INT(arg,data) P6ARGINITINTEX(arg,data,P6AF_DEC,0,0,P6AFL_NOFLAGS,0,0)
777 #define P6AI_INT_HEXL(arg,data) P6ARGINITINTEX(arg,data,P6AF_HEX,0,0,P6AFL_LOWERCASE,0,0)
778 #define P6AI_INT_HEXU(arg,data) P6ARGINITINTEX(arg,data,P6AF_HEX,0,0,P6AFL_UPPERCASE,0,0)
780 #define P6AI_UINT(arg,data) P6ARGINITUINTEX(arg,data,P6AF_DEC,0,0,P6AFL_NOFLAGS,0,0)
781 #define P6AI_UINT_HEXL(arg,data) P6ARGINITUINTEX(arg,data,P6AF_HEX,0,0,P6AFL_LOWERCASE,0,0)
782 #define P6AI_UINT_HEXU(arg,data) P6ARGINITUINTEX(arg,data,P6AF_HEX,0,0,P6AFL_UPPERCASE,0,0)
784 #define P6AI_LONG(arg,data) P6ARGINITLONGEX(arg,data,P6AF_DEC,0,0,P6AFL_NOFLAGS,0,0)
785 #define P6AI_LONG_HEXL(arg,data) P6ARGINITLONGEX(arg,data,P6AF_HEX,0,0,P6AFL_LOWERCASE,0,0)
786 #define P6AI_LONG_HEXU(arg,data) P6ARGINITLONGEX(arg,data,P6AF_HEX,0,0,P6AFL_UPPERCASE,0,0)
788 #define P6AI_ULONG(arg,data) P6ARGINITULONGEX(arg,data,P6AF_DEC,0,0,P6AFL_NOFLAGS,0,0)
789 #define P6AI_ULONG_HEXL(arg,data) P6ARGINITULONGEX(arg,data,P6AF_HEX,0,0,P6AFL_LOWERCASE,0,0)
790 #define P6AI_ULONG_HEXU(arg,data) P6ARGINITULONGEX(arg,data,P6AF_HEX,0,0,P6AFL_UPPERCASE,0,0)
792 #define P6AI_SIZE(arg,data) P6ARGINITSIZEEX(arg,data,P6AF_DEC,0,0,P6AFL_NOFLAGS,0,0)
793 #define P6AI_SIZE_HEXL(arg,data) P6ARGINITSIZEEX(arg,data,P6AF_HEX,0,0,P6AFL_LOWERCASE,0,0)
794 #define P6AI_SIZE_HEXU(arg,data) P6ARGINITSIZEEX(arg,data,P6AF_HEX,0,0,P6AFL_UPPERCASE,0,0)
796 #define P6AI_THREADID(arg,data) P6ARGINITSIZEEX(arg,data,P6AF_DEC,0,0,P6AFL_NOFLAGS,0,0)
797 #define P6AI_THREADID_HEXL(arg,data) P6ARGINITSIZEEX(arg,data,P6AF_HEX,0,0,P6AFL_LOWERCASE,0,0)
798 #define P6AI_THREADID_HEXU(arg,data) P6ARGINITSIZEEX(arg,data,P6AF_HEX,0,0,P6AFL_UPPERCASE,0,0)
800 #define P6AI_FLOAT(arg,data) P6ARGINITFLOATEX(arg,data,P6AF_DEC,0,0,P6AFL_NOFLAGS,0,0)
802 #define P6AI_UUID(arg,data) P6ARGINITUUIDEX(arg,data,P6AF_STR,0,0,P6AFL_NOFLAGS,0,0)
803 #define P6AI_CATID(arg,data) P6ARGINITCATIDEX(arg,data,P6AF_STR,0,0,P6AFL_NOFLAGS,0,0)
805 #define P6AI_ERR(arg,data) P6ARGINITERREX(arg,data,P6AF_STR,0,0,P6AFL_NOFLAGS,0,0)
806 #define P6AI_ERR_HEXL(arg,data) P6ARGINITERREX(arg,data,P6AF_HEX,0,0,P6AFL_LOWERCASE,0,0)
807 #define P6AI_ERR_HEXU(arg,data) P6ARGINITERREX(arg,data,P6AF_HEX,0,0,P6AFL_UPPERCASE,0,0)
808 #define P6AI_ERR_DEC(arg,data) P6ARGINITERREX(arg,data,P6AF_DEC,0,0,P6AFL_NOFLAGS,0,0)
810 #define P6AI_NETADDR(arg,data) P6ARGINITNETADDREX(arg,data,P6AF_STR,0,0,P6AFL_NOFLAGS,0,0)
811 #define P6AI_NETADDRPORT(arg,data) P6ARGINITNETADDREX(arg,data,P6AF_STR,0,0,P6AFL_ADDPORT,0,0)
813 #define P6AI_INTERVAL(arg,data) P6ARGINITINTERVALEX(arg,data,P6AF_STR,0,0,P6AFL_NOFLAGS,0,0)
814 #define P6AI_INTERVAL_ISO860(arg,data) P6ARGINITINTERVALEX(arg,data,P6AF_STR,0,0,P6AFL_ISO860,0,0)
815 #define P6AI_INTERVAL_DEC(arg,data) P6ARGINITINTERVALEX(arg,data,P6AF_DEC,0,0,P6AFL_NOFLAGS,0,0)
816 #define P6AI_INTERVAL_HEXL(arg,data) P6ARGINITINTERVALEX(arg,data,P6AF_HEX,0,0,P6AFL_LOWERCASE,0,0)
817 #define P6AI_INTERVAL_HEXU(arg,data) P6ARGINITINTERVALEX(arg,data,P6AF_HEX,0,0,P6AFL_UPPERCASE,0,0)
819 #define P6AI_TIME(arg,data) P6ARGINITTIMEEX(arg,data,P6AF_STR,0,0,P6AFL_NOFLAGS,0,0)
820 #define P6AI_TIME_ISO860(arg,data) P6ARGINITTIMEEX(arg,data,P6AF_STR,0,0,P6AFL_ISO860,0,0)
821 #define P6AI_TIME_ISO860_LOCAL(arg,data) P6ARGINITTIMEEX(arg,data,P6AF_STR,0,0,P6AFL_ISO860|P6AFL_LOCALTIME,0,0)
822 #define P6AI_TIME_RFC822(arg,data) P6ARGINITTIMEEX(arg,data,P6AF_STR,0,0,P6AFL_RFC822,0,0)
823 #define P6AI_TIME_DEC(arg,data) P6ARGINITTIMEEX(arg,data,P6AF_DEC,0,0,P6AFL_NOFLAGS,0,0)
824 #define P6AI_TIME_HEXL(arg,data) P6ARGINITTIMEEX(arg,data,P6AF_HEX,0,0,P6AFL_LOWERCASE,0,0)
825 #define P6AI_TIME_HEXU(arg,data) P6ARGINITTIMEEX(arg,data,P6AF_HEX,0,0,P6AFL_UPPERCASE,0,0)
827 #define P6AI_BSTR(arg,data) P6ARGINITBSTREX(arg,data,P6AF_STR,0,0,P6AFL_NOFLAGS,0,0)
828 #define P6AI_BSTR_UPR(arg,data) P6ARGINITBSTREX(arg,data,P6AF_STR,0,0,P6AFL_UPPERCASE,0,0)
829 #define P6AI_BSTR_LWR(arg,data) P6ARGINITBSTREX(arg,data,P6AF_STR,0,0,P6AFL_LOWERCASE,0,0)
830 #define P6AI_BSTR_HEXSTR(arg,data) P6ARGINITBSTREX(arg,data,P6AF_HEXSTR,0,0,P6AFL_LOWERCASE,0,0)
831 #define P6AI_BSTR_HEXDUMP(arg,data) P6ARGINITBSTREX(arg,data,P6AF_HEXDUMP,0,0,P6AFL_NOFLAGS,0,0)
833 #define P6AI_BWSTR(arg,data) P6ARGINITBWSTREX(arg,data,P6AF_STR,0,0,P6AFL_NOFLAGS,0,0)
834 #define P6AI_BWSTR_UPR(arg,data) P6ARGINITBWSTREX(arg,data,P6AF_STR,0,0,P6AFL_UPPERCASE,0,0)
835 #define P6AI_BWSTR_LWR(arg,data) P6ARGINITBWSTREX(arg,data,P6AF_STR,0,0,P6AFL_LOWERCASE,0,0)
836 #define P6AI_BWSTR_HEXSTR(arg,data) P6ARGINITBWSTREX(arg,data,P6AF_HEXSTR,0,0,P6AFL_LOWERCASE,0,0)
837 #define P6AI_BWSTR_HEXDUMP(arg,data) P6ARGINITBWSTREX(arg,data,P6AF_HEXDUMP,0,0,P6AFL_NOFLAGS,0,0)
839 #define P6AI_BCSTR(arg,data) P6ARGINITBCSTREX(arg,data,P6AF_STR,0,0,P6AFL_NOFLAGS,0,0)
840 #define P6AI_BCSTR_UPR(arg,data) P6ARGINITBCSTREX(arg,data,P6AF_STR,0,0,P6AFL_UPPERCASE,0,0)
841 #define P6AI_BCSTR_LWR(arg,data) P6ARGINITBCSTREX(arg,data,P6AF_STR,0,0,P6AFL_LOWERCASE,0,0)
842 #define P6AI_BCSTR_HEXSTR(arg,data) P6ARGINITBCSTREX(arg,data,P6AF_HEXSTR,0,0,P6AFL_LOWERCASE,0,0)
843 #define P6AI_BCSTR_HEXDUMP(arg,data) P6ARGINITBCSTREX(arg,data,P6AF_HEXDUMP,0,0,P6AFL_NOFLAGS,0,0)
845 #define P6AI_BWCSTR(arg,data) P6ARGINITBWCSTREX(arg,data,P6AF_STR,0,0,P6AFL_NOFLAGS,0,0)
846 #define P6AI_BWCSTR_UPR(arg,data) P6ARGINITBWCSTREX(arg,data,P6AF_STR,0,0,P6AFL_UPPERCASE,0,0)
847 #define P6AI_BWCSTR_LWR(arg,data) P6ARGINITBWCSTREX(arg,data,P6AF_STR,0,0,P6AFL_LOWERCASE,0,0)
848 #define P6AI_BWCSTR_HEXSTR(arg,data) P6ARGINITBWCSTREX(arg,data,P6AF_HEXSTR,0,0,P6AFL_LOWERCASE,0,0)
849 #define P6AI_BWCSTR_HEXDUMP(arg,data) P6ARGINITBWCSTREX(arg,data,P6AF_HEXDUMP,0,0,P6AFL_NOFLAGS,0,0)
861 #define P6HEXDUMP_OFFSETSZ 11
862 #define P6HEXDUMP_ASCIISEPSZ 2
863 #define P6HEXDUMP_CHARSPERBYTE 6
872 typedef P6UINT32 P6BTFLAGS;
874 static const P6BTFLAGS BT_NOFLAGS = 0x00000000;
875 static const P6BTFLAGS BT_ADDPATHS = 0x00000001;
876 static const P6BTFLAGS BT_FMTXML = 0x00000002;
877 static const P6BTFLAGS BT_FMTCSV = 0x00000004;
878 static const P6BTFLAGS BT_NODEMANGLE = 0x00000008;
918 typedef P6VOID* (*P6PLATFORMALLOC)(P6SIZE cSizeInBytes);
926 typedef P6VOID (*P6PLATFORMFREE)(P6VOID *pMemory);
950 typedef int nothrow_t;
951 extern const nothrow_t nothrow;
Wide const binary string, transform based on P6AFL_UPPERCASE/P6AFL_LOWERCASE flags.
P6UUID P6CID
A component ID.
Format as hex encoded string, converts character values to hex.
This defines where the runtime stores license files.
Format as a text string (prints a formatted UUID string for UUIDs)
A convience structure to pass around a narrow string along with its length.
Format as hexadecimal number.
P6SIZE length
Length of data in bytes.
Format as a decimal number.
const P6WCHAR * m_wcharptr
The "current" working directory.
P6INT16 dayOfMonth
[1 - 31]
P6INT16 dayOfYear
[0 - 365] days since January 1
P6UINT32 timeLow
(4*octet) time_low
Pointer to a P6NETADDR will print dotted quad by default.
unsigned char P6BOOL
Boolean type.
P6UUID P6IID
An interface ID.
P6WCHAR * P6COMSTR
Standard COM length encoded string.
P6ARGFMT m_nFormat
Specified how the argument should be renedered (see P6R::P6ARGFMT)
Pointer to a wide character string, transform based on P6AFL_UPPERCASE/P6AFL_LOWERCASE flags...
Wide Const binary string.
Format a P6TIME as an RFC 822 date, only valid for an P6ARGTYPE of P6AT_TIME.
P6ARGFLAGS m_fFlags
See P6R::P6ARGFLAGS.
P6WCHAR m_precisionPad
The character to use to pad out to the width for wide output.
P6SIZE P6ATOM
Atom type see P6R::p6IAtom in p6com.h.
I18n files directory (string tables, langtag mappings etc)
const P6BWCSTR * m_bwcstr
Format a P6TIME as mm/dd/yyyy hh:mm:ss.000000000 or an ISO860 or RFC822 date if the P6AFL_ISO860 or P...
Format a P6TIME as an ISO 860 date, only valid for an P6ARGTYPE of P6AT_TIME.
P6SIZE length
Length of data in bytes.
Format unsigned integer types as string in Bytes/KiloBytes/MegaBytes/GigaBytes etc automatically appe...
P6UINT16 timeMid
(2*octet) time_mid
P6SIZE length
Length of data in characters.
const P6UCHAR * pString
Pointer to const data.
Format as a octal number.
Single byte unsigned character, transform based on P6AFL_UPPERCASE/P6AFL_LOWERCASE flags...
Single wide character, transform based on P6AFL_UPPERCASE/P6AFL_LOWERCASE flags.
struct P6R::P6AUTO_INT32 P6AUTO_INT32
Auto initializing INT32.
wchar_t P6WCHAR
Wide character type see p6i18n.h.
P6ARGTYPE m_nType
Type of argument (see P6R::P6ARGTYPE)
Narrow const binary string, transform based on P6AFL_UPPERCASE/P6AFL_LOWERCASE flags.
P6BOOL renders as 'true' or 'false'.
P6UINT32 P6BTFLAGS
Runtime API Types.
P6UUID P6CATID
A category ID.
A structure that is used to describe a specified time.
P6UINT16 timeHighVer
(2*octet) time_high_and_version
P6INT32 dstoff
Daylight saving time offset in seconds.
This defines which directory data should be written into.
P6DIRS
This enumeration defines the directories which can be retrieved using the p6GetDirectory() API...
const P6WCHAR * pString
Pointer to wide const string data.
Narrow binary string, transform based on P6AFL_UPPERCASE/P6AFL_LOWERCASE flags.
P6WCHAR * pString
Pointer to wide string data.
Format a P6INTERVAL as 00:00:00.000000000 or an ISO860 duration if the P6AFL_ISO860 flag is specified...
Single byte signed character, transform based on P6AFL_UPPERCASE/P6AFL_LOWERCASE flags.
P6SIZE length
Length of data in wide characters.
const P6CHAR * pString
Pointer to narrow const string data.
Pointer to an unsigned char string, transform based on P6AFL_UPPERCASE/P6AFL_LOWERCASE flags...
The directory in which the executable that started the process is located.
Format data as a multi-line hex dump, 16 bytes/line with leading offset, hexdata, followed by ascii...
A universally unique indentifier (UUID).
const P6UCHAR * m_ucharptr
Converts the specified P6ERR to it's string representation.
P6INT32 tzoff
Offset from GMT in seconds.
P6INT32 seconds
[0 - 61] where the values 60 and 61 are for accommodating up to two leap seconds. ...
P6UINT32 P6ERR
COM err return type see P6ERR.h.
P6INT32 year
Absolute year.
Pointer to a signed char string, transform based on P6AFL_UPPERCASE/P6AFL_LOWERCASE flags...
P6WCHAR m_fieldPad
The character to use to pad out to the width for wide output.
P6INT64 P6TIME
The wallclock time represented as the number of microseconds since midnight January 1 1970 UTC...
Wide binary string, transform based on P6AFL_UPPERCASE/P6AFL_LOWERCASE flags.
P6INT16 dayOfWeek
[0 - 6] where 0 == Sunday
P6UCHAR * pString
Pointer to data.
P6SIZE length
Length of data in wide characters.
P6UINT16 m_fieldWidth
Controls the minimum width of the regedered argument.
P6ARGTYPE
P6ARG Argument types.
P6INT16 month
[0 - 11] where 0 == January
const P6NETADDR * m_netAddr
P6INT32 useconds
[0 - 999999] Microseconds past seconds
The directory containing log files.
P6INT16 m_precision
Contols precision of numeric output types.
char P6CHAR
Narrow character type.
P6INT32 hour
[0 - 23] 24 hour clock