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 #include "p6comptr.h"
19 
20 
21 #ifdef __cplusplus
22 namespace P6R {
23 extern "C" {
24 #endif
25 
30 
32  #define P6INVALIDATOM (P6R::P6ATOM)0
33 
41  #undef INTERFACE
42  #define INTERFACE p6IAtom
43  P6DECLAREIF_(p6IAtom,p6ICom)
44  {
46 
58  P6DECLCOMMETHOD(addAtom)(P6THIS_ const P6CHAR *pszString,P6ATOM *pAtom) P6PURE;
59 
73  P6DECLCOMMETHOD(getAtomString)(P6THIS_ P6ATOM atom,P6CHAR *pBuffer,P6SIZE *pcBuffer) P6PURE;
74 
84  P6DECLCOMMETHOD(removeAtom)(P6THIS_ P6ATOM atom) P6PURE;
85  };
86 
88  #define IF_p6IAtom {0x32804623,0x1DCD,0x4103,{0xB2,0x30,0x4A,0xCE,0x1F,0x2B,0xC6,0x5F}}
89 
90 
91 
92 
98  #undef INTERFACE
99  #define INTERFACE p6IEnumCategories
100  P6DECLAREIF_(p6IEnumCategories,p6ICom)
101  {
103 
121  P6DECLCOMMETHOD(next)(P6THIS_ P6UINT32 cElements,P6CATID *parElements,P6UINT32 *pcReturned) P6PURE;
122 
131  P6DECLCOMMETHOD(reset)(P6THIS) P6PURE;
132  };
133  #define IF_p6IEnumCategories {0x0BE1E15B,0xF964,0x4be4,{0x8E,0x71,0xA3,0xE2,0x98,0xA2,0xD5,0x35}}
134 
140  #undef INTERFACE
141  #define INTERFACE p6IEnumCategoryComponents
142  P6DECLAREIF_(p6IEnumCategoryComponents,p6ICom)
143  {
145 
163  P6DECLCOMMETHOD(next)(P6THIS_ P6UINT32 cElements,P6CID *parElements,P6UINT32 *pcReturned) P6PURE;
164 
173  P6DECLCOMMETHOD(reset)(P6THIS) P6PURE;
174  };
175  #define IF_p6IEnumCategoryComponents {0xACD65F14,0xD83E,0x4cb2,{0x8C,0x8A,0x38,0x47,0x11,0x84,0x8F,0x7A}}
176 
204  #undef INTERFACE
205  #define INTERFACE p6ICategoryMgr
206  P6DECLAREIF_(p6ICategoryMgr,p6ICom)
207  {
209 
223  P6DECLCOMMETHOD(addCategory)(P6THIS_ const P6REFCATID catid,const P6WCHAR *pszName) P6PURE;
224 
228  P6DECLCOMMETHOD(removeCategory)(P6THIS_ const P6REFCATID catid) P6PURE;
229 
233  P6DECLCOMMETHOD(enumCategories)(P6THIS_ p6IEnumCategories **ppEnum) P6PURE;
234 
239  P6DECLCOMMETHOD(addCategoryComponent)(P6THIS_ const P6REFCATID catid,const P6WCHAR *pszName,const P6REFCID cid) P6PURE;
240 
244  P6DECLCOMMETHOD(removeCategoryComponent)(P6THIS_ const P6REFCATID catid,const P6REFCID cid) P6PURE;
245 
249  P6DECLCOMMETHOD(enumCategoryComponents)(P6THIS_ const P6REFCATID catid,p6IEnumCategoryComponents **ppEnum) P6PURE;
250  };
251  #define IF_p6ICategoryMgr {0x40768F08,0x4107,0x42ca,{0x9D,0x73,0x8B,0x1E,0xCD,0x03,0xCD,0x62}}
252 
266  #undef INTERFACE
267  #define INTERFACE p6IComponentMgr
268  P6DECLAREIF_(p6IComponentMgr,p6ICom)
269  {
271 
286  P6DECLCOMMETHOD(getComponentFactory)(P6THIS_ const P6REFCID cid,const P6REFIID iid,P6VOID **ppIface) P6PURE;
287 
308  P6DECLCOMMETHOD(createInstance)(P6THIS_ p6ICom *pOuter,const P6REFCID cid,const P6REFIID iid,P6VOID **ppIface) P6PURE;
309  };
310  #define IF_p6IComponentMgr {0x17e66188, 0xf9ae, 0x437e, {0xac, 0x8b, 0xbf, 0x73, 0xa8, 0xa7, 0x28, 0x96}}
311 
312 
313 
320  typedef enum {
321  ICSS_STARTING,
322  ICSS_RUNNING,
323  ICSS_STOPPING,
324  ICSS_STOPPED,
325  ICSS_MAX
326  } ICSS;
327 
328  #define MAX_SERVICE_NAME 32
329 
330 
331  typedef struct {
332  ICSS m_nState;
333  P6CID m_componentID;
334  P6UINT16 m_loadOrder;
335  P6WCHAR m_szName[MAX_SERVICE_NAME];
336  } P6SERVICEINFO;
337 
344  #undef INTERFACE
345  #define INTERFACE p6IEnumServices
346  P6DECLAREIF_(p6IEnumServices,p6ICom)
347  {
349 
369  P6DECLCOMMETHOD(next)(P6THIS_ P6UINT32 cElements,P6SERVICEINFO *parElements,P6UINT32 *pcReturned) P6PURE;
370 
379  P6DECLCOMMETHOD(reset)(P6THIS) P6PURE;
380  };
381 
382 
388  #undef INTERFACE
389  #define INTERFACE p6IEnvironment
390  P6DECLAREIF_(p6IEnvironment,p6ICom)
391  {
393 
410  P6DECLCOMMETHOD(getEnv)(P6THIS_ const P6CHAR *pszName,P6CHAR *pBuffer,P6UINT32 cBuffer,P6UINT32 *pcWritten) P6PURE;
411 
428  P6DECLCOMMETHOD(getEnvW)(P6THIS_ const P6WCHAR *pwszName,P6WCHAR *pBuffer,P6UINT32 cBuffer,P6UINT32 *pcWritten) P6PURE;
429 
430  };
431 
432  // {485D6B1E-A081-45b7-AF2A-520F528128C4}
433  #define IF_p6IEnvironment {0x485d6b1e,0xa081,0x45b7,{0xaf,0x2a,0x52,0xf,0x52,0x81,0x28,0xc4}}
434 
435 
436 
437 
438 
442  #define P6MAX_EVENTID_LEN 128
443 
444 
448  typedef P6VOID (*P6HANDLEEVENT)(const P6CHAR *pszEventId,P6VOID *pCtx,P6VOID *pData);
449 
456  #undef INTERFACE
457  #define INTERFACE p6IEventMgr
458  P6DECLAREIF_(p6IEventMgr,p6ICom)
459  {
461 
473  P6DECLCOMMETHOD(registerForEvent)(P6THIS_ const P6CHAR *pszEventID,P6HANDLEEVENT pfnHandler,P6VOID *pCtx) P6PURE;
474 
487  P6DECLCOMMETHOD(unregisterForEvent)(P6THIS_ const P6CHAR *pszEventID,P6HANDLEEVENT pfnHandler,P6VOID **ppCtx) P6PURE;
488 
500  P6DECLCOMMETHOD(generateEvent)(P6THIS_ const P6CHAR *pszEventID,P6VOID *pData) P6PURE;
501  };
502  #define IF_p6IEventMgr {0xF2F9C170,0xA926,0x4864,{0x83,0x32,0xFE,0xA7,0xE4,0xBE,0xEB,0x0A}}
503 
504 
509  #undef INTERFACE
510  #define INTERFACE p6IServer
511  P6DECLAREIF_(p6IServer,p6ICom)
512  {
514 
524 
532  P6DECLCOMMETHOD(shutdown)(P6THIS) P6PURE;
533  };
534  // {0E94A85F-1C97-4036-B4F7-963B33509B09}
535  #define IF_p6IServer {0x0E94A85F,0x1C97,0x4036,{0xB4,0xF7,0x96,0x3B,0x33,0x50,0x9B,0x09}}
536 
537 
538 
546  #undef INTERFACE
547  #define INTERFACE p6IRunningIface
548  P6DECLAREIF_(p6IRunningIface,p6ICom)
549  {
551 
562  P6DECLCOMMETHOD(registerInterface)(P6THIS_ P6ATOM atom,p6ICom *pIface) P6PURE;
563 
579  P6DECLCOMMETHOD(findInterface)(P6THIS_ P6ATOM atom,const P6REFIID iid,P6VOID **ppIface) P6PURE;
580 
600  P6DECLCOMMETHOD(findInterfaceByString)(P6THIS_ const P6CHAR *pszIndentifier,const P6REFIID iid,P6VOID **ppIface) P6PURE;
610  P6DECLCOMMETHOD(unregisterInterface)(P6THIS_ P6ATOM atom) P6PURE;
611  };
613  #define IF_p6IRunningIface {0x393A85DF,0x7442,0x43ab,{0xA7,0xC7,0x52,0xD9,0x6C,0x53,0x47,0x12}}
614 
632  #undef INTERFACE
633  #define INTERFACE p6ISafeString
635  {
637 
658  P6DECLCOMMETHOD(atol)(P6THIS_ const P6CHAR *pString,P6SIZE cchMax,P6INT32 *pRetLong) P6PURE;
659 
686  P6DECLCOMMETHOD(atolEx)(P6THIS_ const P6CHAR *pString,P6SIZE cchMax,P6INT32 *pRetLong,P6CHAR **ppEndPtr) P6PURE;
687 
707  P6DECLCOMMETHOD(atoll)(P6THIS_ const P6CHAR *pString,P6SIZE cchMax,P6INT64 *pRetLongLong) P6PURE;
708 
735  P6DECLCOMMETHOD(atollEx)(P6THIS_ const P6CHAR *pString,P6SIZE cchMax,P6INT64 *pRetLongLong,P6CHAR **ppEndPtr) P6PURE;
736 
757  P6DECLCOMMETHOD(atolW)(P6THIS_ const P6WCHAR *pString,P6SIZE cchMax,P6INT32 *pRetLong) P6PURE;
758 
759 
775  P6DECLCOMMETHOD(bstrcmp)(P6THIS_ const P6BCSTR *s1,const P6BCSTR *s2,P6INT32 *pRetval) P6PURE;
776 
792  P6DECLCOMMETHOD(bstricmp)(P6THIS_ const P6BCSTR *s1,const P6BCSTR *s2,P6INT32 *pRetval) P6PURE;
793 
813  P6DECLCOMMETHOD(bstrncmp)(P6THIS_ const P6BCSTR *s1,const P6BCSTR *s2,P6SIZE nCount,P6INT32 *pRetval) P6PURE;
814 
834  P6DECLCOMMETHOD(bstrnicmp)(P6THIS_ const P6BCSTR *s1,const P6BCSTR *s2,P6SIZE nCount,P6INT32 *pRetval) P6PURE;
835 
853  P6DECLCOMMETHOD(bstrsubcmp)(P6THIS_ const P6BCSTR *s1,const P6BCSTR *s2,P6INT32 *pRetval) P6PURE;
854 
872  P6DECLCOMMETHOD(bstrsubicmp)(P6THIS_ const P6BCSTR *s1,const P6BCSTR *s2,P6INT32 *pRetval) P6PURE;
873 
893  P6DECLCOMMETHOD(bstrchr)(P6THIS_ const P6BCSTR *pbcsStr,P6INT16 c,P6BCSTR *pRetPtr) P6PURE;
894 
904  P6DECLCOMMETHOD(bstrlwr)(P6THIS_ P6BSTR *pbsStr) P6PURE;
905 
925  P6DECLCOMMETHOD(bstrrchr)(P6THIS_ const P6BCSTR *pbcsStr,P6INT16 c,P6BCSTR *pRetPtr) P6PURE;
926 
952  P6DECLCOMMETHOD(bstrsep)(P6THIS_ P6BCSTR *pbcsSearchIn,const P6BCSTR *pbsDelimiters,P6BCSTR *pbcsToken) P6PURE;
953 
983  P6DECLCOMMETHOD(bstrspn)(P6THIS_ P6BCSTR *pbcsSearchIn,const P6BCSTR *pbcsSearchSet,P6BCSTR *pbcsFound) P6PURE;
984 
999  P6DECLCOMMETHOD(bstrbstr)(P6THIS_ const P6BCSTR *pbcsSearchIn,P6BCSTR const *pbcsSearchFor,P6BCSTR *pbcsFound) P6PURE;
1000 
1015  P6DECLCOMMETHOD(bstribstr)(P6THIS_ const P6BCSTR *pbcsSearchIn,P6BCSTR const *pbcsSearchFor,P6BCSTR *pbcsFound) P6PURE;
1016 
1026  P6DECLCOMMETHOD(bstrupr)(P6THIS_ P6BSTR *pbsStr) P6PURE;
1027 
1039  P6DECLCOMMETHOD(bstrSetMem)(P6THIS_ P6BSTR *pMemory,P6INT nValue) P6PURE;
1040 
1075  P6DECLCOMMETHOD(bstrSetMemSecure)(P6THIS_ P6BSTR *pMemory,P6INT nValue) P6PURE;
1076 
1102  P6DECLCOMMETHOD(bwstrsep)(P6THIS_ P6BWCSTR *pbcsSearchIn,const P6BWCSTR *pbsDelimiters,P6BWCSTR *pbcsToken) P6PURE;
1103 
1119  P6DECLCOMMETHOD(bwstrcmp)(P6THIS_ const P6BWCSTR *s1,const P6BWCSTR *s2,P6INT32 *pRetval) P6PURE;
1120 
1136  P6DECLCOMMETHOD(bwstricmp)(P6THIS_ const P6BWCSTR *s1,const P6BWCSTR *s2,P6INT32 *pRetval) P6PURE;
1137 
1157  P6DECLCOMMETHOD(bwstrncmp)(P6THIS_ const P6BWCSTR *s1,const P6BWCSTR *s2,P6SIZE nCount,P6INT32 *pRetval) P6PURE;
1158 
1178  P6DECLCOMMETHOD(bwstrnicmp)(P6THIS_ const P6BWCSTR *s1,const P6BWCSTR *s2,P6SIZE nCount,P6INT32 *pRetval) P6PURE;
1179 
1193  P6DECLCOMMETHOD(bwstrlcpy)(P6THIS_ P6WCHAR *pszDest,P6SIZE cDest,const P6BWCSTR *pSource) P6PURE;
1194 
1212  P6DECLCOMMETHOD(bwstrsubcmp)(P6THIS_ const P6BWCSTR *s1,const P6BWCSTR *s2,P6INT32 *pRetval) P6PURE;
1213 
1231  P6DECLCOMMETHOD(bwstrsubicmp)(P6THIS_ const P6BWCSTR *s1,const P6BWCSTR *s2,P6INT32 *pRetval) P6PURE;
1232 
1252  P6DECLCOMMETHOD(bwstrchr)(P6THIS_ const P6BWCSTR *pbcsStr,P6INT16 c,P6BWCSTR *pRetPtr) P6PURE;
1253 
1263  P6DECLCOMMETHOD(bwstrlwr)(P6THIS_ P6BWSTR *pbsStr) P6PURE;
1264 
1284  P6DECLCOMMETHOD(bwstrrchr)(P6THIS_ const P6BWCSTR *pbcsStr,P6INT16 c,P6BWCSTR *pRetPtr) P6PURE;
1285 
1303  P6DECLCOMMETHOD(compareMem)(P6THIS_ const P6VOID *pMem1,const P6VOID *pMem2,P6SIZE nBytes,P6INT32 *pResult) P6PURE;
1304 
1319  P6DECLCOMMETHOD(copyMem)(P6THIS_ P6VOID *pDest,P6SIZE cDest,const P6VOID *pSource,P6SIZE nBytes) P6PURE;
1320 
1340  P6DECLCOMMETHOD(copyMemSecure)(P6THIS_ P6VOID *pDest,P6SIZE cDest,const P6VOID *pSource,P6SIZE nBytes) P6PURE;
1341 
1355  P6DECLCOMMETHOD(floatToString)(P6THIS_ P6FLOAT value,P6CHAR *pBuffer,P6SIZE cBuffer,P6SIZE *pcWritten) P6PURE;
1356 
1370  P6DECLCOMMETHOD(floatToStringW)(P6THIS_ P6FLOAT value,P6WCHAR *pBuffer,P6SIZE cBuffer,P6SIZE *pcWritten) P6PURE;
1371 
1398  P6DECLCOMMETHOD(formatString)(P6THIS_ P6CHAR *pBuffer,P6SIZE cBuffer,P6SIZE *pcWritten,const P6CHAR *pszFormat,const P6ARG *pArgs,P6SIZE cArgs) P6PURE;
1399 
1430  P6DECLCOMMETHOD(formatStringW)(P6THIS_ P6WCHAR *pBuffer,P6SIZE cBuffer,P6SIZE *pcWritten,const P6WCHAR *pszFormat,const P6ARG *pArgs,P6SIZE cArgs) P6PURE;
1431 
1447  P6DECLCOMMETHOD(int16ToString)(P6THIS_ P6INT16 value,P6CHAR *pBuffer,P6SIZE cBuffer,P6UINT32 radix,P6SIZE *pcWritten) P6PURE;
1448 
1464  P6DECLCOMMETHOD(int16ToStringW)(P6THIS_ P6INT16 value,P6WCHAR *pBuffer,P6SIZE cBuffer,P6UINT32 radix,P6SIZE *pcWritten) P6PURE;
1465 
1481  P6DECLCOMMETHOD(int32ToString)(P6THIS_ P6INT32 value,P6CHAR *pBuffer,P6SIZE cBuffer,P6UINT32 radix,P6SIZE *pcWritten) P6PURE;
1482 
1498  P6DECLCOMMETHOD(int32ToStringW)(P6THIS_ P6INT32 value,P6WCHAR *pBuffer,P6SIZE cBuffer,P6UINT32 radix,P6SIZE *pcWritten) P6PURE;
1499 
1515  P6DECLCOMMETHOD(int64ToString)(P6THIS_ P6INT64 value,P6CHAR *pBuffer,P6SIZE cBuffer,P6UINT32 radix,P6SIZE *pcWritten) P6PURE;
1516 
1532  P6DECLCOMMETHOD(int64ToStringW)(P6THIS_ P6INT64 value,P6WCHAR *pBuffer,P6SIZE cBuffer,P6UINT32 radix,P6SIZE *pcWritten) P6PURE;
1533 
1550  P6DECLCOMMETHOD(moveMem)(P6THIS_ P6VOID *pDest,P6SIZE cDest,const P6VOID *pSource,P6SIZE nBytes) P6PURE;
1551 
1573  P6DECLCOMMETHOD(moveMemSecure)(P6THIS_ P6VOID *pDest,P6SIZE cDest,const P6VOID *pSource,P6SIZE nBytes) P6PURE;
1574 
1591  P6DECLCOMMETHOD(reverseString)(P6THIS_ P6CHAR *pBuffer,P6SIZE cStart,P6SIZE cEnd) P6PURE;
1592 
1609  P6DECLCOMMETHOD(reverseStringW)(P6THIS_ P6WCHAR *pBuffer,P6SIZE cStart,P6SIZE cEnd) P6PURE;
1610 
1611 
1624  P6DECLCOMMETHOD(setMem)(P6THIS_ P6VOID *pMemory,P6INT nValue,P6SIZE nBytes) P6PURE;
1625 
1660  P6DECLCOMMETHOD(setMemSecure)(P6THIS_ P6VOID *pMemory,P6INT nValue,P6SIZE nBytes) P6PURE;
1661 
1662 
1663 
1664 
1683  P6DECLCOMMETHOD(sizetToString)(P6THIS_ P6SIZE value,P6CHAR *pBuffer,P6SIZE cBuffer,P6UINT32 radix,P6SIZE *pcWritten) P6PURE;
1684 
1703  P6DECLCOMMETHOD(sizetToStringW)(P6THIS_ P6SIZE value,P6WCHAR *pBuffer,P6SIZE cBuffer,P6UINT32 radix,P6SIZE *pcWritten) P6PURE;
1704 
1726  P6DECLCOMMETHOD(strchr)(P6THIS_ const P6CHAR *pStr,P6INT16 c,P6SIZE cchMax,P6CHAR **ppRetPtr) P6PURE;
1727 
1742  P6DECLCOMMETHOD(strcmp)(P6THIS_ const P6CHAR *pStr1,const P6CHAR *pStr2,P6SIZE cchMax,P6INT32 *pRetval) P6PURE;
1743 
1760  P6DECLCOMMETHOD(strdup)(P6THIS_ const P6CHAR* pString,P6CHAR **ppCopy) P6PURE;
1761 
1779  P6DECLCOMMETHOD(strdupbstr)(P6THIS_ const P6BCSTR* pString,P6CHAR **ppCopy) P6PURE;
1780 
1794  P6DECLCOMMETHOD(strfree)(P6THIS_ const P6CHAR *pString) P6PURE;
1795 
1812  P6DECLCOMMETHOD(stricmp)(P6THIS_ const P6CHAR *pStr1,const P6CHAR *pStr2,P6SIZE cchMax,P6INT32 *pRetval) P6PURE;
1813 
1836  P6DECLCOMMETHOD(stristr)(P6THIS_ const P6CHAR *searchIn,const P6CHAR *searchFor,P6SIZE cchMax,P6CHAR **ppRetptr) P6PURE;
1837 
1857  P6DECLCOMMETHOD(strlcat)(P6THIS_ P6CHAR *pszDest,P6SIZE cDest,const P6CHAR *pszSource,P6SIZE *pcCopied) P6PURE;
1858 
1872  P6DECLCOMMETHOD(strlcatbstr)(P6THIS_ P6CHAR *pszDest,P6SIZE cDest,const P6BCSTR *pbsSource,P6SIZE *pcCopied) P6PURE;
1873 
1898  P6DECLCOMMETHOD(strlcpy)(P6THIS_ P6CHAR *pszDest,P6SIZE cDest,const P6CHAR *pszSource,P6SIZE *pcCopied) P6PURE;
1899 
1910  P6DECLCOMMETHOD(strlcpybstr)(P6THIS_ P6CHAR *pszDest,P6SIZE cDest,const P6BCSTR *pbsSource,P6SIZE *pcCopied) P6PURE;
1911 
1932  P6DECLCOMMETHOD(strlen)(P6THIS_ const P6CHAR *pStr,P6SIZE cchMax,P6SIZE *pcSize) P6PURE;
1933 
1960  P6DECLCOMMETHOD(strlncpy)(P6THIS_ P6CHAR *pszDest,P6SIZE cDest,const P6CHAR *pszSource,P6SIZE cSourceLen,P6SIZE *pcCopied) P6PURE;
1961 
1975  P6DECLCOMMETHOD(strlwr)(P6THIS_ P6CHAR *pszStr,P6SIZE cchMax) P6PURE;
1976 
1992  P6DECLCOMMETHOD(strncat)(P6THIS_ P6CHAR *pszDest,P6SIZE cDest,const P6CHAR *pszSource,P6SIZE cCount) P6PURE;
1993 
2011  P6DECLCOMMETHOD(strncmp)(P6THIS_ const P6CHAR *pStr1,const P6CHAR *pStr2,P6SIZE length,P6INT32 *pRetval) P6PURE;
2012 
2030  P6DECLCOMMETHOD(strnicmp)(P6THIS_ const P6CHAR *pStr1,const P6CHAR *pStr2,P6SIZE length,P6INT32 *pRetval) P6PURE;
2031 
2048  P6DECLCOMMETHOD(strrchr)(P6THIS_ const P6CHAR *pStr,P6INT16 c,P6SIZE cchMax,P6CHAR **ppRetPtr) P6PURE;
2049 
2078  P6DECLCOMMETHOD(strsep)(P6THIS_ const P6CHAR **ppszSearchIn,const P6CHAR *pszDelimiters,P6BCSTR *pbcsToken) P6PURE;
2079 
2102  P6DECLCOMMETHOD(strstr)(P6THIS_ const P6CHAR *searchIn,const P6CHAR *searchFor,P6SIZE cchMax,P6CHAR **ppRetptr) P6PURE;
2103 
2123  P6DECLCOMMETHOD(strToBool)(P6THIS_ const P6CHAR *pBoolStr,P6BOOL *pBool) P6PURE;
2124 
2138  P6DECLCOMMETHOD(strupr)(P6THIS_ P6CHAR *pszStr,P6SIZE cchMax) P6PURE;
2139 
2153  P6DECLCOMMETHOD(trimEnd)(P6THIS_ P6CHAR *pszStr,P6SIZE cchMax) P6PURE;
2154 
2168  P6DECLCOMMETHOD(trimEndW)(P6THIS_ P6WCHAR *pszStr,P6SIZE cchMax) P6PURE;
2169 
2188  P6DECLCOMMETHOD(replace)(P6THIS_ P6CHAR *pString,P6CHAR chOrig,const P6CHAR chReplacement,P6SIZE cchMax) P6PURE;
2189 
2204  P6DECLCOMMETHOD(uint16ToString)(P6THIS_ P6UINT16 value,P6CHAR *pBuffer,P6SIZE cBuffer,P6UINT32 radix,P6SIZE *pcWritten) P6PURE;
2205 
2220  P6DECLCOMMETHOD(uint16ToStringW)(P6THIS_ P6UINT16 value,P6WCHAR *pBuffer,P6SIZE cBuffer,P6UINT32 radix,P6SIZE *pcWritten) P6PURE;
2221 
2236  P6DECLCOMMETHOD(uint32ToString)(P6THIS_ P6UINT32 value,P6CHAR *pBuffer,P6SIZE cBuffer,P6UINT32 radix,P6SIZE *pcWritten) P6PURE;
2237 
2252  P6DECLCOMMETHOD(uint32ToStringW)(P6THIS_ P6UINT32 value,P6WCHAR *pBuffer,P6SIZE cBuffer,P6UINT32 radix,P6SIZE *pcWritten) P6PURE;
2253 
2268  P6DECLCOMMETHOD(uint64ToString)(P6THIS_ P6UINT64 value,P6CHAR *pBuffer,P6SIZE cBuffer,P6UINT32 radix,P6SIZE *pcWritten) P6PURE;
2269 
2284  P6DECLCOMMETHOD(uint64ToStringW)(P6THIS_ P6UINT64 value,P6WCHAR *pBuffer,P6SIZE cBuffer,P6UINT32 radix,P6SIZE *pcWritten) P6PURE;
2285 
2309  P6DECLCOMMETHOD(utf8ToWcs)(P6THIS_ P6WCHAR* pDest,P6SIZE* dstSize,const P6CHAR* pSource) P6PURE;
2310 
2335  P6DECLCOMMETHOD(utf8nToWcs)(P6THIS_ P6WCHAR* pDest,P6SIZE* dstSize,const P6CHAR* pSource,P6SIZE cCount) P6PURE;
2336 
2337 
2361  P6DECLCOMMETHOD(wcsToUtf8)(P6THIS_ P6CHAR* pDest,P6SIZE* dstSize,const P6WCHAR* pSource) P6PURE;
2362 
2387  P6DECLCOMMETHOD(wcsnToUtf8)(P6THIS_ P6CHAR* pDest,P6SIZE* dstSize,const P6WCHAR* pSource,P6SIZE cCount) P6PURE;
2388 
2389 
2404  P6DECLCOMMETHOD(wsetMem)(P6THIS_ P6WCHAR *pMemory,P6WCHAR nValue,P6SIZE nChars) P6PURE;
2405 
2406 
2425  P6DECLCOMMETHOD(wstrchr)(P6THIS_ const P6WCHAR *pStr,P6WCHAR c,P6SIZE cchMax,P6WCHAR **ppRetPtr) P6PURE;
2426 
2446  P6DECLCOMMETHOD(wstrcmp)(P6THIS_ const P6WCHAR *s1,const P6WCHAR *s2,P6SIZE cchMax,P6INT32 *pRetval) P6PURE;
2447 
2467  P6DECLCOMMETHOD(wstricmp)(P6THIS_ const P6WCHAR *s1,const P6WCHAR *s2,P6SIZE cchMax,P6INT32 *pRetval) P6PURE;
2468 
2484  P6DECLCOMMETHOD(wstrdup)(P6THIS_ const P6WCHAR* pString,P6WCHAR **ppCopy) P6PURE;
2485 
2503  P6DECLCOMMETHOD(wstrdupbstr)(P6THIS_ const P6BWCSTR* pString,P6WCHAR **ppCopy) P6PURE;
2504 
2515  P6DECLCOMMETHOD(wstrfree)(P6THIS_ const P6WCHAR *pString) P6PURE;
2516 
2533  P6DECLCOMMETHOD(wstrlcat)(P6THIS_ P6WCHAR *pszDest,P6SIZE cDest,const P6WCHAR *pszSource,P6SIZE *pcCopied) P6PURE;
2534 
2551  P6DECLCOMMETHOD(wstrlcpy)(P6THIS_ P6WCHAR *pszDest,P6SIZE cDest,const P6WCHAR *pszSource,P6SIZE *pcCopied) P6PURE;
2552 
2569  P6DECLCOMMETHOD(wstrlen)(P6THIS_ const P6WCHAR *pwszString,P6SIZE cchMax,P6SIZE *pcLen) P6PURE;
2570 
2590  P6DECLCOMMETHOD(wstrlncpy)(P6THIS_ P6WCHAR *pszDest,P6SIZE cDest,const P6WCHAR *pszSource,P6SIZE cSourceLen,P6SIZE *pcCopied) P6PURE;
2591 
2603  P6DECLCOMMETHOD(wstrncat)(P6THIS_ P6WCHAR *pszDest,P6SIZE cDest,const P6WCHAR *pszSource,P6SIZE cCount) P6PURE;
2604 
2617  P6DECLCOMMETHOD(wstrncmp)(P6THIS_ const P6WCHAR *s1,const P6WCHAR *s2,P6SIZE length,P6INT32 *pRetval) P6PURE;
2618 
2631  P6DECLCOMMETHOD(wstrnicmp)(P6THIS_ const P6WCHAR *s1,const P6WCHAR *s2,P6SIZE length,P6INT32 *pRetval) P6PURE;
2632 
2661  P6DECLCOMMETHOD(wstrsep)(P6THIS_ const P6WCHAR **ppszSearchIn,const P6WCHAR *pszDelimiters,P6BWCSTR *pbcsToken) P6PURE;
2662 
2682  P6DECLCOMMETHOD(wstrrchr)(P6THIS_ const P6WCHAR *pszSearchIn,P6INT16 c,P6SIZE cchMax,P6WCHAR **ppRetPtr) P6PURE;
2683 
2706  P6DECLCOMMETHOD(wstrstr)(P6THIS_ const P6WCHAR *searchIn,const P6WCHAR *searchFor,P6SIZE cchMax,P6WCHAR **ppRetptr) P6PURE;
2707 
2727  P6DECLCOMMETHOD(wstrToBool)(P6THIS_ const P6WCHAR *pBoolStr,P6BOOL *pBool) P6PURE;
2728 
2742  P6DECLCOMMETHOD(wstrupr)(P6THIS_ P6WCHAR *pszStr,P6SIZE cchMax) P6PURE;
2743 
2762  P6DECLCOMMETHOD(wreplace)(P6THIS_ P6WCHAR *pString,P6WCHAR chOrig,const P6WCHAR chReplacement,P6SIZE cchMax) P6PURE;
2763 
2792  P6DECLCOMMETHOD(hexDump)(P6THIS_ const P6VOID *pData,P6SIZE cData,P6CHAR *pBuffer,P6SIZE cBuffer,P6SIZE cBytesPerLine,P6SIZE *pcWritten) P6PURE;
2793 
2822  P6DECLCOMMETHOD(hexDumpW)(P6THIS_ const P6VOID *pData,P6SIZE cData,P6WCHAR *pBuffer,P6SIZE cBuffer,P6SIZE cBytesPerLine,P6SIZE *pcWritten) P6PURE;
2823  };
2824  // {1B77B8F2-9FBC-4d90-9B1F-211DA24CD823}
2825  #define IF_p6ISafeString {0x1B77B8F2,0x9FBC,0x4d90,{0x9B,0x1F,0x21,0x1D,0xA2,0x4C,0xD8,0x23}}
2826 
2827 
2829 
2839  #undef INTERFACE
2840  #define INTERFACE p6ISystemInfo
2841  P6DECLAREIF_(p6ISystemInfo,p6ICom)
2842  {
2844 
2864  P6DECLCOMMETHOD(getSystemName)(P6THIS_ P6WCHAR *pwszBuffer,P6UINT32 cBuffer) P6PURE;
2865 
2878  P6DECLCOMMETHOD(getOSName)(P6THIS_ P6WCHAR *pwszName,P6UINT32 cName) P6PURE;
2879 
2908  P6DECLCOMMETHOD(getOSVersion)(P6THIS_ P6WCHAR *pwszBuffer,P6UINT32 cBuffer) P6PURE;
2909 
2923  P6DECLCOMMETHOD(getNumProcessors)(P6THIS_ P6UINT32 *pcProcessors) P6PURE;
2924 
2925 
2936  P6DECLCOMMETHOD(getArchitecture)(P6THIS_ P6WCHAR *pwszBuffer,P6UINT32 cBuffer) P6PURE;
2937 
2949  P6DECLCOMMETHOD(getPageSize)(P6THIS_ P6UINT32 *pcPage) P6PURE;
2950  };
2951  // {56084D40-9165-42DF-8425-0B33E91D9AEF}
2952  #define IF_p6ISystemInfo {0x56084D40,0x9165,0x42DF,{0x84,0x25,0x0B,0x33,0xE9,0x1D,0x9A,0xEF}}
2953 
2955  typedef enum {
2959  } P6CONHANDLE;
2960 
2967  #undef INTERFACE
2968  #define INTERFACE p6IConsole
2970  {
2972 
2985  P6DECLCOMMETHOD(writeStdout)(P6THIS_ const P6CHAR *pFmt,P6ARG *pArgs,P6UINT32 cArgs,P6SIZE *pcBytesWritten) P6PURE;
2986 
2999  P6DECLCOMMETHOD(writeStdoutW)(P6THIS_ const P6WCHAR *pFmt,P6ARG *pArgs,P6UINT32 cArgs,P6SIZE *pcBytesWritten) P6PURE;
3000 
3013  P6DECLCOMMETHOD(writeStderr)(P6THIS_ const P6CHAR *pFmt,P6ARG *pArgs,P6UINT32 cArgs,P6SIZE *pcBytesWritten) P6PURE;
3014 
3027  P6DECLCOMMETHOD(writeStderrW)(P6THIS_ const P6WCHAR *pFmt,P6ARG *pArgs,P6UINT32 cArgs,P6SIZE *pcBytesWritten) P6PURE;
3028  P6DECLCOMMETHOD(readStdin)(P6THIS_ P6CHAR *pBuffer,P6SIZE cBytesToread,P6SIZE *pcBytesRead) P6PURE;
3029  };
3030 
3031  // {BA6864AD-935F-4C14-ABFC-3CA6C5CB2DE5}
3032  #define IF_p6IConsole {0xBA6864AD,0x935F,0x4C14,{0xAB,0xFC,0x3C,0xA6,0xC5,0xCB,0x2D,0xE5}}
3033 
3034 
3036  #undef INTERFACE
3037  #define INTERFACE p6IMarshalData
3038  P6DECLAREIF_(p6IMarshalData,p6ICom)
3039  {
3041  P6DECLCOMMETHOD(set8)(P6THIS_ const P6UINT8 val,P6P8BIT *pDest) P6PURE;
3042  P6DECLCOMMETHOD(set16)(P6THIS_ const P6UINT16 val,P6P16BIT *pDest) P6PURE;
3043  P6DECLCOMMETHOD(set32)(P6THIS_ const P6UINT32 val,P6P32BIT *pDest) P6PURE;
3044  P6DECLCOMMETHOD(set64)(P6THIS_ const P6UINT64 val,P6P64BIT *pDest) P6PURE;
3045  P6DECLCOMMETHOD(get8)(P6THIS_ const P6P8BIT *pVal,P6UINT8 *pDest) P6PURE;
3046  P6DECLCOMMETHOD(get16)(P6THIS_ const P6P16BIT *pVal,P6UINT16 *pDest) P6PURE;
3047  P6DECLCOMMETHOD(get32)(P6THIS_ const P6P32BIT *pVal,P6UINT32 *pDest) P6PURE;
3048  P6DECLCOMMETHOD(get64)(P6THIS_ const P6P64BIT *pVal,P6UINT64 *pDest) P6PURE;
3049  };
3050  // {CD8CECEA-DDE2-4F44-8002-56B90664E079}
3051  #define IF_p6IMarshalData {0xCD8CECEA,0xDDE2,0x4F44,{0x80,0x02,0x56,0xB9,0x06,0x64,0xE0,0x79}}
3052 
3061  #undef INTERFACE
3062  #define INTERFACE p6INetHelpers
3064  {
3079  P6DECLCOMMETHOD(host2nll)(P6THIS_ P6UINT64 nHostLong,P6UINT64 *pNetLong) P6PURE;
3080 
3081 
3095  P6DECLCOMMETHOD(host2nl)(P6THIS_ P6UINT32 nHostLong,P6UINT32 *pNetLong) P6PURE;
3096 
3110  P6DECLCOMMETHOD(host2ns)(P6THIS_ P6UINT16 nHostShort,P6UINT16 *pNetShort) P6PURE;
3111 
3125  P6DECLCOMMETHOD(net2hll)(P6THIS_ P6UINT64 nNetLong,P6UINT64 *pHostLong) P6PURE;
3126 
3140  P6DECLCOMMETHOD(net2hl)(P6THIS_ P6UINT32 nNetLong,P6UINT32 *pHostLong) P6PURE;
3141 
3155  P6DECLCOMMETHOD(net2hs)(P6THIS_ P6UINT16 nNetShort,P6UINT16 *pHostShort) P6PURE;
3156 
3183  P6DECLCOMMETHOD(strToNetAddr)(P6THIS_ const P6CHAR *pszAddr,P6NETADDR *pAddr) P6PURE;
3184 
3204  P6DECLCOMMETHOD(wStrToNetAddr)(P6THIS_ const P6WCHAR *pwszAddr,P6NETADDR *pAddr) P6PURE;
3205 
3231  P6DECLCOMMETHOD(netAddrToStr)(P6THIS_ const P6NETADDR *pAddr,P6CHAR *pBuffer,P6UINT32 cBuffer,P6UINT32 *pcBuffer,P6BOOL bAddPort) P6PURE;
3232 
3258  P6DECLCOMMETHOD(netAddrToWStr)(P6THIS_ const P6NETADDR *pAddr,P6WCHAR *pBuffer,P6UINT32 cBuffer,P6UINT32 *pcBuffer,P6BOOL bAddPort) P6PURE;
3259  };
3260  // {464F74EE-0D93-4ee9-9E5E-13EE0C94B53D}
3261  #define IF_p6INetHelpers {0x464F74EE,0x0D93,0x4ee9,{0x9E,0x5E,0x13,0xEE,0x0C,0x94,0xB5,0x3D}}
3262 
3272  #undef INTERFACE
3273  #define INTERFACE p6ITraceFile
3275  {
3277 
3278  P6DECLCOMMETHOD(trace)(P6THIS_ const P6CHAR *pFmt,P6ARG *pArgs,P6SIZE cArgs) P6PURE;
3279  P6DECLCOMMETHOD(traceFunctionBegin)(P6THIS_ const P6CHAR *pszFile,P6SIZE cLine,const P6CHAR *pszFunction) P6PURE;
3280  P6DECLCOMMETHOD(traceFunctionEnd)(P6THIS_ const P6CHAR *pszFunction) P6PURE;
3281  P6DECLCOMMETHOD(traceLine)(P6THIS_ const P6CHAR *pszFile,P6SIZE cLine) P6PURE;
3282  P6DECLCOMMETHOD(traceMatch)(P6THIS_ const P6CHAR *pszClassname) P6PURE;
3283  P6DECLCOMMETHOD(traceExclude)(P6THIS_ const P6CHAR *pszClassname) P6PURE;
3284  P6DECLCOMMETHOD(indentInc)(P6THIS) P6PURE;
3285  P6DECLCOMMETHOD(indentDec)(P6THIS) P6PURE;
3286  };
3287 
3288  /*{E39C9608-ED21-4FC7-35CB-D19FF09F5D84}*/
3289  #define IF_p6ITraceFile {0xE39C9608,0xED21,0x4FC7,{0x35,0xCB,0xD1,0x9F,0xF0,0x9F,0x5D,0x84}}
3290 
3291 #ifdef __cplusplus
3292 } // extern "C"
3293 
3295  {
3296  public:
3297  CP6FunctionTrace(const P6R::P6CHAR *pszFile,P6R::P6SIZE cLine,const P6R::P6CHAR *pszFunction)
3298  : m_cpTrace(),
3299  m_pszFunction(NULL)
3300  {
3301  const P6R::P6IID IID_p6ITraceFile = IF_p6ITraceFile;
3302  if(P6SUCCEEDED(m_cpTrace.getRuntimeIface(IID_p6ITraceFile))) {
3303  if(P6SUCCEEDED(m_cpTrace->traceFunctionBegin(pszFile,cLine,pszFunction))) {
3304  m_pszFunction = pszFunction;
3305  m_cpTrace->indentInc();
3306  }
3307  }
3308  }
3310  {
3311  if(m_cpTrace) {
3312  if(m_pszFunction) {
3313  m_cpTrace->indentDec();
3314  m_cpTrace->traceFunctionEnd(m_pszFunction);
3315  }
3316  }
3317  }
3318  void traceLine(const P6R::P6CHAR *pszFile,P6R::P6SIZE cLine)
3319  {
3320  if(m_cpTrace) { m_cpTrace->traceLine(pszFile,cLine); }
3321  }
3322  void traceMatch(const P6R::P6CHAR *pszString)
3323  {
3324  if(m_cpTrace) { m_cpTrace->traceMatch(pszString); }
3325  }
3326  void traceExclude(const P6R::P6CHAR *pszString)
3327  {
3328  if(m_cpTrace) { m_cpTrace->traceExclude(pszString); }
3329  }
3330 
3331  protected:
3334  };
3335 
3336 #ifdef P6ENABLE_FUNCTION_TRACING
3337 #define P6TRACE() P6R::CP6FunctionTrace traceit(P6FILEANDLINE,P6CURFUNCTION)
3338 #define P6TRACELINE() traceit.traceLine(P6FILEANDLINE)
3339 #define P6TRACEMATCH(s) traceit.traceMatch((s))
3340 #define P6TRACEEXCLUDE(s) traceit.traceExclude((s))
3341 #else
3342 #define P6TRACE()
3343 #define P6TRACELINE(text)
3344 #define P6TRACEMATCH(s)
3345 #define P6TRACEEXCLUDE(s)
3346 #endif
3347 
3348 
3349 
3350 
3352 } //namespace
3353 #endif
3354 
3355 #endif
3356 
Wide binary string.
Definition: p6types.h:215
size_t P6SIZE
Definition: p6types.h:90
P6UUID P6CID
A component ID.
Definition: p6types.h:173
P6COM smart interface pointer template.
uint64_t P6UINT64
Definition: p6types.h:79
Const Binary string.
Definition: p6types.h:199
Provides very basic, thread safe access to the console, allowing the console to be read from and writ...
Definition: p6runtimeif.h:2969
A smart pointer implementation to help manage and use [p6]COM based interfaces.
Definition: p6comptr.h:232
CP6FunctionTrace(const P6R::P6CHAR *pszFile, P6R::P6SIZE cLine, const P6R::P6CHAR *pszFunction)
Definition: p6runtimeif.h:3297
This runtime interface provides access to a tracing facility that outputs to a separate trace log fil...
Definition: p6runtimeif.h:3274
#define P6REFIID
Definition: p6defs.h:197
uint32_t P6UINT32
Definition: p6types.h:77
int16_t P6INT16
Definition: p6types.h:74
#define P6DECLAREICOM
Definition: p6defs.h:191
#define P6PURE
Definition: p6defs.h:192
Standard error codes.
P6CONHANDLE
Definition: p6runtimeif.h:2955
int P6INT
Definition: p6types.h:84
unsigned char P6BOOL
Boolean type.
Definition: p6types.h:133
Wide Const binary string.
Definition: p6types.h:231
P6SIZE P6ATOM
Atom type see P6R::p6IAtom in p6com.h.
Definition: p6types.h:142
#define P6NOEXPORT
Definition: p6defs.h:120
unsigned char P6UINT8
Definition: p6types.h:71
This runtime interface provides network helpers for managing byte-order and providing address convers...
Definition: p6runtimeif.h:3063
const P6CHAR * m_pszFunction
Definition: p6runtimeif.h:3333
wchar_t P6WCHAR
Wide character type see p6i18n.h.
Definition: p6types.h:111
void traceExclude(const P6R::P6CHAR *pszString)
Definition: p6runtimeif.h:3326
This runtime interface provides a set of safe string routines that should be used in place of the sta...
Definition: p6runtimeif.h:634
P6UUID P6CATID
A category ID.
Definition: p6types.h:174
The base interface all [p6]COM components must derive from and implement.
Definition: p6comdef.h:97
int64_t P6INT64
Definition: p6types.h:78
P6COM base interface definitions.
Binary string.
Definition: p6types.h:185
it may not contain all the symbols used by this software If you run into undefined symbol please let us know and we can provide you a build that will be compatible with your specific value
Definition: readme.txt:85
A universally unique indentifier (UUID).
Definition: p6types.h:162
#define IF_p6ITraceFile
Definition: p6runtimeif.h:3289
#define P6REFCATID
Definition: p6defs.h:198
#define P6SUCCEEDED(err)
Definition: p6err.h:49
uint16_t P6UINT16
Definition: p6types.h:75
#define P6DECLCOMMETHOD(method)
Definition: p6defs.h:189
p6ComPtr< p6ITraceFile > m_cpTrace
Definition: p6runtimeif.h:3332
#define P6THIS_
Definition: p6defs.h:193
double P6FLOAT
Definition: p6types.h:93
#define P6REFCID
Definition: p6defs.h:196
void P6VOID
Definition: p6types.h:109
int32_t P6INT32
Definition: p6types.h:76
#define P6THIS
Definition: p6defs.h:194
void traceLine(const P6R::P6CHAR *pszFile, P6R::P6SIZE cLine)
Definition: p6runtimeif.h:3318
Argument definition.
Definition: p6types.h:591
void traceMatch(const P6R::P6CHAR *pszString)
Definition: p6runtimeif.h:3322
char P6CHAR
Narrow character type.
Definition: p6types.h:105
#define P6DECLAREIF_(iface, baseif)
Definition: p6defs.h:188