Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
p6runtimeif.h
Go to the documentation of this file.
1 
13 #ifndef P6RUNTIMEIF_H__
14 #define P6RUNTIMEIF_H__ 1
15 
16 #include "p6err.h"
17 #include "p6comdef.h"
18 
19 namespace P6R {
20 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24 
29 
31  #define P6INVALIDATOM (P6R::P6ATOM)0
32 
40  interface p6IAtom : p6ICom
41  {
53  P6COMMETHOD addAtom(const P6R::P6CHAR *pszString,P6ATOM *pAtom) = 0;
54 
68  P6COMMETHOD getAtomString(P6ATOM atom,P6R::P6CHAR *pBuffer,P6R::P6SIZE *pcBuffer) = 0;
69 
79  P6COMMETHOD removeAtom(P6ATOM atom) = 0;
80  };
81 
83  #define IF_p6IAtom {0x32804623,0x1DCD,0x4103,{0xB2,0x30,0x4A,0xCE,0x1F,0x2B,0xC6,0x5F}}
84 
85 
86 
87 
93  interface p6IEnumCategories : p6ICom
94  {
112  P6COMMETHOD next(P6R::P6UINT32 cElements,P6R::CATID *parElements,P6R::P6UINT32 *pcReturned) = 0;
113 
122  P6COMMETHOD reset() = 0;
123  };
124  #define IF_p6IEnumCategories {0x0BE1E15B,0xF964,0x4be4,{0x8E,0x71,0xA3,0xE2,0x98,0xA2,0xD5,0x35}}
125 
131  interface p6IEnumCategoryComponents : p6ICom
132  {
150  P6COMMETHOD next(P6R::P6UINT32 cElements,P6R::CID *parElements,P6R::P6UINT32 *pcReturned) = 0;
151 
160  P6COMMETHOD reset() = 0;
161  };
162  #define IF_p6IEnumCategoryComponents {0xACD65F14,0xD83E,0x4cb2,{0x8C,0x8A,0x38,0x47,0x11,0x84,0x8F,0x7A}}
163 
191  interface p6ICategoryMgr : p6ICom
192  {
206  P6COMMETHOD addCategory(const P6R::CATID& catid,const P6R::P6WCHAR *pszName) = 0;
207 
211  P6COMMETHOD removeCategory(const P6R::CATID& catid) = 0;
212 
216  P6COMMETHOD enumCategories(p6IEnumCategories **ppEnum) = 0;
217 
222  P6COMMETHOD addCategoryComponent(const P6R::CATID& catid,const P6R::P6WCHAR *pszName,const P6R::CID &cid) = 0;
223 
227  P6COMMETHOD removeCategoryComponent(const P6R::CATID& catid,const P6R::CID &cid) = 0;
228 
232  P6COMMETHOD enumCategoryComponents(const P6R::CATID& catid,P6R::p6IEnumCategoryComponents **ppEnum) = 0;
233  };
234  #define IF_p6ICategoryMgr {0x40768F08,0x4107,0x42ca,{0x9D,0x73,0x8B,0x1E,0xCD,0x03,0xCD,0x62}}
235 
249  interface p6IComponentMgr : p6ICom
250  {
265  P6COMMETHOD getComponentFactory(const P6R::CID &cid,const P6R::IID &iid,P6R::P6VOID **ppIface) = 0;
266 
287  P6COMMETHOD createInstance(P6R::p6ICom *pOuter,const P6R::CID &cid,const P6R::IID &iid,P6R::P6VOID **ppIface) = 0;
288  };
289  #define IF_p6IComponentMgr {0x17e66188, 0xf9ae, 0x437e, {0xac, 0x8b, 0xbf, 0x73, 0xa8, 0xa7, 0x28, 0x96}}
290 
291 
292 
293 
294 
301  typedef enum {
302  ICSS_STARTING,
303  ICSS_RUNNING,
304  ICSS_STOPPING,
305  ICSS_STOPPED,
306  ICSS_MAX
307  } ICSS;
308 
309  #define MAX_SERVICE_NAME 32
310 
311 
312  typedef struct {
313  P6R::ICSS m_nState;
314  P6R::CID m_componentID;
315  P6R::P6UINT16 m_loadOrder;
316  P6R::P6WCHAR m_szName[MAX_SERVICE_NAME];
317  } P6SERVICEINFO;
318 
325  interface p6IEnumServices : p6ICom
326  {
346  P6COMMETHOD next(P6R::P6UINT32 cElements,P6R::P6SERVICEINFO *parElements,P6R::P6UINT32 *pcReturned) = 0;
347 
356  P6COMMETHOD reset() = 0;
357  };
358 
359 
365  interface p6IEnvironment : p6ICom
366  {
383  P6COMMETHOD getEnv(const P6R::P6CHAR *pszName,P6R::P6CHAR *pBuffer,P6R::P6UINT32 *pcBuffer) = 0;
384 
401  P6COMMETHOD getEnvW(const P6R::P6WCHAR *pwszName,P6R::P6WCHAR *pBuffer,P6R::P6UINT32 *pcBuffer) = 0;
402 
403  };
404 
405  // {485D6B1E-A081-45b7-AF2A-520F528128C4}
406  #define IF_p6IEnvironment {0x485d6b1e,0xa081,0x45b7,{0xaf,0x2a,0x52,0xf,0x52,0x81,0x28,0xc4}}
407 
408 
409 
410 
411 
415  #define P6MAX_EVENTID_LEN 128
416 
417 
421  typedef P6R::P6VOID (*P6HANDLEEVENT)(const P6R::P6CHAR *pszEventId,P6R::P6VOID *pCtx,P6R::P6VOID *pData);
422 
429  interface p6IEventMgr : p6ICom
430  {
442  P6COMMETHOD registerForEvent(const P6R::P6CHAR *pszEventID,P6HANDLEEVENT pfnHandler,P6R::P6VOID *pCtx) = 0;
443 
456  P6COMMETHOD unregisterForEvent(const P6R::P6CHAR *pszEventID,P6HANDLEEVENT pfnHandler,P6R::P6VOID **ppCtx) = 0;
457 
469  P6COMMETHOD generateEvent(const P6R::P6CHAR *pszEventID,P6R::P6VOID *pData) = 0;
470  };
471  #define IF_p6IEventMgr {0xF2F9C170,0xA926,0x4864,{0x83,0x32,0xFE,0xA7,0xE4,0xBE,0xEB,0x0A}}
472 
473 
478  interface p6IServer : p6ICom
479  {
488  P6COMMETHOD wait() = 0;
489 
497  P6COMMETHOD shutdown() = 0;
498  };
499  // {0E94A85F-1C97-4036-B4F7-963B33509B09}
500  #define IF_p6IServer {0x0E94A85F,0x1C97,0x4036,{0xB4,0xF7,0x96,0x3B,0x33,0x50,0x9B,0x09}}
501 
502 
503 
511  interface p6IRunningIface : p6ICom
512  {
523  P6COMMETHOD registerInterface(P6R::P6ATOM atom,P6R::p6ICom *pIface) = 0;
524 
540  P6COMMETHOD findInterface(P6R::P6ATOM atom,const P6R::IID &iid,P6R::P6VOID **ppIface) = 0;
541 
561  P6COMMETHOD findInterfaceByString(const P6R::P6CHAR *pszIndentifier,const P6R::IID &iid,P6R::P6VOID **ppIface) = 0;
571  P6COMMETHOD unregisterInterface(P6R::P6ATOM atom) = 0;
572  };
574  #define IF_p6IRunningIface {0x393A85DF,0x7442,0x43ab,{0xA7,0xC7,0x52,0xD9,0x6C,0x53,0x47,0x12}}
575 
593  interface p6ISafeString : p6ICom
594  {
595 
616  P6COMMETHOD atol(const P6R::P6CHAR *pString,P6R::P6SIZE cchMax,P6R::P6INT32 *pRetLong) = 0;
617 
644  P6COMMETHOD atolEx(const P6R::P6CHAR *pString,P6R::P6SIZE cchMax,P6R::P6INT32 *pRetLong,P6R::P6CHAR **ppEndPtr) = 0;
645 
665  P6COMMETHOD atoll(const P6R::P6CHAR *pString,P6R::P6SIZE cchMax,P6R::P6INT64 *pRetLongLong) = 0;
666 
693  P6COMMETHOD atollEx(const P6R::P6CHAR *pString,P6R::P6SIZE cchMax,P6R::P6INT64 *pRetLongLong,P6R::P6CHAR **ppEndPtr) = 0;
694 
715  P6COMMETHOD atolW(const P6R::P6WCHAR *pString,P6R::P6SIZE cchMax,P6R::P6INT32 *pRetLong) = 0;
716 
717 
733  P6COMMETHOD bstrcmp(const P6R::P6BCSTR *s1,const P6R::P6BCSTR *s2,P6R::P6INT32 *pRetval) = 0;
734 
750  P6COMMETHOD bstricmp(const P6R::P6BCSTR *s1,const P6R::P6BCSTR *s2,P6R::P6INT32 *pRetval) = 0;
751 
771  P6COMMETHOD bstrncmp(const P6R::P6BCSTR *s1,const P6R::P6BCSTR *s2,P6R::P6SIZE nCount,P6R::P6INT32 *pRetval) = 0;
772 
792  P6COMMETHOD bstrnicmp(const P6R::P6BCSTR *s1,const P6R::P6BCSTR *s2,P6R::P6SIZE nCount,P6R::P6INT32 *pRetval) = 0;
793 
811  P6COMMETHOD bstrsubcmp(const P6R::P6BCSTR *s1,const P6R::P6BCSTR *s2,P6R::P6INT32 *pRetval) = 0;
812 
830  P6COMMETHOD bstrsubicmp(const P6R::P6BCSTR *s1,const P6R::P6BCSTR *s2,P6R::P6INT32 *pRetval) = 0;
831 
851  P6COMMETHOD bstrchr(const P6R::P6BCSTR *pbcsStr,P6R::P6INT16 c,P6R::P6BCSTR *pRetPtr) = 0;
852 
862  P6COMMETHOD bstrlwr(P6R::P6BSTR *pbsStr) = 0;
863 
883  P6COMMETHOD bstrrchr(const P6R::P6BCSTR *pbcsStr,P6R::P6INT16 c,P6R::P6BCSTR *pRetPtr) = 0;
884 
910  P6COMMETHOD bstrsep(P6R::P6BCSTR *pbcsSearchIn,const P6R::P6BCSTR *pbsDelimiters,P6R::P6BCSTR *pbcsToken) = 0;
911 
941  P6COMMETHOD bstrspn(P6R::P6BCSTR *pbcsSearchIn,const P6R::P6BCSTR *pbcsSearchSet,P6R::P6BCSTR *pbcsFound) = 0;
942 
957  P6COMMETHOD bstrbstr(const P6R::P6BCSTR *pbcsSearchIn,P6R::P6BCSTR const *pbcsSearchFor,P6R::P6BCSTR *pbcsFound) = 0;
958 
973  P6COMMETHOD bstribstr(const P6R::P6BCSTR *pbcsSearchIn,P6R::P6BCSTR const *pbcsSearchFor,P6R::P6BCSTR *pbcsFound) = 0;
974 
984  P6COMMETHOD bstrupr(P6R::P6BSTR *pbsStr) = 0;
985 
997  P6COMMETHOD bstrSetMem(P6R::P6BSTR *pMemory,P6R::P6INT nValue) = 0;
998 
1033  P6COMMETHOD bstrSetMemSecure(P6R::P6BSTR *pMemory,P6R::P6INT nValue) = 0;
1034 
1060  P6COMMETHOD bwstrsep(P6R::P6BWCSTR *pbcsSearchIn,const P6R::P6BWCSTR *pbsDelimiters,P6R::P6BWCSTR *pbcsToken) = 0;
1061 
1077  P6COMMETHOD bwstrcmp(const P6R::P6BWCSTR *s1,const P6R::P6BWCSTR *s2,P6R::P6INT32 *pRetval) = 0;
1078 
1094  P6COMMETHOD bwstricmp(const P6R::P6BWCSTR *s1,const P6R::P6BWCSTR *s2,P6R::P6INT32 *pRetval) = 0;
1095 
1115  P6COMMETHOD bwstrncmp(const P6R::P6BWCSTR *s1,const P6R::P6BWCSTR *s2,P6R::P6SIZE nCount,P6R::P6INT32 *pRetval) = 0;
1116 
1136  P6COMMETHOD bwstrnicmp(const P6R::P6BWCSTR *s1,const P6R::P6BWCSTR *s2,P6R::P6SIZE nCount,P6R::P6INT32 *pRetval) = 0;
1137 
1151  P6COMMETHOD bwstrlcpy(P6R::P6WCHAR *pszDest,P6R::P6SIZE cDest,const P6R::P6BWCSTR *pSource) = 0;
1152 
1170  P6COMMETHOD bwstrsubcmp(const P6R::P6BWCSTR *s1,const P6R::P6BWCSTR *s2,P6R::P6INT32 *pRetval) = 0;
1171 
1189  P6COMMETHOD bwstrsubicmp(const P6R::P6BWCSTR *s1,const P6R::P6BWCSTR *s2,P6R::P6INT32 *pRetval) = 0;
1190 
1210  P6COMMETHOD bwstrchr(const P6R::P6BWCSTR *pbcsStr,P6R::P6INT16 c,P6R::P6BWCSTR *pRetPtr) = 0;
1211 
1221  P6COMMETHOD bwstrlwr(P6R::P6BWSTR *pbsStr) = 0;
1222 
1242  P6COMMETHOD bwstrrchr(const P6R::P6BWCSTR *pbcsStr,P6R::P6INT16 c,P6R::P6BWCSTR *pRetPtr) = 0;
1243 
1261  P6COMMETHOD compareMem(const P6R::P6VOID *pMem1,const P6R::P6VOID *pMem2,P6R::P6SIZE nBytes,P6R::P6INT32 *pResult) = 0;
1262 
1277  P6COMMETHOD copyMem(P6R::P6VOID *pDest,P6R::P6SIZE cDest,const P6R::P6VOID *pSource,P6R::P6SIZE nBytes) = 0;
1278 
1298  P6COMMETHOD copyMemSecure(P6R::P6VOID *pDest,P6R::P6SIZE cDest,const P6R::P6VOID *pSource,P6R::P6SIZE nBytes) = 0;
1299 
1313  P6COMMETHOD floatToString(P6R::P6FLOAT value,P6R::P6CHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6SIZE *pcWritten) = 0;
1314 
1328  P6COMMETHOD floatToStringW(P6R::P6FLOAT value,P6R::P6WCHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6SIZE *pcWritten) = 0;
1329 
1356  P6COMMETHOD formatString(P6R::P6CHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6SIZE *pcWritten,const P6R::P6CHAR *pszFormat,const P6R::P6ARG *pArgs,P6R::P6SIZE cArgs) = 0;
1357 
1388  P6COMMETHOD formatStringW(P6R::P6WCHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6SIZE *pcWritten,const P6R::P6WCHAR *pszFormat,const P6R::P6ARG *pArgs,P6R::P6SIZE cArgs) = 0;
1389 
1405  P6COMMETHOD int16ToString(P6R::P6INT16 value,P6R::P6CHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6UINT32 radix,P6R::P6SIZE *pcWritten) = 0;
1406 
1422  P6COMMETHOD int16ToStringW(P6R::P6INT16 value,P6R::P6WCHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6UINT32 radix,P6R::P6SIZE *pcWritten) = 0;
1423 
1439  P6COMMETHOD int32ToString(P6R::P6INT32 value,P6R::P6CHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6UINT32 radix,P6R::P6SIZE *pcWritten) = 0;
1440 
1456  P6COMMETHOD int32ToStringW(P6R::P6INT32 value,P6R::P6WCHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6UINT32 radix,P6R::P6SIZE *pcWritten) = 0;
1457 
1473  P6COMMETHOD int64ToString(P6R::P6INT64 value,P6R::P6CHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6UINT32 radix,P6R::P6SIZE *pcWritten) = 0;
1474 
1490  P6COMMETHOD int64ToStringW(P6R::P6INT64 value,P6R::P6WCHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6UINT32 radix,P6R::P6SIZE *pcWritten) = 0;
1491 
1508  P6COMMETHOD moveMem(P6R::P6VOID *pDest,P6R::P6SIZE cDest,const P6R::P6VOID *pSource,P6R::P6SIZE nBytes) = 0;
1509 
1531  P6COMMETHOD moveMemSecure(P6R::P6VOID *pDest,P6R::P6SIZE cDest,const P6R::P6VOID *pSource,P6R::P6SIZE nBytes) = 0;
1532 
1549  P6COMMETHOD reverseString(P6R::P6CHAR *pBuffer,P6R::P6SIZE cStart,P6R::P6SIZE cEnd) = 0;
1550 
1568 
1569 
1582  P6COMMETHOD setMem(P6R::P6VOID *pMemory,P6R::P6INT nValue,P6R::P6SIZE nBytes) = 0;
1583 
1618  P6COMMETHOD setMemSecure(P6R::P6VOID *pMemory,P6R::P6INT nValue,P6R::P6SIZE nBytes) = 0;
1619 
1620 
1621 
1622 
1641  P6COMMETHOD sizetToString(P6R::P6SIZE value,P6R::P6CHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6UINT32 radix,P6R::P6SIZE *pcWritten) = 0;
1642 
1661  P6COMMETHOD sizetToStringW(P6R::P6SIZE value,P6R::P6WCHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6UINT32 radix,P6R::P6SIZE *pcWritten) = 0;
1662 
1684  P6COMMETHOD strchr(const P6R::P6CHAR *pStr,P6R::P6INT16 c,P6R::P6SIZE cchMax,P6R::P6CHAR **ppRetPtr) = 0;
1685 
1700  P6COMMETHOD strcmp(const P6R::P6CHAR *pStr1,const P6R::P6CHAR *pStr2,P6R::P6SIZE cchMax,P6R::P6INT32 *pRetval) = 0;
1701 
1718  P6COMMETHOD strdup(const P6R::P6CHAR* pString,P6R::P6CHAR **ppCopy) = 0;
1719 
1733  P6COMMETHOD strfree(const P6R::P6CHAR *pString) = 0;
1734 
1751  P6COMMETHOD stricmp(const P6R::P6CHAR *pStr1,const P6R::P6CHAR *pStr2,P6R::P6SIZE cchMax,P6R::P6INT32 *pRetval) = 0;
1752 
1775  P6COMMETHOD stristr(const P6R::P6CHAR *searchIn,const P6R::P6CHAR *searchFor,P6R::P6SIZE cchMax,P6R::P6CHAR **ppRetptr) = 0;
1776 
1796  P6COMMETHOD strlcat(P6R::P6CHAR *pszDest,P6R::P6SIZE cDest,const P6R::P6CHAR *pszSource,P6R::P6SIZE *pcCopied) = 0;
1797 
1811  P6COMMETHOD strlcatbstr(P6R::P6CHAR *pszDest,P6R::P6SIZE cDest,const P6R::P6BCSTR *pbsSource,P6R::P6SIZE *pcCopied) = 0;
1812 
1837  P6COMMETHOD strlcpy(P6R::P6CHAR *pszDest,P6R::P6SIZE cDest,const P6R::P6CHAR *pszSource,P6R::P6SIZE *pcCopied) = 0;
1838 
1849  P6COMMETHOD strlcpybstr(P6R::P6CHAR *pszDest,P6R::P6SIZE cDest,const P6R::P6BCSTR *pbsSource,P6R::P6SIZE *pcCopied) = 0;
1850 
1871  P6COMMETHOD strlen(const P6R::P6CHAR *pStr,P6R::P6SIZE cchMax,P6R::P6SIZE *pcSize) = 0;
1872 
1899  P6COMMETHOD strlncpy(P6R::P6CHAR *pszDest,P6R::P6SIZE cDest,const P6R::P6CHAR *pszSource,P6R::P6SIZE cSourceLen,P6R::P6SIZE *pcCopied) = 0;
1900 
1914  P6COMMETHOD strlwr(P6R::P6CHAR *pszStr,P6R::P6SIZE cchMax) = 0;
1915 
1931  P6COMMETHOD strncat(P6R::P6CHAR *pszDest,P6R::P6SIZE cDest,const P6R::P6CHAR *pszSource,P6R::P6SIZE cCount) = 0;
1932 
1950  P6COMMETHOD strncmp(const P6R::P6CHAR *pStr1,const P6R::P6CHAR *pStr2,P6R::P6SIZE length,P6R::P6INT32 *pRetval) = 0;
1951 
1969  P6COMMETHOD strnicmp(const P6R::P6CHAR *pStr1,const P6R::P6CHAR *pStr2,P6R::P6SIZE length,P6R::P6INT32 *pRetval) = 0;
1970 
1987  P6COMMETHOD strrchr(const P6R::P6CHAR *pStr,P6R::P6INT16 c,P6R::P6SIZE cchMax,P6R::P6CHAR **ppRetPtr) = 0;
1988 
2017  P6COMMETHOD strsep(const P6R::P6CHAR **ppszSearchIn,const P6R::P6CHAR *pszDelimiters,P6R::P6BCSTR *pbcsToken) = 0;
2018 
2041  P6COMMETHOD strstr(const P6R::P6CHAR *searchIn,const P6R::P6CHAR *searchFor,P6R::P6SIZE cchMax,P6R::P6CHAR **ppRetptr) = 0;
2042 
2062  P6COMMETHOD strToBool(const P6R::P6CHAR *pBoolStr,P6R::P6BOOL *pBool) = 0;
2063 
2077  P6COMMETHOD strupr(P6R::P6CHAR *pszStr,P6R::P6SIZE cchMax) = 0;
2078 
2092  P6COMMETHOD trimEnd(P6R::P6CHAR *pszStr,P6R::P6SIZE cchMax) = 0;
2093 
2107  P6COMMETHOD trimEndW(P6R::P6WCHAR *pszStr,P6R::P6SIZE cchMax) = 0;
2108 
2127  P6COMMETHOD replace(P6R::P6CHAR *pString,P6R::P6CHAR chOrig,const P6R::P6CHAR chReplacement,P6R::P6SIZE cchMax) = 0;
2128 
2143  P6COMMETHOD uint16ToString(P6R::P6UINT16 value,P6R::P6CHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6UINT32 radix,P6R::P6SIZE *pcWritten) = 0;
2144 
2159  P6COMMETHOD uint16ToStringW(P6R::P6UINT16 value,P6R::P6WCHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6UINT32 radix,P6R::P6SIZE *pcWritten) = 0;
2160 
2175  P6COMMETHOD uint32ToString(P6R::P6UINT32 value,P6R::P6CHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6UINT32 radix,P6R::P6SIZE *pcWritten) = 0;
2176 
2191  P6COMMETHOD uint32ToStringW(P6R::P6UINT32 value,P6R::P6WCHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6UINT32 radix,P6R::P6SIZE *pcWritten) = 0;
2192 
2207  P6COMMETHOD uint64ToString(P6R::P6UINT64 value,P6R::P6CHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6UINT32 radix,P6R::P6SIZE *pcWritten) = 0;
2208 
2223  P6COMMETHOD uint64ToStringW(P6R::P6UINT64 value,P6R::P6WCHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6UINT32 radix,P6R::P6SIZE *pcWritten) = 0;
2224 
2248  P6COMMETHOD utf8ToWcs(P6R::P6WCHAR* pDest,P6R::P6SIZE* dstSize,const P6R::P6CHAR* pSource) = 0;
2249 
2274  P6COMMETHOD utf8nToWcs(P6R::P6WCHAR* pDest,P6R::P6SIZE* dstSize,const P6R::P6CHAR* pSource,P6R::P6SIZE cCount) = 0;
2275 
2276 
2300  P6COMMETHOD wcsToUtf8(P6R::P6CHAR* pDest,P6R::P6SIZE* dstSize,const P6R::P6WCHAR* pSource) = 0;
2301 
2326  P6COMMETHOD wcsnToUtf8(P6R::P6CHAR* pDest,P6R::P6SIZE* dstSize,const P6R::P6WCHAR* pSource,P6R::P6SIZE cCount) = 0;
2327 
2328 
2343  P6COMMETHOD wsetMem(P6R::P6WCHAR *pMemory,P6R::P6WCHAR nValue,P6R::P6SIZE nChars) = 0;
2344 
2345 
2364  P6COMMETHOD wstrchr(const P6R::P6WCHAR *pStr,P6R::P6WCHAR c,P6R::P6SIZE cchMax,P6R::P6WCHAR **ppRetPtr) = 0;
2365 
2385  P6COMMETHOD wstrcmp(const P6R::P6WCHAR *s1,const P6R::P6WCHAR *s2,P6R::P6SIZE cchMax,P6R::P6INT32 *pRetval) = 0;
2386 
2406  P6COMMETHOD wstricmp(const P6R::P6WCHAR *s1,const P6R::P6WCHAR *s2,P6R::P6SIZE cchMax,P6R::P6INT32 *pRetval) = 0;
2407 
2423  P6COMMETHOD wstrdup(const P6R::P6WCHAR* pString,P6R::P6WCHAR **ppCopy) = 0;
2424 
2435  P6COMMETHOD wstrfree(const P6R::P6WCHAR *pString) = 0;
2436 
2453  P6COMMETHOD wstrlcat(P6R::P6WCHAR *pszDest,P6R::P6SIZE cDest,const P6R::P6WCHAR *pszSource,P6R::P6SIZE *pcCopied) = 0;
2454 
2471  P6COMMETHOD wstrlcpy(P6R::P6WCHAR *pszDest,P6R::P6SIZE cDest,const P6R::P6WCHAR *pszSource,P6R::P6SIZE *pcCopied) = 0;
2472 
2489  P6COMMETHOD wstrlen(const P6R::P6WCHAR *pwszString,P6R::P6SIZE cchMax,P6R::P6SIZE *pcLen) = 0;
2490 
2510  P6COMMETHOD wstrlncpy(P6R::P6WCHAR *pszDest,P6R::P6SIZE cDest,const P6R::P6WCHAR *pszSource,P6R::P6SIZE cSourceLen,P6R::P6SIZE *pcCopied) = 0;
2511 
2523  P6COMMETHOD wstrncat(P6R::P6WCHAR *pszDest,P6R::P6SIZE cDest,const P6R::P6WCHAR *pszSource,P6R::P6SIZE cCount) = 0;
2524 
2537  P6COMMETHOD wstrncmp(const P6R::P6WCHAR *s1,const P6R::P6WCHAR *s2,P6R::P6SIZE length,P6R::P6INT32 *pRetval) = 0;
2538 
2551  P6COMMETHOD wstrnicmp(const P6R::P6WCHAR *s1,const P6R::P6WCHAR *s2,P6R::P6SIZE length,P6R::P6INT32 *pRetval) = 0;
2552 
2581  P6COMMETHOD wstrsep(const P6R::P6WCHAR **ppszSearchIn,const P6R::P6WCHAR *pszDelimiters,P6R::P6BWCSTR *pbcsToken) = 0;
2582 
2602  P6COMMETHOD wstrrchr(const P6R::P6WCHAR *pszSearchIn,P6R::P6INT16 c,P6R::P6SIZE cchMax,P6R::P6WCHAR **ppRetPtr) = 0;
2603 
2626  P6COMMETHOD wstrstr(const P6R::P6WCHAR *searchIn,const P6R::P6WCHAR *searchFor,P6R::P6SIZE cchMax,P6R::P6WCHAR **ppRetptr) = 0;
2627 
2647  P6COMMETHOD wstrToBool(const P6R::P6WCHAR *pBoolStr,P6R::P6BOOL *pBool) = 0;
2648 
2662  P6COMMETHOD wstrupr(P6R::P6WCHAR *pszStr,P6R::P6SIZE cchMax) = 0;
2663 
2682  P6COMMETHOD wreplace(P6R::P6WCHAR *pString,P6R::P6WCHAR chOrig,const P6R::P6WCHAR chReplacement,P6R::P6SIZE cchMax) = 0;
2683 
2712  P6COMMETHOD hexDump(const P6R::P6VOID *pData,P6R::P6SIZE cData,P6R::P6CHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6SIZE cBytesPerLine,P6R::P6SIZE *pcWritten) = 0;
2713 
2742  P6COMMETHOD hexDumpW(const P6R::P6VOID *pData,P6R::P6SIZE cData,P6R::P6WCHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6SIZE cBytesPerLine,P6R::P6SIZE *pcWritten) = 0;
2743  };
2744  // {1B77B8F2-9FBC-4d90-9B1F-211DA24CD823}
2745  #define IF_p6ISafeString {0x1B77B8F2,0x9FBC,0x4d90,{0x9B,0x1F,0x21,0x1D,0xA2,0x4C,0xD8,0x23}}
2746 
2747 
2749 
2759  interface p6ISystemInfo : p6ICom
2760  {
2780  P6COMMETHOD getSystemName(P6R::P6WCHAR *pwszBuffer,P6R::P6UINT32 cBuffer) = 0;
2781 
2794  P6COMMETHOD getOSName(P6R::P6WCHAR *pwszName,P6R::P6UINT32 cName) = 0;
2795 
2824  P6COMMETHOD getOSVersion(P6R::P6WCHAR *pwszBuffer,P6R::P6UINT32 cBuffer) = 0;
2825 
2839  P6COMMETHOD getNumProcessors(P6R::P6UINT32 *pcProcessors) = 0;
2840 
2841 
2852  P6COMMETHOD getArchitecture(P6R::P6WCHAR *pwszBuffer,P6R::P6UINT32 cBuffer) = 0;
2853 
2865  P6COMMETHOD getPageSize(P6R::P6UINT32 *pcPage) = 0;
2866  };
2867  // {56084D40-9165-42DF-8425-0B33E91D9AEF}
2868  #define IF_p6ISystemInfo {0x56084D40,0x9165,0x42DF,{0x84,0x25,0x0B,0x33,0xE9,0x1D,0x9A,0xEF}}
2869 
2871  typedef enum {
2875  } P6CONHANDLE;
2876 
2883  interface p6IConsole : p6ICom
2884  {
2897  P6COMMETHOD writeStdout(const P6R::P6CHAR *pFmt,P6R::P6ARG *pArgs,P6R::P6UINT32 cArgs,P6R::P6SIZE *pcBytesWritten) = 0;
2898 
2911  P6COMMETHOD writeStdoutW(const P6R::P6WCHAR *pFmt,P6R::P6ARG *pArgs,P6R::P6UINT32 cArgs,P6R::P6SIZE *pcBytesWritten) = 0;
2912 
2925  P6COMMETHOD writeStderr(const P6R::P6CHAR *pFmt,P6R::P6ARG *pArgs,P6R::P6UINT32 cArgs,P6R::P6SIZE *pcBytesWritten) = 0;
2926 
2939  P6COMMETHOD writeStderrW(const P6R::P6WCHAR *pFmt,P6R::P6ARG *pArgs,P6R::P6UINT32 cArgs,P6R::P6SIZE *pcBytesWritten) = 0;
2940  P6COMMETHOD readStdin(P6R::P6CHAR *pBuffer,P6R::P6SIZE cBytesToread,P6R::P6SIZE *pcBytesRead) = 0;
2941  };
2942 
2943  // {BA6864AD-935F-4C14-ABFC-3CA6C5CB2DE5}
2944  #define IF_p6IConsole {0xBA6864AD,0x935F,0x4C14,{0xAB,0xFC,0x3C,0xA6,0xC5,0xCB,0x2D,0xE5}}
2945 
2946 
2948  interface p6IMarshalData : p6ICom
2949  {
2950  P6COMMETHOD set8(const P6R::P6UINT8 val,P6R::P6P8BIT *pDest) = 0;
2951  P6COMMETHOD set16(const P6R::P6UINT16 val,P6R::P6P16BIT *pDest) = 0;
2952  P6COMMETHOD set32(const P6R::P6UINT32 val,P6R::P6P32BIT *pDest) = 0;
2953  P6COMMETHOD set64(const P6R::P6UINT64 val,P6R::P6P64BIT *pDest) = 0;
2954  P6COMMETHOD get8(const P6R::P6P8BIT *pVal,P6R::P6UINT8 *pDest) = 0;
2955  P6COMMETHOD get16(const P6R::P6P16BIT *pVal,P6R::P6UINT16 *pDest) = 0;
2956  P6COMMETHOD get32(const P6R::P6P32BIT *pVal,P6R::P6UINT32 *pDest) = 0;
2957  P6COMMETHOD get64(const P6R::P6P64BIT *pVal,P6R::P6UINT64 *pDest) = 0;
2958  };
2959  // {CD8CECEA-DDE2-4F44-8002-56B90664E079}
2960  #define IF_p6IMarshalData {0xCD8CECEA,0xDDE2,0x4F44,{0x80,0x02,0x56,0xB9,0x06,0x64,0xE0,0x79}}
2961 
2970  interface p6INetHelpers : p6ICom
2971  {
2985  P6COMMETHOD host2nll(P6R::P6UINT64 nHostLong,P6R::P6UINT64 *pNetLong) = 0;
2986 
2987 
3001  P6COMMETHOD host2nl(P6R::P6UINT32 nHostLong,P6R::P6UINT32 *pNetLong) = 0;
3002 
3016  P6COMMETHOD host2ns(P6R::P6UINT16 nHostShort,P6R::P6UINT16 *pNetShort) = 0;
3017 
3031  P6COMMETHOD net2hll(P6R::P6UINT64 nNetLong,P6R::P6UINT64 *pHostLong) = 0;
3032 
3046  P6COMMETHOD net2hl(P6R::P6UINT32 nNetLong,P6R::P6UINT32 *pHostLong) = 0;
3047 
3061  P6COMMETHOD net2hs(P6R::P6UINT16 nNetShort,P6R::P6UINT16 *pHostShort) = 0;
3062 
3089  P6COMMETHOD strToNetAddr(const P6R::P6CHAR *pszAddr,P6R::P6NETADDR *pAddr) = 0;
3090 
3110  P6COMMETHOD wStrToNetAddr(const P6R::P6WCHAR *pwszAddr,P6R::P6NETADDR *pAddr) = 0;
3111 
3137  P6COMMETHOD netAddrToStr(const P6R::P6NETADDR *pAddr,P6R::P6CHAR *pBuffer,P6R::P6UINT32 cBuffer,P6R::P6UINT32 *pcBuffer,P6R::P6BOOL bAddPort) = 0;
3138 
3164  P6COMMETHOD netAddrToWStr(const P6R::P6NETADDR *pAddr,P6R::P6WCHAR *pBuffer,P6R::P6UINT32 cBuffer,P6R::P6UINT32 *pcBuffer,P6R::P6BOOL bAddPort) = 0;
3165  };
3166  // {464F74EE-0D93-4ee9-9E5E-13EE0C94B53D}
3167  #define IF_p6INetHelpers {0x464F74EE,0x0D93,0x4ee9,{0x9E,0x5E,0x13,0xEE,0x0C,0x94,0xB5,0x3D}}
3168 
3169 #ifdef __cplusplus
3170 }
3171 #endif
3172 
3174 } //namespace
3175 
3176 #endif
3177 
virtual P6R::P6ERR net2hll(P6R::P6UINT64 nNetLong, P6R::P6UINT64 *pHostLong)=0
This method is used convert a P6UINT64 from network byte-order into host byte-order.
Wide binary string.
Definition: p6types.h:184
size_t P6SIZE
Definition: p6types.h:62
virtual P6R::P6ERR wstrrchr(const P6R::P6WCHAR *pszSearchIn, P6R::P6INT16 c, P6R::P6SIZE cchMax, P6R::P6WCHAR **ppRetPtr)=0
Finds the last occurance of c in the wide character string pszSearchIn.
virtual P6R::P6ERR bstrsep(P6R::P6BCSTR *pbcsSearchIn, const P6R::P6BCSTR *pbsDelimiters, P6R::P6BCSTR *pbcsToken)=0
Extracts a the first token from a string described by a P6BCSTR, where the tokens are delimited by th...
P6LONGLONG P6INT64
Definition: p6types.h:50
virtual P6R::P6ERR netAddrToStr(const P6R::P6NETADDR *pAddr, P6R::P6CHAR *pBuffer, P6R::P6UINT32 cBuffer, P6R::P6UINT32 *pcBuffer, P6R::P6BOOL bAddPort)=0
Converts a P6NETADDR struct into a character string representation of the specified address...
virtual P6R::P6ERR bstrupr(P6R::P6BSTR *pbsStr)=0
Converts the specified P6BSTR to uppercase in-place.
Const Binary string.
Definition: p6types.h:168
Provides very basic, thread safe access to the console, allowing the console to be read from and writ...
Definition: p6runtimeif.h:2883
virtual P6R::P6ERR wStrToNetAddr(const P6R::P6WCHAR *pwszAddr, P6R::P6NETADDR *pAddr)=0
This method is used to convert a wide character IP address string into a P6R::P6NETADDR.
unsigned int P6UINT32
Definition: p6types.h:40
virtual P6R::P6ERR strlcpybstr(P6R::P6CHAR *pszDest, P6R::P6SIZE cDest, const P6R::P6BCSTR *pbsSource, P6R::P6SIZE *pcCopied)=0
Copy a P6BCSTR into a narrow character buffer and NULL terminate.
virtual P6R::P6ERR wstrdup(const P6R::P6WCHAR *pString, P6R::P6WCHAR **ppCopy)=0
Duplicates the provided NULL terminated wide character string, allocating memory for it and returning...
virtual P6R::P6ERR formatString(P6R::P6CHAR *pBuffer, P6R::P6SIZE cBuffer, P6R::P6SIZE *pcWritten, const P6R::P6CHAR *pszFormat, const P6R::P6ARG *pArgs, P6R::P6SIZE cArgs)=0
Provides a safer, enhanced snprintf replacement.
virtual P6R::P6ERR strlcat(P6R::P6CHAR *pszDest, P6R::P6SIZE cDest, const P6R::P6CHAR *pszSource, P6R::P6SIZE *pcCopied)=0
Concatenates characters from one string onto another and always NULL terminates the output...
Standard error codes.
virtual P6R::P6ERR writeStderrW(const P6R::P6WCHAR *pFmt, P6R::P6ARG *pArgs, P6R::P6UINT32 cArgs, P6R::P6SIZE *pcBytesWritten)=0
Write a formatted wide string to stderr (the wide string is converted to narrow before it is written ...
virtual P6R::P6ERR writeStdoutW(const P6R::P6WCHAR *pFmt, P6R::P6ARG *pArgs, P6R::P6UINT32 cArgs, P6R::P6SIZE *pcBytesWritten)=0
Write a formatted wide string to stdout (the wide string is converted to narrow before it is written ...
virtual P6R::P6ERR utf8nToWcs(P6R::P6WCHAR *pDest, P6R::P6SIZE *dstSize, const P6R::P6CHAR *pSource, P6R::P6SIZE cCount)=0
Converts a the number of P6CHAR (UTF-8) string to a P6WCHAR string.
virtual P6R::P6ERR netAddrToWStr(const P6R::P6NETADDR *pAddr, P6R::P6WCHAR *pBuffer, P6R::P6UINT32 cBuffer, P6R::P6UINT32 *pcBuffer, P6R::P6BOOL bAddPort)=0
Converts a P6NETADDR struct into a wide character string representation of the specified address...
P6CONHANDLE
Definition: p6runtimeif.h:2871
int P6INT
Definition: p6types.h:58
bool P6BOOL
Boolean type.
Definition: p6types.h:101
virtual P6R::P6ERR atol(const P6R::P6CHAR *pString, P6R::P6SIZE cchMax, P6R::P6INT32 *pRetLong)=0
This method converts the string pointed to by pString into a P6R::P6INT32.
virtual P6R::P6ERR strlcpy(P6R::P6CHAR *pszDest, P6R::P6SIZE cDest, const P6R::P6CHAR *pszSource, P6R::P6SIZE *pcCopied)=0
Copies pszSource to pszDest and always NULL terminates the output.
virtual P6R::P6ERR hexDumpW(const P6R::P6VOID *pData, P6R::P6SIZE cData, P6R::P6WCHAR *pBuffer, P6R::P6SIZE cBuffer, P6R::P6SIZE cBytesPerLine, P6R::P6SIZE *pcWritten)=0
Renders the specified data as a (possibly) multi-line hex dump, including offset, hex bytes and ASCII...
virtual P6R::P6ERR copyMemSecure(P6R::P6VOID *pDest, P6R::P6SIZE cDest, const P6R::P6VOID *pSource, P6R::P6SIZE nBytes)=0
Copies nBytes from pSource to pDest.
virtual P6R::P6ERR wcsToUtf8(P6R::P6CHAR *pDest, P6R::P6SIZE *dstSize, const P6R::P6WCHAR *pSource)=0
Converts a P6WCHAR string to a P6CHAR UTF-8 string.
virtual P6R::P6ERR writeStdout(const P6R::P6CHAR *pFmt, P6R::P6ARG *pArgs, P6R::P6UINT32 cArgs, P6R::P6SIZE *pcBytesWritten)=0
Write a formatted narrow string to stdout.
virtual P6R::P6ERR bstrbstr(const P6R::P6BCSTR *pbcsSearchIn, P6R::P6BCSTR const *pbcsSearchFor, P6R::P6BCSTR *pbcsFound)=0
Returns a P6BCSTR pointing to the first occurance of pbsS2 in pbcsSearchIn (case sensitive).
virtual P6R::P6ERR bwstrrchr(const P6R::P6BWCSTR *pbcsStr, P6R::P6INT16 c, P6R::P6BWCSTR *pRetPtr)=0
Finds the last occurance of c in string,.
virtual P6R::P6ERR wstrcmp(const P6R::P6WCHAR *s1, const P6R::P6WCHAR *s2, P6R::P6SIZE cchMax, P6R::P6INT32 *pRetval)=0
Lexigraphically compares two NULL terminated strings.
virtual P6R::P6ERR wstrncmp(const P6R::P6WCHAR *s1, const P6R::P6WCHAR *s2, P6R::P6SIZE length, P6R::P6INT32 *pRetval)=0
Case-sensitively compares length character of s1 and s2.
Wide Const binary string.
Definition: p6types.h:200
virtual P6R::P6ERR trimEndW(P6R::P6WCHAR *pszStr, P6R::P6SIZE cchMax)=0
Trim trailing space, tab, carraige return and newline characters from the specified NULL terminated w...
virtual P6R::P6ERR strlncpy(P6R::P6CHAR *pszDest, P6R::P6SIZE cDest, const P6R::P6CHAR *pszSource, P6R::P6SIZE cSourceLen, P6R::P6SIZE *pcCopied)=0
Copies cSourceLen characters from pszSource to pszDest and always NULL terminates the output...
virtual P6R::P6ERR wstrlcat(P6R::P6WCHAR *pszDest, P6R::P6SIZE cDest, const P6R::P6WCHAR *pszSource, P6R::P6SIZE *pcCopied)=0
Appends one string to another and NULL terminates the result.
virtual P6R::P6ERR wstrnicmp(const P6R::P6WCHAR *s1, const P6R::P6WCHAR *s2, P6R::P6SIZE length, P6R::P6INT32 *pRetval)=0
Case-insensitively compares length character of s1 and s2.
virtual P6R::P6ERR hexDump(const P6R::P6VOID *pData, P6R::P6SIZE cData, P6R::P6CHAR *pBuffer, P6R::P6SIZE cBuffer, P6R::P6SIZE cBytesPerLine, P6R::P6SIZE *pcWritten)=0
Renders the specified data as a (possibly) multi-line hex dump, including offset, hex bytes and ASCII...
virtual P6R::P6ERR wstrncat(P6R::P6WCHAR *pszDest, P6R::P6SIZE cDest, const P6R::P6WCHAR *pszSource, P6R::P6SIZE cCount)=0
Appends cCount characters from pszSource to pszDest.
virtual P6R::P6ERR uint32ToString(P6R::P6UINT32 value, P6R::P6CHAR *pBuffer, P6R::P6SIZE cBuffer, P6R::P6UINT32 radix, P6R::P6SIZE *pcWritten)=0
Convert an unsigned 32 bit integer to a P6CHAR string with the specified radix.
P6SIZE P6ATOM
Atom type see P6R::p6IAtom in p6com.h.
Definition: p6types.h:110
virtual P6R::P6ERR wcsnToUtf8(P6R::P6CHAR *pDest, P6R::P6SIZE *dstSize, const P6R::P6WCHAR *pSource, P6R::P6SIZE cCount)=0
Converts the number of P6WCHAR characters specified in cCount to a P6CHAR UTF-8 string.
virtual P6R::P6ERR bwstrlwr(P6R::P6BWSTR *pbsStr)=0
Converts the specified P6BWSTR to lowercase ASCII in-place.
virtual P6R::P6ERR bstrspn(P6R::P6BCSTR *pbcsSearchIn, const P6R::P6BCSTR *pbcsSearchSet, P6R::P6BCSTR *pbcsFound)=0
Scans the specified P6BCSTR for the first occurrence of any character in specified set of characters...
virtual P6R::P6ERR uint16ToStringW(P6R::P6UINT16 value, P6R::P6WCHAR *pBuffer, P6R::P6SIZE cBuffer, P6R::P6UINT32 radix, P6R::P6SIZE *pcWritten)=0
Convert an unsigned 16 bit integer to a P6WCHAR string with the specified radix.
virtual P6R::P6ERR atolEx(const P6R::P6CHAR *pString, P6R::P6SIZE cchMax, P6R::P6INT32 *pRetLong, P6R::P6CHAR **ppEndPtr)=0
This method is an enhanced version of atol() used to convert an ascii number string string into an P6...
virtual P6R::P6ERR strToNetAddr(const P6R::P6CHAR *pszAddr, P6R::P6NETADDR *pAddr)=0
This method is used to convert an IP address string into a P6R::P6NETADDR.
virtual P6R::P6ERR net2hs(P6R::P6UINT16 nNetShort, P6R::P6UINT16 *pHostShort)=0
This method is used convert a P6UINT16 from network byte-order into host byte-order.
virtual P6R::P6ERR wstrchr(const P6R::P6WCHAR *pStr, P6R::P6WCHAR c, P6R::P6SIZE cchMax, P6R::P6WCHAR **ppRetPtr)=0
Finds the first occurance of c in the wide character string s.
virtual P6R::P6ERR bwstrncmp(const P6R::P6BWCSTR *s1, const P6R::P6BWCSTR *s2, P6R::P6SIZE nCount, P6R::P6INT32 *pRetval)=0
Case-sensitively compares the specified number of characters in two P6R::P6BWCSTR's.
virtual P6R::P6ERR bstrnicmp(const P6R::P6BCSTR *s1, const P6R::P6BCSTR *s2, P6R::P6SIZE nCount, P6R::P6INT32 *pRetval)=0
Case-insensitively compares the specified number of characters in two P6R::P6BCSTR's.
virtual P6R::P6ERR wstricmp(const P6R::P6WCHAR *s1, const P6R::P6WCHAR *s2, P6R::P6SIZE cchMax, P6R::P6INT32 *pRetval)=0
Lexigraphically compares two NULL terminated strings ignoring case.
virtual P6R::P6ERR int16ToString(P6R::P6INT16 value, P6R::P6CHAR *pBuffer, P6R::P6SIZE cBuffer, P6R::P6UINT32 radix, P6R::P6SIZE *pcWritten)=0
Convert a signed 16 bit integer to a P6CHAR string with the specified radix.
unsigned char P6UINT8
Definition: p6types.h:30
virtual P6R::P6ERR strrchr(const P6R::P6CHAR *pStr, P6R::P6INT16 c, P6R::P6SIZE cchMax, P6R::P6CHAR **ppRetPtr)=0
Finds the last occurance of c in string,.
This runtime interface provides network helpers for managing byte-order and providing address convers...
Definition: p6runtimeif.h:2970
virtual P6R::P6ERR bstrncmp(const P6R::P6BCSTR *s1, const P6R::P6BCSTR *s2, P6R::P6SIZE nCount, P6R::P6INT32 *pRetval)=0
Case-sensitively compares the specified number of characters in two P6R::P6BCSTR's.
virtual P6R::P6ERR wsetMem(P6R::P6WCHAR *pMemory, P6R::P6WCHAR nValue, P6R::P6SIZE nChars)=0
Set the specified number of wide characters in pMemory to nValue.
virtual P6R::P6ERR strstr(const P6R::P6CHAR *searchIn, const P6R::P6CHAR *searchFor, P6R::P6SIZE cchMax, P6R::P6CHAR **ppRetptr)=0
Find a sub-string (case-sensative)
virtual P6R::P6ERR int64ToStringW(P6R::P6INT64 value, P6R::P6WCHAR *pBuffer, P6R::P6SIZE cBuffer, P6R::P6UINT32 radix, P6R::P6SIZE *pcWritten)=0
Convert a signed 64 bit integer to a P6WCHAR string with the specified radix.
virtual P6R::P6ERR strncmp(const P6R::P6CHAR *pStr1, const P6R::P6CHAR *pStr2, P6R::P6SIZE length, P6R::P6INT32 *pRetval)=0
Lexographically compares at most the first length character of the two specified strings.
virtual P6R::P6ERR strupr(P6R::P6CHAR *pszStr, P6R::P6SIZE cchMax)=0
Converts the specified NULL terminated string to uppercase in-place.
virtual P6R::P6ERR bwstrnicmp(const P6R::P6BWCSTR *s1, const P6R::P6BWCSTR *s2, P6R::P6SIZE nCount, P6R::P6INT32 *pRetval)=0
Case-insensitively compares the specified number of characters in two P6R::P6BWCSTR's.
virtual P6R::P6ERR stristr(const P6R::P6CHAR *searchIn, const P6R::P6CHAR *searchFor, P6R::P6SIZE cchMax, P6R::P6CHAR **ppRetptr)=0
Find a sub-string (case-insensative)
unsigned short int P6UINT16
Definition: p6types.h:34
virtual P6R::P6ERR setMem(P6R::P6VOID *pMemory, P6R::P6INT nValue, P6R::P6SIZE nBytes)=0
Set the specified number of bytes in pMemory to nValue.
virtual P6R::P6ERR wstrfree(const P6R::P6WCHAR *pString)=0
Frees a string previously allocated via a call to wstrdup().
virtual P6R::P6ERR bwstrsubicmp(const P6R::P6BWCSTR *s1, const P6R::P6BWCSTR *s2, P6R::P6INT32 *pRetval)=0
Case-insensitively compares the two P6R::P6BWCSTR's using the length of the second P6BWCSTR to limit ...
virtual P6R::P6ERR bstrsubicmp(const P6R::P6BCSTR *s1, const P6R::P6BCSTR *s2, P6R::P6INT32 *pRetval)=0
Case-insensitively compares the two P6R::P6BCSTR's using the length of the second P6BCSTR to limit th...
wchar_t P6WCHAR
Wide character type see p6i18n.h.
Definition: p6types.h:76
virtual P6R::P6ERR moveMem(P6R::P6VOID *pDest, P6R::P6SIZE cDest, const P6R::P6VOID *pSource, P6R::P6SIZE nBytes)=0
Copies nBytes from pSource to pDest.
virtual P6R::P6ERR bstrrchr(const P6R::P6BCSTR *pbcsStr, P6R::P6INT16 c, P6R::P6BCSTR *pRetPtr)=0
Finds the last occurance of c in string,.
This runtime interface provides a set of safe string routines that should be used in place of the sta...
Definition: p6runtimeif.h:593
virtual P6R::P6ERR strlcatbstr(P6R::P6CHAR *pszDest, P6R::P6SIZE cDest, const P6R::P6BCSTR *pbsSource, P6R::P6SIZE *pcCopied)=0
Appends a P6BCSTR onto a narrow NULL terminated "C" style string and NULL terminate.
virtual P6R::P6ERR strfree(const P6R::P6CHAR *pString)=0
Frees a previously allocated strdup'd string.
int P6INT32
Definition: p6types.h:41
The base interface all [p6]COM components must derive from and implement.
Definition: p6comdef.h:96
virtual P6R::P6ERR wstrstr(const P6R::P6WCHAR *searchIn, const P6R::P6WCHAR *searchFor, P6R::P6SIZE cchMax, P6R::P6WCHAR **ppRetptr)=0
Find a sub-string (case-sensative)
virtual P6R::P6ERR bwstrcmp(const P6R::P6BWCSTR *s1, const P6R::P6BWCSTR *s2, P6R::P6INT32 *pRetval)=0
Case-sensitively compares two P6R::P6BWCSTR's.
virtual P6R::P6ERR stricmp(const P6R::P6CHAR *pStr1, const P6R::P6CHAR *pStr2, P6R::P6SIZE cchMax, P6R::P6INT32 *pRetval)=0
Case insensitively lexographically compares two strings.
virtual P6R::P6ERR strnicmp(const P6R::P6CHAR *pStr1, const P6R::P6CHAR *pStr2, P6R::P6SIZE length, P6R::P6INT32 *pRetval)=0
Case insensitively lexographically compares at most the first length character of the two specified s...
P6COM base interface definitions.
virtual P6R::P6ERR int32ToStringW(P6R::P6INT32 value, P6R::P6WCHAR *pBuffer, P6R::P6SIZE cBuffer, P6R::P6UINT32 radix, P6R::P6SIZE *pcWritten)=0
Convert a signed 32 bit integer to a P6WCHAR string with the specified radix.
virtual P6R::P6ERR bwstrchr(const P6R::P6BWCSTR *pbcsStr, P6R::P6INT16 c, P6R::P6BWCSTR *pRetPtr)=0
Finds the first occurance of c in pbcString,.
virtual P6R::P6ERR int16ToStringW(P6R::P6INT16 value, P6R::P6WCHAR *pBuffer, P6R::P6SIZE cBuffer, P6R::P6UINT32 radix, P6R::P6SIZE *pcWritten)=0
Convert a signed 16 bit integer to a P6WCHAR string with the specified radix.
virtual P6R::P6ERR int64ToString(P6R::P6INT64 value, P6R::P6CHAR *pBuffer, P6R::P6SIZE cBuffer, P6R::P6UINT32 radix, P6R::P6SIZE *pcWritten)=0
Convert a signed 64 bit integer to a P6CHAR string with the specified radix.
virtual P6R::P6ERR uint64ToString(P6R::P6UINT64 value, P6R::P6CHAR *pBuffer, P6R::P6SIZE cBuffer, P6R::P6UINT32 radix, P6R::P6SIZE *pcWritten)=0
Convert an unsigned 64 bit integer to a P6CHAR string with the specified radix.
virtual P6R::P6ERR bwstrlcpy(P6R::P6WCHAR *pszDest, P6R::P6SIZE cDest, const P6R::P6BWCSTR *pSource)=0
Copy a P6BWCSTR into a wide character buffer and NULL terminate.
Binary string.
Definition: p6types.h:154
virtual P6R::P6ERR bstrsubcmp(const P6R::P6BCSTR *s1, const P6R::P6BCSTR *s2, P6R::P6INT32 *pRetval)=0
Case-sensitively compares the two P6R::P6BCSTR's using the length of the second P6BCSTR to limit the ...
virtual P6R::P6ERR host2nll(P6R::P6UINT64 nHostLong, P6R::P6UINT64 *pNetLong)=0
This method is used convert a P6UINT64 from host byte-order into network byte-order.
virtual P6R::P6ERR formatStringW(P6R::P6WCHAR *pBuffer, P6R::P6SIZE cBuffer, P6R::P6SIZE *pcWritten, const P6R::P6WCHAR *pszFormat, const P6R::P6ARG *pArgs, P6R::P6SIZE cArgs)=0
Provides a safer, enhanced swprintf replacement.
P6ULONGLONG P6UINT64
Definition: p6types.h:49
A universally unique indentifier (UUID).
Definition: p6types.h:131
virtual P6R::P6ERR copyMem(P6R::P6VOID *pDest, P6R::P6SIZE cDest, const P6R::P6VOID *pSource, P6R::P6SIZE nBytes)=0
Copies nBytes from pSource to pDest.
virtual P6R::P6ERR strlen(const P6R::P6CHAR *pStr, P6R::P6SIZE cchMax, P6R::P6SIZE *pcSize)=0
Get the length of a NULL terminated string in bytes excluding the zero terminator and not affected by...
virtual P6R::P6ERR trimEnd(P6R::P6CHAR *pszStr, P6R::P6SIZE cchMax)=0
Trim trailing space, tab, carraige return and newline characters from the specified NULL terminated s...
virtual P6R::P6ERR bstribstr(const P6R::P6BCSTR *pbcsSearchIn, P6R::P6BCSTR const *pbcsSearchFor, P6R::P6BCSTR *pbcsFound)=0
Returns a P6BCSTR pointing to the first occurance of pbsS2 in pbcsSearchIn (case insensitive).
virtual P6R::P6ERR uint16ToString(P6R::P6UINT16 value, P6R::P6CHAR *pBuffer, P6R::P6SIZE cBuffer, P6R::P6UINT32 radix, P6R::P6SIZE *pcWritten)=0
Convert an unsigned 16 bit integer to a P6CHAR string with the specified radix.
virtual P6R::P6ERR readStdin(P6R::P6CHAR *pBuffer, P6R::P6SIZE cBytesToread, P6R::P6SIZE *pcBytesRead)=0
virtual P6R::P6ERR bwstricmp(const P6R::P6BWCSTR *s1, const P6R::P6BWCSTR *s2, P6R::P6INT32 *pRetval)=0
Case-insensitively compares two P6R::P6BWCSTR's.
virtual P6R::P6ERR strdup(const P6R::P6CHAR *pString, P6R::P6CHAR **ppCopy)=0
Alocate new storage for and duplicate the specified string into that storage.
virtual P6R::P6ERR strchr(const P6R::P6CHAR *pStr, P6R::P6INT16 c, P6R::P6SIZE cchMax, P6R::P6CHAR **ppRetPtr)=0
Finds the first occurance of the character c in pStr.
virtual P6R::P6ERR replace(P6R::P6CHAR *pString, P6R::P6CHAR chOrig, const P6R::P6CHAR chReplacement, P6R::P6SIZE cchMax)=0
Replaces every occurance of chOrig in pString with chReplacement.
virtual P6R::P6ERR utf8ToWcs(P6R::P6WCHAR *pDest, P6R::P6SIZE *dstSize, const P6R::P6CHAR *pSource)=0
Converts a P6CHAR (UTF-8) string to a P6WCHAR string.
short int P6INT16
Definition: p6types.h:35
virtual P6R::P6ERR moveMemSecure(P6R::P6VOID *pDest, P6R::P6SIZE cDest, const P6R::P6VOID *pSource, P6R::P6SIZE nBytes)=0
Copies nBytes from pSource to pDest.
virtual P6R::P6ERR wstrToBool(const P6R::P6WCHAR *pBoolStr, P6R::P6BOOL *pBool)=0
Converts a boolean wide string representation to a P6R::P6BOOL.
virtual P6R::P6ERR strlwr(P6R::P6CHAR *pszStr, P6R::P6SIZE cchMax)=0
Converts the specified NULL terminated string to lowercase in-place.
virtual P6R::P6ERR wreplace(P6R::P6WCHAR *pString, P6R::P6WCHAR chOrig, const P6R::P6WCHAR chReplacement, P6R::P6SIZE cchMax)=0
Replaces every occurance of chOrig in pString with chReplacement.
virtual P6R::P6ERR sizetToStringW(P6R::P6SIZE value, P6R::P6WCHAR *pBuffer, P6R::P6SIZE cBuffer, P6R::P6UINT32 radix, P6R::P6SIZE *pcWritten)=0
Convert a P6SIZE integer to a wide character string with the specified radix.
virtual P6R::P6ERR atoll(const P6R::P6CHAR *pString, P6R::P6SIZE cchMax, P6R::P6INT64 *pRetLongLong)=0
This method converts the string pointed to by pString into a P6R::P6INT64.
virtual P6R::P6ERR wstrlncpy(P6R::P6WCHAR *pszDest, P6R::P6SIZE cDest, const P6R::P6WCHAR *pszSource, P6R::P6SIZE cSourceLen, P6R::P6SIZE *pcCopied)=0
Copies a specified number of characters from one string to another.
virtual P6R::P6ERR writeStderr(const P6R::P6CHAR *pFmt, P6R::P6ARG *pArgs, P6R::P6UINT32 cArgs, P6R::P6SIZE *pcBytesWritten)=0
Write a formatted narrow string to stderr.
virtual P6R::P6ERR strcmp(const P6R::P6CHAR *pStr1, const P6R::P6CHAR *pStr2, P6R::P6SIZE cchMax, P6R::P6INT32 *pRetval)=0
Lexographically compares two strings case sensitively.
#define P6COMMETHOD
Definition: p6types.h:872
virtual P6R::P6ERR wstrsep(const P6R::P6WCHAR **ppszSearchIn, const P6R::P6WCHAR *pszDelimiters, P6R::P6BWCSTR *pbcsToken)=0
Extracts a the first token from a wide string, where the tokens are delimited by the characters in ps...
virtual P6R::P6ERR bwstrsubcmp(const P6R::P6BWCSTR *s1, const P6R::P6BWCSTR *s2, P6R::P6INT32 *pRetval)=0
Case-sensitively compares the two P6R::P6BWCSTR's using the length of the second P6BWCSTR to limit th...
virtual P6R::P6ERR reverseStringW(P6R::P6WCHAR *pBuffer, P6R::P6SIZE cStart, P6R::P6SIZE cEnd)=0
Reverse a string in place given starting and ending offests, allowing any portion, or the entire string to be reversed.
virtual P6R::P6ERR strToBool(const P6R::P6CHAR *pBoolStr, P6R::P6BOOL *pBool)=0
Converts a boolean string representation to a P6R::P6BOOL.
virtual P6R::P6ERR sizetToString(P6R::P6SIZE value, P6R::P6CHAR *pBuffer, P6R::P6SIZE cBuffer, P6R::P6UINT32 radix, P6R::P6SIZE *pcWritten)=0
Convert a P6SIZE integer to a string with the specified radix.
virtual P6R::P6ERR bwstrsep(P6R::P6BWCSTR *pbcsSearchIn, const P6R::P6BWCSTR *pbsDelimiters, P6R::P6BWCSTR *pbcsToken)=0
Extracts a the first token from a string described by a P6BWCSTR, where the tokens are delimited by t...
virtual P6R::P6ERR host2ns(P6R::P6UINT16 nHostShort, P6R::P6UINT16 *pNetShort)=0
This method is used convert a P6UINT16 from host byte-order into network byte-order.
virtual P6R::P6ERR bstrchr(const P6R::P6BCSTR *pbcsStr, P6R::P6INT16 c, P6R::P6BCSTR *pRetPtr)=0
Finds the first occurance of c in pbcString,.
virtual P6R::P6ERR setMemSecure(P6R::P6VOID *pMemory, P6R::P6INT nValue, P6R::P6SIZE nBytes)=0
Set the specified number of bytes in pMemory to nValue.
virtual P6R::P6ERR strncat(P6R::P6CHAR *pszDest, P6R::P6SIZE cDest, const P6R::P6CHAR *pszSource, P6R::P6SIZE cCount)=0
Concatentates cCount characters from pszSource onto pszDest and always NULL terminates the output...
virtual P6R::P6ERR wstrlcpy(P6R::P6WCHAR *pszDest, P6R::P6SIZE cDest, const P6R::P6WCHAR *pszSource, P6R::P6SIZE *pcCopied)=0
Copies a wide character string.
virtual P6R::P6ERR bstrlwr(P6R::P6BSTR *pbsStr)=0
Converts the specified P6BSTR to lowercase ASCII in-place.
virtual P6R::P6ERR bstrSetMemSecure(P6R::P6BSTR *pMemory, P6R::P6INT nValue)=0
Set the entire contents of a P6BSTR to nValue.
double P6FLOAT
Definition: p6types.h:63
virtual P6R::P6ERR uint64ToStringW(P6R::P6UINT64 value, P6R::P6WCHAR *pBuffer, P6R::P6SIZE cBuffer, P6R::P6UINT32 radix, P6R::P6SIZE *pcWritten)=0
Convert an unsigned 64 bit integer to a P6WCHAR string with the specified radix.
virtual P6R::P6ERR reverseString(P6R::P6CHAR *pBuffer, P6R::P6SIZE cStart, P6R::P6SIZE cEnd)=0
Reverse a string in place given starting and ending offests, allowing any portion, or the entire string to be reversed.
virtual P6R::P6ERR atollEx(const P6R::P6CHAR *pString, P6R::P6SIZE cchMax, P6R::P6INT64 *pRetLongLong, P6R::P6CHAR **ppEndPtr)=0
This method is an enhanced version of atoll() used to convert an ascii number string string into an P...
virtual P6R::P6ERR wstrupr(P6R::P6WCHAR *pszStr, P6R::P6SIZE cchMax)=0
Converts the specified NULL terminated wide string to uppercase in-place.
virtual P6R::P6ERR uint32ToStringW(P6R::P6UINT32 value, P6R::P6WCHAR *pBuffer, P6R::P6SIZE cBuffer, P6R::P6UINT32 radix, P6R::P6SIZE *pcWritten)=0
Convert an unsigned 32 bit integer to a P6WCHAR string with the specified radix.
virtual P6R::P6ERR strsep(const P6R::P6CHAR **ppszSearchIn, const P6R::P6CHAR *pszDelimiters, P6R::P6BCSTR *pbcsToken)=0
Extracts a the first token from a string, where the tokens are delimited by the characters in pszDeli...
virtual P6R::P6ERR bstricmp(const P6R::P6BCSTR *s1, const P6R::P6BCSTR *s2, P6R::P6INT32 *pRetval)=0
Case-insensitively compares two P6R::P6BCSTR's.
virtual P6R::P6ERR wstrlen(const P6R::P6WCHAR *pwszString, P6R::P6SIZE cchMax, P6R::P6SIZE *pcLen)=0
Calculates the length of a string (excluding the NULL terminator).
virtual P6R::P6ERR floatToString(P6R::P6FLOAT value, P6R::P6CHAR *pBuffer, P6R::P6SIZE cBuffer, P6R::P6SIZE *pcWritten)=0
Convert a P6R::P6FLOAT to a string.
virtual P6R::P6ERR atolW(const P6R::P6WCHAR *pString, P6R::P6SIZE cchMax, P6R::P6INT32 *pRetLong)=0
This method converts the wide string pointed to by pString into a P6R::P6INT32.
void P6VOID
Definition: p6types.h:75
virtual P6R::P6ERR compareMem(const P6R::P6VOID *pMem1, const P6R::P6VOID *pMem2, P6R::P6SIZE nBytes, P6R::P6INT32 *pResult)=0
Compares bytes in two buffers.
virtual P6R::P6ERR host2nl(P6R::P6UINT32 nHostLong, P6R::P6UINT32 *pNetLong)=0
This method is used convert a P6UINT32 from host byte-order into network byte-order.
virtual P6R::P6ERR bstrcmp(const P6R::P6BCSTR *s1, const P6R::P6BCSTR *s2, P6R::P6INT32 *pRetval)=0
Case-sensitively compares two P6R::P6BCSTR's.
virtual P6R::P6ERR bstrSetMem(P6R::P6BSTR *pMemory, P6R::P6INT nValue)=0
Set the entire contents of a P6BSTR to nValue.
Argument definition.
Definition: p6types.h:504
virtual P6R::P6ERR net2hl(P6R::P6UINT32 nNetLong, P6R::P6UINT32 *pHostLong)=0
This method is used convert a P6UINT32 from network byte-order into host byte-order.
virtual P6R::P6ERR int32ToString(P6R::P6INT32 value, P6R::P6CHAR *pBuffer, P6R::P6SIZE cBuffer, P6R::P6UINT32 radix, P6R::P6SIZE *pcWritten)=0
Convert a signed 32 bit integer to a P6CHAR string with the specified radix.
virtual P6R::P6ERR floatToStringW(P6R::P6FLOAT value, P6R::P6WCHAR *pBuffer, P6R::P6SIZE cBuffer, P6R::P6SIZE *pcWritten)=0
Convert a P6R::P6FLOAT to a wide string.
char P6CHAR
Narrow character type.
Definition: p6types.h:71