33 #if P6SIZEOF_SHORT == 2
37 #error Unable to find an appropriate type for P6UINT16 and P6INT16
42 #elif P6SIZEOF_LONG == 4
46 #error Unable to find an appropriate type for P6UINT32 and P6INT32
48 #if P6SIZEOF_LONGLONG == 8
52 #error Unable to find an appropriate type for P6UINT64 and P6INT64
80 #define P6TEXT(t) L ## t
81 #define P6CTEXT(t) (const P6R::P6WCHAR*) L ## t
82 #define P6CHR(c) L ## c
83 #define P6CCHR(c) (const P6R::P6WCHAR) L ## c
84 #define P6CHARCNT(x) (sizeof((x))/sizeof((x)[0]))
85 #define P6CNTOF P6CHARCNT
87 #if defined(__GNUC__) || defined(__SUNPRO_CC)
88 #define P6I64(v) v##LL
89 #define P6U64(v) v##ULL
91 #define P6I64(v) v##i64
92 #define P6U64(v) v##ui64
139 #define P6UUID_STR_SIZE 39
254 typedef P6UINT64 P6INTERVAL;
263 } P6EXPANDEDINTERVAL;
283 #define P6_NSEC_PER_USEC 1000UL
286 #define P6_NSEC_PER_MSEC 1000000UL
289 #define P6_NSEC_PER_SEC 1000000000UL
292 #define P6_USEC_PER_MSEC 1000UL
295 #define P6_USEC_PER_SEC 1000000UL
298 #define P6_MSEC_PER_SEC 1000UL
300 #define P6_SEC_PER_HOUR 3600UL
302 #define P6_SEC_PER_DAY 86400UL
365 const BUILDFLAGS P6BF_NONE = 0x00000000;
366 const BUILDFLAGS P6BF_DEBUG = 0x00000001;
367 const BUILDFLAGS P6BF_RETAIL = 0x00000002;
368 const BUILDFLAGS P6BF_ALPHA = 0x00000004;
369 const BUILDFLAGS P6BF_BETA = 0x00000008;
370 const BUILDFLAGS P6BF_RELEASE = 0x00000010;
371 const BUILDFLAGS P6BF_INTERNAL = 0x00000020;
372 const BUILDFLAGS P6BF_LOADER = 0x00000100;
374 const BUILDFLAGS P6BF_BUILDMODE_MASK = 0x00000003;
375 const BUILDFLAGS P6BF_RELEASETYPE_MASK= 0x0000003c;
378 const VERMAGIC P6VI_MAGIC1 = 0x18436572;
379 const VERMAGIC P6VI_MAGIC2 = 0x011951dc;
384 P6R::P6VERSION productver;
385 P6R::P6VERSION filever;
410 #define P6MAX_LOCALE_LEN 64
417 #define P6SAFESTR_MAX_CCH 2147483647
489 static const P6ARGFLAGS P6AFL_NOFLAGS = 0x00000000;
490 static const P6ARGFLAGS P6AFL_LEFTALIGN = 0x00000001;
491 static const P6ARGFLAGS P6AFL_CENTER = 0x00000002;
492 static const P6ARGFLAGS P6AFL_SIGN = 0x00000004;
493 static const P6ARGFLAGS P6AFL_ADDPORT = 0x00000008;
494 static const P6ARGFLAGS P6AFL_ISO860 = 0x00000010;
495 static const P6ARGFLAGS P6AFL_RFC822 = 0x00000020;
496 static const P6ARGFLAGS P6AFL_LOCALTIME = 0x00000040;
497 static const P6ARGFLAGS P6AFL_TRUNCATE = 0x00000080;
498 static const P6ARGFLAGS P6AFL_UPPERCASE = 0x00000100;
499 static const P6ARGFLAGS P6AFL_LOWERCASE = 0x00000200;
552 #define P6ARGINPLACE_INIT(type,fieldWidth,precision,precisionPad,fieldPad,format,flags,data) \
553 {(type),(fieldWidth),(precision),(precisionPad),(fieldPad),(format),(flags),{(data)}}
555 #define P6ARGINIT(arg,nType,fmt,fieldWidth,precision,flags,fieldPad,precisionPad) \
556 (arg)->m_nType = (nType); \
557 (arg)->m_fieldWidth = (fieldWidth); \
558 (arg)->m_precision = (precision); \
559 (arg)->m_precisionPad = (precisionPad); \
560 (arg)->m_fieldPad = (fieldPad); \
561 (arg)->m_fFlags = (flags); \
562 (arg)->m_nFormat = (fmt); \
563 (arg)->m_uint64 = P6I64(0)
565 #define P6ARGINITBOOLEX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6R::P6AT_BOOL,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->m_bool = (data)
566 #define P6ARGINITCHAREX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6R::P6AT_CHAR,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->m_char = (data)
567 #define P6ARGINITCHARPTREX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6R::P6AT_CHARPTR,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->m_charptr = (data)
568 #define P6ARGINITUCHAREX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6R::P6AT_UCHAR,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->m_uchar = (data)
569 #define P6ARGINITWCHAREX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6R::P6AT_WCHAR,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->m_wchar = (data)
570 #define P6ARGINITWCHARPTREX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6R::P6AT_WCHARPTR,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->m_wcharptr = (data)
571 #define P6ARGINITPTREX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6R::P6AT_PTR,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->m_voidptr = (data)
572 #define P6ARGINITINT8EX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6R::P6AT_INT8,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->m_int8 = (data)
573 #define P6ARGINITUINT8EX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6R::P6AT_UINT8,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->m_uint8 = (data)
574 #define P6ARGINITINT16EX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6R::P6AT_INT16,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->m_int16 = (data)
575 #define P6ARGINITUINT16EX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6R::P6AT_UINT16,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->m_uint16 = (data)
576 #define P6ARGINITINT32EX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6R::P6AT_INT32,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->m_int32 = (data)
577 #define P6ARGINITUINT32EX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6R::P6AT_UINT32,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->m_uint32 = (data)
578 #define P6ARGINITINT64EX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6R::P6AT_INT64,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->m_int64 = (data)
579 #define P6ARGINITUINT64EX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6R::P6AT_UINT64,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->m_uint64 = (data)
580 #define P6ARGINITSHORTEX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6R::P6AT_SHORT,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->m_short = (data)
581 #define P6ARGINITUSHORTEX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6R::P6AT_USHORT,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->m_ushort = (data)
582 #define P6ARGINITINTEX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6R::P6AT_INT,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->m_int = (data)
583 #define P6ARGINITUINTEX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6R::P6AT_UINT,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->m_uint = (data)
584 #define P6ARGINITLONGEX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6R::P6AT_LONG,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->m_long = (data)
585 #define P6ARGINITULONGEX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6R::P6AT_ULONG,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->m_ulong = (data)
586 #define P6ARGINITSIZEEX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6R::P6AT_SIZE,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->m_sizet = (data)
587 #define P6ARGINITTHREADIDEX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6R::P6AT_THREADID,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->m_hThread = (data)
588 #define P6ARGINITERREX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6R::P6AT_ERR,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->m_err = (data)
589 #define P6ARGINITUUIDEX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6R::P6AT_UUID,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->m_uuid = (data)
590 #define P6ARGINITCATIDEX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6R::P6AT_CATID,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->m_catid = (data)
591 #define P6ARGINITNETADDREX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6R::P6AT_NETADDR,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->m_netAddr = (data)
592 #define P6ARGINITTIMEEX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6R::P6AT_TIME,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->m_time = (data)
593 #define P6ARGINITINTERVALEX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6R::P6AT_INTERVAL,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->m_tInterval = (data)
594 #define P6ARGINITFLOATEX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6R::P6AT_FLOAT,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->m_float = (data)
595 #define P6ARGINITBSTREX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6R::P6AT_BSTR,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->m_bstr = (data)
596 #define P6ARGINITBWSTREX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6R::P6AT_BWSTR,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->m_bwstr = (data)
597 #define P6ARGINITBCSTREX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6R::P6AT_BCSTR,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->m_bcstr = (data)
598 #define P6ARGINITBWCSTREX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad) P6ARGINIT((arg),P6R::P6AT_BWCSTR,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad)); (arg)->m_bwcstr = (data)
600 #define P6AI_BOOL(arg,data) P6ARGINITBOOLEX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_NOFLAGS,0,0)
601 #define P6AI_BOOL_HEXL(arg,data) P6ARGINITBOOLEX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_LOWERCASE,0,0)
602 #define P6AI_BOOL_HEXU(arg,data) P6ARGINITBOOLEX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_UPPERCASE,0,0)
603 #define P6AI_BOOL_DEC(arg,data) P6ARGINITBOOLEX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
605 #define P6AI_CHAR(arg,data) P6ARGINITCHAREX(arg,data,P6R::P6AF_CHAR,0,0,P6R::P6AFL_NOFLAGS,0,0)
606 #define P6AI_CHAR_HEXL(arg,data) P6ARGINITCHAREX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_LOWERCASE,0,0)
607 #define P6AI_CHAR_HEXU(arg,data) P6ARGINITCHAREX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_UPPERCASE,0,0)
608 #define P6AI_CHAR_DEC(arg,data) P6ARGINITCHAREX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
609 #define P6AI_CHAR_OCT(arg,data) P6ARGINITCHAREX(arg,data,P6R::P6AF_OCT,0,0,P6R::P6AFL_NOFLAGS,0,0)
610 #define P6AI_CHAR_UPR(arg,data) P6ARGINITCHAREX(arg,data,P6R::P6AF_CHAR,0,0,P6R::P6AFL_UPPERCASE,0,0)
611 #define P6AI_CHAR_LWR(arg,data) P6ARGINITCHAREX(arg,data,P6R::P6AF_CHAR,0,0,P6R::P6AFL_LOWERCASE,0,0)
613 #define P6AI_CHARPTR(arg,data) P6ARGINITCHARPTREX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_NOFLAGS,0,0)
614 #define P6AI_CHARPTR_HEXL(arg,data) P6ARGINITCHARPTREX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_LOWERCASE,0,0)
615 #define P6AI_CHARPTR_HEXU(arg,data) P6ARGINITCHARPTREX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_UPPERCASE,0,0)
616 #define P6AI_CHARPTR_DEC(arg,data) P6ARGINITCHARPTREX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
617 #define P6AI_CHARPTR_UPR(arg,data) P6ARGINITCHARPTREX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_UPPERCASE,0,0)
618 #define P6AI_CHARPTR_LWR(arg,data) P6ARGINITCHARPTREX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_LOWERCASE,0,0)
619 #define P6AI_CHARPTR_HEXSTR(arg,data) P6ARGINITCHARPTREX(arg,data,P6R::P6AF_HEXSTR,0,0,P6R::P6AFL_LOWERCASE,0,0)
620 #define P6AI_CHARPTR_HEXDUMP(arg,data) P6ARGINITCHARPTREX(arg,data,P6R::P6AF_HEXDUMP,0,0,P6R::P6AFL_NOFLAGS,0,0)
622 #define P6AI_UCHAR(arg,data) P6ARGINITUCHAREX(arg,data,P6R::P6AF_CHAR,0,0,P6R::P6AFL_NOFLAGS,0,0)
623 #define P6AI_UCHAR_HEXL(arg,data) P6ARGINITUCHAREX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_LOWERCASE,0,0)
624 #define P6AI_UCHAR_HEXU(arg,data) P6ARGINITUCHAREX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_UPPERCASE,0,0)
625 #define P6AI_UCHAR_DEC(arg,data) P6ARGINITUCHAREX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
626 #define P6AI_UCHAR_OCT(arg,data) P6ARGINITUCHAREX(arg,data,P6R::P6AF_OCT,0,0,P6R::P6AFL_NOFLAGS,0,0)
627 #define P6AI_UCHAR_UPR(arg,data) P6ARGINITUCHAREX(arg,data,P6R::P6AF_CHAR,0,0,P6R::P6AFL_UPPERCASE,0,0)
628 #define P6AI_UCHAR_LWR(arg,data) P6ARGINITUCHAREX(arg,data,P6R::P6AF_CHAR,0,0,P6R::P6AFL_LOWERCASE,0,0)
630 #define P6AI_WCHAR(arg,data) P6ARGINITWCHAREX(arg,data,P6R::P6AF_CHAR,0,0,P6R::P6AFL_NOFLAGS,0,0)
631 #define P6AI_WCHAR_HEXL(arg,data) P6ARGINITWCHAREX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_LOWERCASE,0,0)
632 #define P6AI_WCHAR_HEXU(arg,data) P6ARGINITWCHAREX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_UPPERCASE,0,0)
633 #define P6AI_WCHAR_DEC(arg,data) P6ARGINITWCHAREX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
634 #define P6AI_WCHAR_UPR(arg,data) P6ARGINITWCHAREX(arg,data,P6R::P6AF_CHAR,0,0,P6R::P6AFL_UPPERCASE,0,0)
635 #define P6AI_WCHAR_LWR(arg,data) P6ARGINITWCHAREX(arg,data,P6R::P6AF_CHAR,0,0,P6R::P6AFL_LOWERCASE,0,0)
637 #define P6AI_WCHARPTR(arg,data) P6ARGINITWCHARPTREX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_NOFLAGS,0,0)
638 #define P6AI_WCHARPTR_HEXL(arg,data) P6ARGINITWCHARPTREX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_LOWERCASE,0,0)
639 #define P6AI_WCHARPTR_HEXU(arg,data) P6ARGINITWCHARPTREX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_UPPERCASE,0,0)
640 #define P6AI_WCHARPTR_DEC(arg,data) P6ARGINITWCHARPTREX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
641 #define P6AI_WCHARPTR_UPR(arg,data) P6ARGINITWCHARPTREX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_UPPERCASE,0,0)
642 #define P6AI_WCHARPTR_LWR(arg,data) P6ARGINITWCHARPTREX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_LOWERCASE,0,0)
643 #define P6AI_WCHARPTR_HEXSTR(arg,data) P6ARGINITWCHARPTREX(arg,data,P6R::P6AF_HEXSTR,0,0,P6R::P6AFL_LOWERCASE,0,0)
644 #define P6AI_WCHARPTR_HEXDUMP(arg,data) P6ARGINITWCHARPTREX(arg,data,P6R::P6AF_HEXDUMP,0,0,P6R::P6AFL_NOFLAGS,0,0)
646 #define P6AI_PTR(arg,data) P6ARGINITPTREX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_LOWERCASE,0,0)
647 #define P6AI_PTR_DEC(arg,data) P6ARGINITPTREX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
649 #define P6AI_INT8(arg,data) P6ARGINITINT8EX(atg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
650 #define P6AI_INT8_HEXL(arg,data) P6ARGINITINT8EX(atg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_LOWERCASE,0,0)
651 #define P6AI_INT8_HEXU(arg,data) P6ARGINITINT8EX(atg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_UPPERCASE,0,0)
653 #define P6AI_UINT8(arg,data) P6ARGINITUINT8EX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
654 #define P6AI_UINT8_HEXL(arg,data) P6ARGINITUINT8EX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_LOWERCASE,0,0)
655 #define P6AI_UINT8_HEXU(arg,data) P6ARGINITUINT8EX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_UPPERCASE,0,0)
657 #define P6AI_INT16(arg,data) P6ARGINITINT16EX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
658 #define P6AI_INT16_HEXL(arg,data) P6ARGINITINT16EX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_LOWERCASE,0,0)
659 #define P6AI_INT16_HEXU(arg,data) P6ARGINITINT16EX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_UPPERCASE,0,0)
661 #define P6AI_UINT16(arg,data) P6ARGINITUINT16EX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
662 #define P6AI_UINT16_HEXL(arg,data) P6ARGINITUINT16EX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_LOWERCASE,0,0)
663 #define P6AI_UINT16_HEXU(arg,data) P6ARGINITUINT16EX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_UPPERCASE,0,0)
665 #define P6AI_INT32(arg,data) P6ARGINITINT32EX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
666 #define P6AI_INT32_HEXL(arg,data) P6ARGINITINT32EX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_LOWERCASE,0,0)
667 #define P6AI_INT32_HEXU(arg,data) P6ARGINITINT32EX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_UPPERCASE,0,0)
669 #define P6AI_UINT32(arg,data) P6ARGINITUINT32EX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
670 #define P6AI_UINT32_HEXL(arg,data) P6ARGINITUINT32EX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_LOWERCASE,0,0)
671 #define P6AI_UINT32_HEXU(arg,data) P6ARGINITUINT32EX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_UPPERCASE,0,0)
673 #define P6AI_INT64(arg,data) P6ARGINITINT64EX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
674 #define P6AI_INT64_HEXL(arg,data) P6ARGINITINT64EX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_LOWERCASE,0,0)
675 #define P6AI_INT64_HEXU(arg,data) P6ARGINITINT64EX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_UPPERCASE,0,0)
677 #define P6AI_UINT64(arg,data) P6ARGINITUINT64EX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
678 #define P6AI_UINT64_HEXL(arg,data) P6ARGINITUINT64EX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_LOWERCASE,0,0)
679 #define P6AI_UINT64_HEXU(arg,data) P6ARGINITUINT64EX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_UPPERCASE,0,0)
681 #define P6AI_SHORT(arg,data) P6ARGINITSHORTEX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
682 #define P6AI_SHORT_HEXL(arg,data) P6ARGINITSHORTEX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_LOWERCASE,0,0)
683 #define P6AI_SHORT_HEXU(arg,data) P6ARGINITSHORTEX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_UPPERCASE,0,0)
685 #define P6AI_USHORT(arg,data) P6ARGINITUSHORTEX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
686 #define P6AI_USHORT_HEXL(arg,data) P6ARGINITUSHORTEX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_LOWERCASE,0,0)
687 #define P6AI_USHORT_HEXU(arg,data) P6ARGINITUSHORTEX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_UPPERCASE,0,0)
689 #define P6AI_INT(arg,data) P6ARGINITINTEX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
690 #define P6AI_INT_HEXL(arg,data) P6ARGINITINTEX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_LOWERCASE,0,0)
691 #define P6AI_INT_HEXU(arg,data) P6ARGINITINTEX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_UPPERCASE,0,0)
693 #define P6AI_UINT(arg,data) P6ARGINITUINTEX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
694 #define P6AI_UINT_HEXL(arg,data) P6ARGINITUINTEX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_LOWERCASE,0,0)
695 #define P6AI_UINT_HEXU(arg,data) P6ARGINITUINTEX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_UPPERCASE,0,0)
697 #define P6AI_LONG(arg,data) P6ARGINITLONGEX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
698 #define P6AI_LONG_HEXL(arg,data) P6ARGINITLONGEX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_LOWERCASE,0,0)
699 #define P6AI_LONG_HEXU(arg,data) P6ARGINITLONGEX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_UPPERCASE,0,0)
701 #define P6AI_ULONG(arg,data) P6ARGINITULONGEX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
702 #define P6AI_ULONG_HEXL(arg,data) P6ARGINITULONGEX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_LOWERCASE,0,0)
703 #define P6AI_ULONG_HEXU(arg,data) P6ARGINITULONGEX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_UPPERCASE,0,0)
705 #define P6AI_SIZE(arg,data) P6ARGINITSIZEEX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
706 #define P6AI_SIZE_HEXL(arg,data) P6ARGINITSIZEEX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_LOWERCASE,0,0)
707 #define P6AI_SIZE_HEXU(arg,data) P6ARGINITSIZEEX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_UPPERCASE,0,0)
709 #define P6AI_THREADID(arg,data) P6ARGINITSIZEEX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
710 #define P6AI_THREADID_HEXL(arg,data) P6ARGINITSIZEEX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_LOWERCASE,0,0)
711 #define P6AI_THREADID_HEXU(arg,data) P6ARGINITSIZEEX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_UPPERCASE,0,0)
713 #define P6AI_FLOAT(arg,data) P6ARGINITFLOATEX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
715 #define P6AI_UUID(arg,data) P6ARGINITUUIDEX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_NOFLAGS,0,0)
716 #define P6AI_CATID(arg,data) P6ARGINITCATIDEX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_NOFLAGS,0,0)
718 #define P6AI_ERR(arg,data) P6ARGINITERREX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_NOFLAGS,0,0)
719 #define P6AI_ERR_HEXL(arg,data) P6ARGINITERREX(arg,data,P6R::P6AF_HEX,0,0,P6AFL_LOWERCASE,0,0)
720 #define P6AI_ERR_HEXU(arg,data) P6ARGINITERREX(arg,data,P6R::P6AF_HEX,0,0,P6AFL_UPPERCASE,0,0)
721 #define P6AI_ERR_DEC(arg,data) P6ARGINITERREX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
723 #define P6AI_NETADDR(arg,data) P6ARGINITNETADDREX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_NOFLAGS,0,0)
724 #define P6AI_NETADDRPORT(arg,data) P6ARGINITNETADDREX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_ADDPORT,0,0)
726 #define P6AI_INTERVAL(arg,data) P6ARGINITINTERVALEX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_NOFLAGS,0,0)
727 #define P6AI_INTERVAL_ISO860(arg,data) P6ARGINITINTERVALEX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_ISO860,0,0)
728 #define P6AI_INTERVAL_DEC(arg,data) P6ARGINITINTERVALEX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
729 #define P6AI_INTERVAL_HEXL(arg,data) P6ARGINITINTERVALEX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_LOWERCASE,0,0)
730 #define P6AI_INTERVAL_HEXU(arg,data) P6ARGINITINTERVALEX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_UPPERCASE,0,0)
732 #define P6AI_TIME(arg,data) P6ARGINITTIMEEX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_NOFLAGS,0,0)
733 #define P6AI_TIME_ISO860(arg,data) P6ARGINITTIMEEX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_ISO860,0,0)
734 #define P6AI_TIME_ISO860_LOCAL(arg,data) P6ARGINITTIMEEX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_ISO860|P6AFL_LOCALTIME,0,0)
735 #define P6AI_TIME_RFC822(arg,data) P6ARGINITTIMEEX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_RFC822,0,0)
736 #define P6AI_TIME_DEC(arg,data) P6ARGINITTIMEEX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
737 #define P6AI_TIME_HEXL(arg,data) P6ARGINITTIMEEX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_LOWERCASE,0,0)
738 #define P6AI_TIME_HEXU(arg,data) P6ARGINITTIMEEX(arg,data,P6R::P6AF_HEX,0,0,P6R::P6AFL_UPPERCASE,0,0)
740 #define P6AI_BSTR(arg,data) P6ARGINITBSTREX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_NOFLAGS,0,0)
741 #define P6AI_BSTR_UPR(arg,data) P6ARGINITBSTREX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_UPPERCASE,0,0)
742 #define P6AI_BSTR_LWR(arg,data) P6ARGINITBSTREX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_LOWERCASE,0,0)
743 #define P6AI_BSTR_HEXSTR(arg,data) P6ARGINITBSTREX(arg,data,P6R::P6AF_HEXSTR,0,0,P6R::P6AFL_LOWERCASE,0,0)
744 #define P6AI_BSTR_HEXDUMP(arg,data) P6ARGINITBSTREX(arg,data,P6R::P6AF_HEXDUMP,0,0,P6R::P6AFL_NOFLAGS,0,0)
746 #define P6AI_BWSTR(arg,data) P6ARGINITBWSTREX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_NOFLAGS,0,0)
747 #define P6AI_BWSTR_UPR(arg,data) P6ARGINITBWSTREX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_UPPERCASE,0,0)
748 #define P6AI_BWSTR_LWR(arg,data) P6ARGINITBWSTREX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_LOWERCASE,0,0)
749 #define P6AI_BWSTR_HEXSTR(arg,data) P6ARGINITBWSTREX(arg,data,P6R::P6AF_HEXSTR,0,0,P6R::P6AFL_LOWERCASE,0,0)
750 #define P6AI_BWSTR_HEXDUMP(arg,data) P6ARGINITBWSTREX(arg,data,P6R::P6AF_HEXDUMP,0,0,P6R::P6AFL_NOFLAGS,0,0)
752 #define P6AI_BCSTR(arg,data) P6ARGINITBCSTREX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_NOFLAGS,0,0)
753 #define P6AI_BCSTR_UPR(arg,data) P6ARGINITBCSTREX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_UPPERCASE,0,0)
754 #define P6AI_BCSTR_LWR(arg,data) P6ARGINITBCSTREX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_LOWERCASE,0,0)
755 #define P6AI_BCSTR_HEXSTR(arg,data) P6ARGINITBCSTREX(arg,data,P6R::P6AF_HEXSTR,0,0,P6R::P6AFL_LOWERCASE,0,0)
756 #define P6AI_BCSTR_HEXDUMP(arg,data) P6ARGINITBCSTREX(arg,data,P6R::P6AF_HEXDUMP,0,0,P6R::P6AFL_NOFLAGS,0,0)
758 #define P6AI_BWCSTR(arg,data) P6ARGINITBWCSTREX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_NOFLAGS,0,0)
759 #define P6AI_BWCSTR_UPR(arg,data) P6ARGINITBWCSTREX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_UPPERCASE,0,0)
760 #define P6AI_BWCSTR_LWR(arg,data) P6ARGINITBWCSTREX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_LOWERCASE,0,0)
761 #define P6AI_BWCSTR_HEXSTR(arg,data) P6ARGINITBWCSTREX(arg,data,P6R::P6AF_HEXSTR,0,0,P6R::P6AFL_LOWERCASE,0,0)
762 #define P6AI_BWCSTR_HEXDUMP(arg,data) P6ARGINITBWCSTREX(arg,data,P6R::P6AF_HEXDUMP,0,0,P6R::P6AFL_NOFLAGS,0,0)
774 #define P6HEXDUMP_OFFSETSZ 11
775 #define P6HEXDUMP_ASCIISEPSZ 2
776 #define P6HEXDUMP_CHARSPERBYTE 6
782 # define interface struct
801 #define P6IIDOF(iface) ((const P6R::IID) IF_##iface)
810 #define P6DECLARE_IID(iface) static const P6R::IID IID_##iface = IF_##iface
817 #define P6DECLARE_CID(component) static const P6R::CID CID_##component = COMP_##component
823 #define P6DECLARE_CATID(category) static const P6R::CATID CATID_##category = CAT_##category
827 # define xEXPORT __declspec(dllexport)
828 # define xIMPORT __declspec(dllimport)
829 # define xSTDCALL __stdcall
830 # define xCCALL __cdecl
831 #elif defined(__GNUC__) && ((__GNUC__ ==3) && (__GNUC_MINOR__ >= 4) && (__GNUC_PATCHLEVEL__ >= 4))
832 # define xNOEXPORT __attribute__ ((visibility ("hidden")))
833 # define xEXPORT __attribute__ ((visibility ("default")))
834 # define xIMPORT __attribute__ ((visibility ("default")))
839 # define xSTDCALL __attribute__ ((__stdcall__))
844 # define xCCALL __attribute__ ((__cdecl__))
845 #elif defined(__GNUC__) && (__GNUC__ ==4)
847 # define xEXPORT __attribute__ ((visibility ("default")))
848 # define xIMPORT __attribute__ ((visibility ("default")))
850 # define xSTDCALL __attribute__ ((__stdcall__))
851 # define xCCALL __attribute__ ((__cdecl__))
856 #elif defined(__SUNPRO_CC)
857 # define xNOEXPORT __hidden
858 # define xEXPORT __global
863 #error "Unsupported/Unknown platform - unable to define function call and visibility defines"
866 #define P6NOEXPORT xNOEXPORT
867 #define P6EXPORT xEXPORT
868 #define P6IMPORT xIMPORT
869 #define P6STDCALL xSTDCALL
870 #define P6CCALL xCCALL
872 #define P6COMMETHOD virtual P6NOEXPORT P6R::P6ERR P6STDCALL
873 #define P6COMMETHOD_(type) virtual P6NOEXPORT type P6STDCALL
874 #define P6COMMETHODIMPL P6NOEXPORT P6R::P6ERR
875 #define P6COMVAMETHOD virtual P6NOEXPORT P6R::P6ERR P6CCALL
876 #define P6COMVAMETHODIMPL P6NOEXPORT P6R::P6ERR P6CCALL
880 #define P6CLASSMETHOD P6NOEXPORT P6R::P6ERR P6STDCALL
881 #define P6CLASSMETHODIMPL P6NOEXPORT P6R::P6ERR
888 #define P6INVALIDTHREADID ((P6R::P6THREADID)0)
890 #define P6MIN(a,b) (((a) < (b)) ? (a) : (b))
891 #define P6MAX(a,b) (((a) > (b)) ? (a) : (b))
893 #define P6WAITINFINITE (P6R::P6INTERVAL)-1
894 #define P6WAITNONE (P6R::P6INTERVAL)0
896 #define P6MAXPATH 4096
897 #define P6MAXHOSTNAME 1025
898 #define P6MAXOSNAMESTR 128
899 #define P6MAXVERSIONSTR 1024
900 #define P6MAXARCHSTR 64
901 #define P6MAXIPADDR 46
903 #define P6FILE __FILE__
904 #define P6LINE __LINE__
905 #define P6FILEANDLINE __FILE__,__LINE__
Wide const binary string, transform based on P6AFL_UPPERCASE/P6AFL_LOWERCASE flags.
const P6BTFLAGS BT_NODEMANGLE
Don't demangle symbols.
Format as hex encoded string, converts character values to hex.
P6INT32 useconds
[0 - 999999] Microseconds past seconds
struct P6R::P6AUTO_INT32 P6AUTO_INT32
Auto initializing INT32.
P6INT32 dstoff
Daylight saving time offset in seconds.
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.
P6INT16 m_precision
Contols precision of numeric output types.
P6WCHAR m_fieldPad
The character to use to pad out to the width for wide output.
Format as a decimal number.
const P6R::CATID * m_catid
P6UUID IID
An interface ID.
P6R::P6UINT32 P6BTFLAGS
Runtime API Types.
const P6R::P6BSTR * m_bstr
P6R::P6THREADID m_hThread
I18n files directory (string tables, langtag mappings etc)
Pointer to a P6NETADDR will print dotted quad by default.
P6INT16 month
[0 - 11] where 0 == January
const P6R::P6UCHAR * pString
Pointer to const data.
P6WCHAR * P6COMSTR
Standard COM length encoded string.
Pointer to a wide character string, transform based on P6AFL_UPPERCASE/P6AFL_LOWERCASE flags...
Wide Const binary string.
const P6R::P6UUID * m_uuid
The application launch directory.
P6R::P6INTERVAL m_tInterval
P6ARGFLAGS m_fFlags
See P6R::P6ARGFLAGS.
Format a P6TIME as an RFC 822 date, only valid for an P6ARGTYPE of P6AT_TIME.
P6INT32 year
Absolute year.
const P6R::P6UCHAR * m_ucharptr
P6INT32 seconds
[0 - 61] where the values 60 and 61 are for accommodating up to two leap seconds. ...
P6UUID CATID
A category ID.
P6SIZE P6ATOM
Atom type see P6R::p6IAtom in p6com.h.
P6INT32 tzoff
Offset from GMT in seconds.
Format a P6TIME as mm/dd/yyyy hh:mm:ss.000000000 or an ISO860 or RFC822 date if the P6AFL_ISO860 or P...
P6R::P6SIZE length
Length of data in bytes.
Format a P6TIME as an ISO 860 date, only valid for an P6ARGTYPE of P6AT_TIME.
The directory containing log files.
P6R::P6SIZE length
Length of data in wide characters.
Format as a octal number.
P6R::P6UINT16 timeHighVer
(2*octet) time_high_and_version
const P6BTFLAGS BT_FMTXML
Output format XML (no xml tag)
P6ARGTYPE m_nType
Type of argument (see P6R::P6ARGTYPE)
P6R::P6WCHAR * pString
Pointer to wide string data.
Single byte unsigned character, transform based on P6AFL_UPPERCASE/P6AFL_LOWERCASE flags...
unsigned short int P6UINT16
Single wide character, transform based on P6AFL_UPPERCASE/P6AFL_LOWERCASE flags.
wchar_t P6WCHAR
Wide character type see p6i18n.h.
Narrow const binary string, transform based on P6AFL_UPPERCASE/P6AFL_LOWERCASE flags.
const P6R::P6VOID * m_voidptr
P6BOOL renders as 'true' or 'false'.
const P6BTFLAGS BT_NOFLAGS
This defines where the runtime stores license files.
A structure that is used to describe a specified time.
P6R::P6SIZE length
Length of data in characters.
const P6R::P6NETADDR * m_netAddr
const P6R::P6BWSTR * m_bwstr
const P6R::P6BCSTR * m_bcstr
Narrow binary string, transform based on P6AFL_UPPERCASE/P6AFL_LOWERCASE flags.
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.
const P6R::P6WCHAR * pString
Pointer to wide const string data.
Pointer to an unsigned char string, transform based on P6AFL_UPPERCASE/P6AFL_LOWERCASE flags...
P6UUID CID
A component ID.
Format data as a multi-line hex dump, 16 bytes/line with leading offset, hexdata, followed by ascii...
A universally unique indentifier (UUID).
Converts the specified P6ERR to it's string representation.
const P6BTFLAGS BT_FMTCSV
Output format comma separated.
P6INT16 dayOfMonth
[1 - 31]
P6R::P6UINT16 timeMid
(2*octet) time_mid
P6UINT32 P6ERR
COM err return type see P6ERR.h.
const P6R::P6WCHAR * m_wcharptr
P6R::P6SIZE length
Length of data in bytes.
P6R::P6UINT32 timeLow
(4*octet) time_low
P6WCHAR m_precisionPad
The character to use to pad out to the width for wide output.
P6INT16 dayOfYear
[0 - 365] days since January 1
P6INT32 hour
[0 - 23] 24 hour clock
Pointer to a signed char string, transform based on P6AFL_UPPERCASE/P6AFL_LOWERCASE flags...
P6R::P6SIZE length
Length of data in wide characters.
This defines which directory data should be written into.
P6INT64 P6TIME
The wallclock time represented as the number of microseconds since midnight January 1 1970 UTC...
const P6R::P6BWCSTR * m_bwcstr
const P6R::P6CHAR * pString
Pointer to narrow const string data.
Wide binary string, transform based on P6AFL_UPPERCASE/P6AFL_LOWERCASE flags.
P6SIZE P6THREADID
Defines a thread identifier.
P6UINT16 m_fieldWidth
Controls the minimum width of the regedered argument.
const P6R::P6CHAR * m_charptr
const P6BTFLAGS BT_ADDPATHS
Include module path.
P6ARGFMT m_nFormat
Specified how the argument should be renedered (see P6R::P6ARGFMT)
P6ARGTYPE
P6ARG Argument types.
P6R::P6UCHAR * pString
Pointer to data.
P6DIRS
This enumeration defines the directories which can be retrieved using the p6GetDirectory() API...
P6INT16 dayOfWeek
[0 - 6] where 0 == Sunday
char P6CHAR
Narrow character type.