00001
00013 #ifndef P6RUNTIMEIF_H__
00014 #define P6RUNTIMEIF_H__ 1
00015
00016 #include "p6err.h"
00017 #include "p6comdef.h"
00018
00019 namespace P6R {
00020
00021 #ifdef __cplusplus
00022 extern "C" {
00023 #endif
00024
00029
00031 #define P6INVALIDATOM (P6ATOM)0
00032
00040 interface p6IAtom : p6ICom
00041 {
00053 P6COMMETHOD addAtom(const P6R::P6CHAR *pszString,P6ATOM *pAtom) = 0;
00054
00068 P6COMMETHOD getAtomString(P6ATOM atom,P6R::P6CHAR *pBuffer,P6R::P6SIZE *pcBuffer) = 0;
00069
00079 P6COMMETHOD removeAtom(P6ATOM atom) = 0;
00080 };
00081
00083 #define IF_p6IAtom {0x32804623,0x1DCD,0x4103,{0xB2,0x30,0x4A,0xCE,0x1F,0x2B,0xC6,0x5F}}
00084
00085
00086
00087
00093 interface p6IEnumCategories : p6ICom
00094 {
00112 P6COMMETHOD next(P6R::P6UINT32 cElements,P6R::CATID *parElements,P6R::P6UINT32 *pcReturned) = 0;
00113
00122 P6COMMETHOD reset() = 0;
00123 };
00124 #define IF_p6IEnumCategories {0x0BE1E15B,0xF964,0x4be4,{0x8E,0x71,0xA3,0xE2,0x98,0xA2,0xD5,0x35}}
00125
00131 interface p6IEnumCategoryComponents : p6ICom
00132 {
00150 P6COMMETHOD next(P6R::P6UINT32 cElements,P6R::CID *parElements,P6R::P6UINT32 *pcReturned) = 0;
00151
00160 P6COMMETHOD reset() = 0;
00161 };
00162 #define IF_p6IEnumCategoryComponents {0xACD65F14,0xD83E,0x4cb2,{0x8C,0x8A,0x38,0x47,0x11,0x84,0x8F,0x7A}}
00163
00191 interface p6ICategoryMgr : p6ICom
00192 {
00206 P6COMMETHOD addCategory(const P6R::CATID& catid,const P6R::P6WCHAR *pszName) = 0;
00207
00211 P6COMMETHOD removeCategory(const P6R::CATID& catid) = 0;
00212
00216 P6COMMETHOD enumCategories(p6IEnumCategories **ppEnum) = 0;
00217
00222 P6COMMETHOD addCategoryComponent(const P6R::CATID& catid,const P6R::P6WCHAR *pszName,const P6R::CID &cid) = 0;
00223
00227 P6COMMETHOD removeCategoryComponent(const P6R::CATID& catid,const P6R::CID &cid) = 0;
00228
00232 P6COMMETHOD enumCategoryComponents(const P6R::CATID& catid,P6R::p6IEnumCategoryComponents **ppEnum) = 0;
00233 };
00234 #define IF_p6ICategoryMgr {0x40768F08,0x4107,0x42ca,{0x9D,0x73,0x8B,0x1E,0xCD,0x03,0xCD,0x62}}
00235
00249 interface p6IComponentMgr : p6ICom
00250 {
00265 P6COMMETHOD getComponentFactory(const P6R::CID &cid,const P6R::IID &iid,P6R::P6VOID **ppIface) = 0;
00266
00287 P6COMMETHOD createInstance(P6R::p6ICom *pOuter,const P6R::CID &cid,const P6R::IID &iid,P6R::P6VOID **ppIface) = 0;
00288 };
00289 #define IF_p6IComponentMgr {0x17e66188, 0xf9ae, 0x437e, {0xac, 0x8b, 0xbf, 0x73, 0xa8, 0xa7, 0x28, 0x96}}
00290
00291
00292
00293
00294
00301 typedef enum {
00302 ICSS_STARTING,
00303 ICSS_RUNNING,
00304 ICSS_STOPPING,
00305 ICSS_STOPPED,
00306 ICSS_MAX
00307 } ICSS;
00308
00309 #define MAX_SERVICE_NAME 32
00310
00311
00312 typedef struct {
00313 P6R::ICSS m_nState;
00314 P6R::CID m_componentID;
00315 P6R::P6UINT16 m_loadOrder;
00316 P6R::P6WCHAR m_szName[MAX_SERVICE_NAME];
00317 } P6SERVICEINFO;
00318
00325 interface p6IEnumServices : p6ICom
00326 {
00346 P6COMMETHOD next(P6R::P6UINT32 cElements,P6R::P6SERVICEINFO *parElements,P6R::P6UINT32 *pcReturned) = 0;
00347
00356 P6COMMETHOD reset() = 0;
00357 };
00358
00359
00365 interface p6IEnvironment : p6ICom
00366 {
00383 P6COMMETHOD getEnv(const P6R::P6CHAR *pszName,P6R::P6CHAR *pBuffer,P6R::P6UINT32 *pcBuffer) = 0;
00384
00401 P6COMMETHOD getEnvW(const P6R::P6WCHAR *pwszName,P6R::P6WCHAR *pBuffer,P6R::P6UINT32 *pcBuffer) = 0;
00402
00403 };
00404
00405
00406 #define IF_p6IEnvironment {0x485d6b1e,0xa081,0x45b7,{0xaf,0x2a,0x52,0xf,0x52,0x81,0x28,0xc4}}
00407
00408
00409
00410
00411
00415 #define P6MAX_EVENTID_LEN 128
00416
00417
00421 typedef P6R::P6VOID (*P6HANDLEEVENT)(const P6R::P6CHAR *pszEventId,P6R::P6VOID *pCtx,P6R::P6VOID *pData);
00422
00429 interface p6IEventMgr : p6ICom
00430 {
00442 P6COMMETHOD registerForEvent(const P6R::P6CHAR *pszEventID,P6HANDLEEVENT pfnHandler,P6R::P6VOID *pCtx) = 0;
00443
00456 P6COMMETHOD unregisterForEvent(const P6R::P6CHAR *pszEventID,P6HANDLEEVENT pfnHandler,P6R::P6VOID **ppCtx) = 0;
00457
00469 P6COMMETHOD generateEvent(const P6R::P6CHAR *pszEventID,P6R::P6VOID *pData) = 0;
00470 };
00471 #define IF_p6IEventMgr {0xF2F9C170,0xA926,0x4864,{0x83,0x32,0xFE,0xA7,0xE4,0xBE,0xEB,0x0A}}
00472
00473
00478 interface p6IServer : p6ICom
00479 {
00488 P6COMMETHOD wait() = 0;
00489
00497 P6COMMETHOD shutdown() = 0;
00498 };
00499
00500 #define IF_p6IServer {0x0E94A85F,0x1C97,0x4036,{0xB4,0xF7,0x96,0x3B,0x33,0x50,0x9B,0x09}}
00501
00502
00503
00511 interface p6IRunningIface : p6ICom
00512 {
00523 P6COMMETHOD registerInterface(P6R::P6ATOM atom,P6R::p6ICom *pIface) = 0;
00524
00540 P6COMMETHOD findInterface(P6R::P6ATOM atom,const P6R::IID &iid,P6R::P6VOID **ppIface) = 0;
00541
00561 P6COMMETHOD findInterfaceByString(const P6R::P6CHAR *pszIndentifier,const P6R::IID &iid,P6R::P6VOID **ppIface) = 0;
00571 P6COMMETHOD unregisterInterface(P6R::P6ATOM atom) = 0;
00572 };
00574 #define IF_p6IRunningIface {0x393A85DF,0x7442,0x43ab,{0xA7,0xC7,0x52,0xD9,0x6C,0x53,0x47,0x12}}
00575
00576
00594 interface p6ISafeString : p6ICom
00595 {
00596
00617 P6COMMETHOD atol(const P6R::P6CHAR *pString,P6R::P6SIZE cchMax,P6R::P6INT32 *pRetLong) = 0;
00618
00645 P6COMMETHOD atolEx(const P6R::P6CHAR *pString,P6R::P6SIZE cchMax,P6R::P6INT32 *pRetLong,P6R::P6CHAR **ppEndPtr) = 0;
00646
00666 P6COMMETHOD atoll(const P6R::P6CHAR *pString,P6R::P6SIZE cchMax,P6R::P6INT64 *pRetLongLong) = 0;
00667
00694 P6COMMETHOD atollEx(const P6R::P6CHAR *pString,P6R::P6SIZE cchMax,P6R::P6INT64 *pRetLongLong,P6R::P6CHAR **ppEndPtr) = 0;
00695
00716 P6COMMETHOD atolW(const P6R::P6WCHAR *pString,P6R::P6SIZE cchMax,P6R::P6INT32 *pRetLong) = 0;
00717
00718
00734 P6COMMETHOD bstrcmp(const P6R::P6BCSTR *s1,const P6R::P6BCSTR *s2,P6R::P6INT32 *pRetval) = 0;
00735
00751 P6COMMETHOD bstricmp(const P6R::P6BCSTR *s1,const P6R::P6BCSTR *s2,P6R::P6INT32 *pRetval) = 0;
00752
00772 P6COMMETHOD bstrchr(const P6R::P6BCSTR *pbcsStr,P6R::P6INT16 c,P6R::P6BCSTR *pRetPtr) = 0;
00773
00787 P6COMMETHOD bstrlcat(P6R::P6CHAR *pszDest,P6R::P6SIZE cDest,const P6R::P6BCSTR *pbsSource,P6R::P6SIZE *pcCopied) = 0;
00788
00799 P6COMMETHOD bstrlcpy(P6R::P6CHAR *pszDest,P6R::P6SIZE cDest,const P6R::P6BCSTR *pbsSource,P6R::P6SIZE *pcCopied) = 0;
00800
00810 P6COMMETHOD bstrlwr(P6R::P6BSTR *pbsStr) = 0;
00811
00831 P6COMMETHOD bstrrchr(const P6R::P6BCSTR *pbcsStr,P6R::P6INT16 c,P6R::P6BCSTR *pRetPtr) = 0;
00832
00858 P6COMMETHOD bstrsep(P6R::P6BCSTR *pbcsSearchIn,const P6R::P6CHAR *pszDelimiters,P6R::P6BCSTR *pbcsToken) = 0;
00859
00869 P6COMMETHOD bstrupr(P6R::P6BSTR *pbsStr) = 0;
00870
00884 P6COMMETHOD bwstrlcpy(P6R::P6WCHAR *pszDest,P6R::P6SIZE cDest,const P6R::P6BWCSTR *pSource) = 0;
00885
00903 P6COMMETHOD compareMem(const P6R::P6VOID *pMem1,const P6R::P6VOID *pMem2,P6R::P6SIZE nBytes,P6R::P6INT32 *pResult) = 0;
00904
00919 P6COMMETHOD copyMem(P6R::P6VOID *pDest,P6R::P6SIZE cDest,const P6R::P6VOID *pSource,P6R::P6SIZE nBytes) = 0;
00920
00934 P6COMMETHOD floatToString(P6R::P6FLOAT value,P6R::P6CHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6SIZE *pcWritten) = 0;
00935
00949 P6COMMETHOD floatToStringW(P6R::P6FLOAT value,P6R::P6WCHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6SIZE *pcWritten) = 0;
00950
00977 P6COMMETHOD formatString(P6R::P6CHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6SIZE *pcWritten,const P6R::P6CHAR *pszFormat,const P6R::P6ARG *pArgs,P6R::P6SIZE cArgs) = 0;
00978
01009 P6COMMETHOD formatStringW(P6R::P6WCHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6SIZE *pcWritten,const P6R::P6WCHAR *pszFormat,const P6R::P6ARG *pArgs,P6R::P6SIZE cArgs) = 0;
01010
01026 P6COMMETHOD int16ToString(P6R::P6INT16 value,P6R::P6CHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6UINT32 radix,P6R::P6SIZE *pcWritten) = 0;
01027
01043 P6COMMETHOD int16ToStringW(P6R::P6INT16 value,P6R::P6WCHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6UINT32 radix,P6R::P6SIZE *pcWritten) = 0;
01044
01060 P6COMMETHOD int32ToString(P6R::P6INT32 value,P6R::P6CHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6UINT32 radix,P6R::P6SIZE *pcWritten) = 0;
01061
01077 P6COMMETHOD int32ToStringW(P6R::P6INT32 value,P6R::P6WCHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6UINT32 radix,P6R::P6SIZE *pcWritten) = 0;
01078
01094 P6COMMETHOD int64ToString(P6R::P6INT64 value,P6R::P6CHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6UINT32 radix,P6R::P6SIZE *pcWritten) = 0;
01095
01111 P6COMMETHOD int64ToStringW(P6R::P6INT64 value,P6R::P6WCHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6UINT32 radix,P6R::P6SIZE *pcWritten) = 0;
01112
01129 P6COMMETHOD moveMem(P6R::P6VOID *pDest,P6R::P6SIZE cDest,const P6R::P6VOID *pSource,P6R::P6SIZE nBytes) = 0;
01130
01147 P6COMMETHOD reverseString(P6R::P6CHAR *pBuffer,P6R::P6SIZE cStart,P6R::P6SIZE cEnd) = 0;
01148
01165 P6COMMETHOD reverseStringW(P6R::P6WCHAR *pBuffer,P6R::P6SIZE cStart,P6R::P6SIZE cEnd) = 0;
01166
01167
01180 P6COMMETHOD setMem(P6R::P6VOID *pMemory,P6R::P6INT nValue,P6R::P6SIZE nBytes) = 0;
01181
01200 P6COMMETHOD sizetToString(P6R::P6SIZE value,P6R::P6CHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6UINT32 radix,P6R::P6SIZE *pcWritten) = 0;
01201
01220 P6COMMETHOD sizetToStringW(P6R::P6SIZE value,P6R::P6WCHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6UINT32 radix,P6R::P6SIZE *pcWritten) = 0;
01221
01243 P6COMMETHOD strchr(const P6R::P6CHAR *pStr,P6R::P6INT16 c,P6R::P6SIZE cchMax,P6R::P6CHAR **ppRetPtr) = 0;
01244
01259 P6COMMETHOD strcmp(const P6R::P6CHAR *pStr1,const P6R::P6CHAR *pStr2,P6R::P6SIZE cchMax,P6R::P6INT32 *pRetval) = 0;
01260
01277 P6COMMETHOD strdup(const P6R::P6CHAR* pString,P6R::P6CHAR **ppCopy) = 0;
01278
01292 P6COMMETHOD strfree(const P6R::P6CHAR *pString) = 0;
01293
01310 P6COMMETHOD stricmp(const P6R::P6CHAR *pStr1,const P6R::P6CHAR *pStr2,P6R::P6SIZE cchMax,P6R::P6INT32 *pRetval) = 0;
01311
01334 P6COMMETHOD stristr(const P6R::P6CHAR *searchIn,const P6R::P6CHAR *searchFor,P6R::P6SIZE cchMax,P6R::P6CHAR **ppRetptr) = 0;
01335
01355 P6COMMETHOD strlcat(P6R::P6CHAR *pszDest,P6R::P6SIZE cDest,const P6R::P6CHAR *pszSource,P6R::P6SIZE *pcCopied) = 0;
01356
01381 P6COMMETHOD strlcpy(P6R::P6CHAR *pszDest,P6R::P6SIZE cDest,const P6R::P6CHAR *pszSource,P6R::P6SIZE *pcCopied) = 0;
01382
01403 P6COMMETHOD strlen(const P6R::P6CHAR *pStr,P6R::P6SIZE cchMax,P6R::P6SIZE *pcSize) = 0;
01404
01431 P6COMMETHOD strlncpy(P6R::P6CHAR *pszDest,P6R::P6SIZE cDest,const P6R::P6CHAR *pszSource,P6R::P6SIZE cSourceLen,P6R::P6SIZE *pcCopied) = 0;
01432
01446 P6COMMETHOD strlwr(P6R::P6CHAR *pszStr,P6R::P6SIZE cchMax) = 0;
01447
01463 P6COMMETHOD strncat(P6R::P6CHAR *pszDest,P6R::P6SIZE cDest,const P6R::P6CHAR *pszSource,P6R::P6SIZE cCount) = 0;
01464
01482 P6COMMETHOD strncmp(const P6R::P6CHAR *pStr1,const P6R::P6CHAR *pStr2,P6R::P6SIZE length,P6R::P6INT32 *pRetval) = 0;
01483
01501 P6COMMETHOD strnicmp(const P6R::P6CHAR *pStr1,const P6R::P6CHAR *pStr2,P6R::P6SIZE length,P6R::P6INT32 *pRetval) = 0;
01502
01519 P6COMMETHOD strrchr(const P6R::P6CHAR *pStr,P6R::P6INT16 c,P6R::P6SIZE cchMax,P6R::P6CHAR **ppRetPtr) = 0;
01520
01549 P6COMMETHOD strsep(const P6R::P6CHAR **ppszSearchIn,const P6R::P6CHAR *pszDelimiters,P6R::P6BCSTR *pbcsToken) = 0;
01550
01573 P6COMMETHOD strstr(const P6R::P6CHAR *searchIn,const P6R::P6CHAR *searchFor,P6R::P6SIZE cchMax,P6R::P6CHAR **ppRetptr) = 0;
01574
01594 P6COMMETHOD strToBool(const P6R::P6CHAR *pBoolStr,P6R::P6BOOL *pBool) = 0;
01595
01609 P6COMMETHOD strupr(P6R::P6CHAR *pszStr,P6R::P6SIZE cchMax) = 0;
01610
01624 P6COMMETHOD trimEnd(P6R::P6CHAR *pszStr,P6R::P6SIZE cchMax) = 0;
01625
01639 P6COMMETHOD trimEndW(P6R::P6WCHAR *pszStr,P6R::P6SIZE cchMax) = 0;
01640
01655 P6COMMETHOD uint16ToString(P6R::P6UINT16 value,P6R::P6CHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6UINT32 radix,P6R::P6SIZE *pcWritten) = 0;
01656
01671 P6COMMETHOD uint16ToStringW(P6R::P6UINT16 value,P6R::P6WCHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6UINT32 radix,P6R::P6SIZE *pcWritten) = 0;
01672
01687 P6COMMETHOD uint32ToString(P6R::P6UINT32 value,P6R::P6CHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6UINT32 radix,P6R::P6SIZE *pcWritten) = 0;
01688
01703 P6COMMETHOD uint32ToStringW(P6R::P6UINT32 value,P6R::P6WCHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6UINT32 radix,P6R::P6SIZE *pcWritten) = 0;
01704
01719 P6COMMETHOD uint64ToString(P6R::P6UINT64 value,P6R::P6CHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6UINT32 radix,P6R::P6SIZE *pcWritten) = 0;
01720
01735 P6COMMETHOD uint64ToStringW(P6R::P6UINT64 value,P6R::P6WCHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6UINT32 radix,P6R::P6SIZE *pcWritten) = 0;
01736
01760 P6COMMETHOD utf8ToWcs(P6R::P6WCHAR* pDest,P6R::P6SIZE* dstSize,const P6R::P6CHAR* pSource) = 0;
01761
01786 P6COMMETHOD utf8nToWcs(P6R::P6WCHAR* pDest,P6R::P6SIZE* dstSize,const P6R::P6CHAR* pSource,P6R::P6SIZE cCount) = 0;
01787
01788
01812 P6COMMETHOD wcsToUtf8(P6R::P6CHAR* pDest,P6R::P6SIZE* dstSize,const P6R::P6WCHAR* pSource) = 0;
01813
01838 P6COMMETHOD wcsnToUtf8(P6R::P6CHAR* pDest,P6R::P6SIZE* dstSize,const P6R::P6WCHAR* pSource,P6R::P6SIZE cCount) = 0;
01839
01840
01855 P6COMMETHOD wsetMem(P6R::P6WCHAR *pMemory,P6R::P6WCHAR nValue,P6R::P6SIZE nChars) = 0;
01856
01857
01876 P6COMMETHOD wstrchr(const P6R::P6WCHAR *pStr,P6R::P6WCHAR c,P6R::P6SIZE cchMax,P6R::P6WCHAR **ppRetPtr) = 0;
01877
01897 P6COMMETHOD wstrcmp(const P6R::P6WCHAR *s1,const P6R::P6WCHAR *s2,P6R::P6SIZE cchMax,P6R::P6INT32 *pRetval) = 0;
01898
01918 P6COMMETHOD wstricmp(const P6R::P6WCHAR *s1,const P6R::P6WCHAR *s2,P6R::P6SIZE cchMax,P6R::P6INT32 *pRetval) = 0;
01919
01935 P6COMMETHOD wstrdup(const P6R::P6WCHAR* pString,P6R::P6WCHAR **ppCopy) = 0;
01936
01947 P6COMMETHOD wstrfree(const P6R::P6WCHAR *pString) = 0;
01948
01965 P6COMMETHOD wstrlcat(P6R::P6WCHAR *pszDest,P6R::P6SIZE cDest,const P6R::P6WCHAR *pszSource,P6R::P6SIZE *pcCopied) = 0;
01966
01983 P6COMMETHOD wstrlcpy(P6R::P6WCHAR *pszDest,P6R::P6SIZE cDest,const P6R::P6WCHAR *pszSource,P6R::P6SIZE *pcCopied) = 0;
01984
02001 P6COMMETHOD wstrlen(const P6R::P6WCHAR *pwszString,P6R::P6SIZE cchMax,P6R::P6SIZE *pcLen) = 0;
02002
02022 P6COMMETHOD wstrlncpy(P6R::P6WCHAR *pszDest,P6R::P6SIZE cDest,const P6R::P6WCHAR *pszSource,P6R::P6SIZE cSourceLen,P6R::P6SIZE *pcCopied) = 0;
02023
02035 P6COMMETHOD wstrncat(P6R::P6WCHAR *pszDest,P6R::P6SIZE cDest,const P6R::P6WCHAR *pszSource,P6R::P6SIZE cCount) = 0;
02036
02049 P6COMMETHOD wstrncmp(const P6R::P6WCHAR *s1,const P6R::P6WCHAR *s2,P6R::P6SIZE length,P6R::P6INT32 *pRetval) = 0;
02050
02063 P6COMMETHOD wstrnicmp(const P6R::P6WCHAR *s1,const P6R::P6WCHAR *s2,P6R::P6SIZE length,P6R::P6INT32 *pRetval) = 0;
02064
02065
02085 P6COMMETHOD wstrrchr(const P6R::P6WCHAR *pszSearchIn,P6R::P6INT16 c,P6R::P6SIZE cchMax,P6R::P6WCHAR **ppRetPtr) = 0;
02086
02109 P6COMMETHOD wstrstr(const P6R::P6WCHAR *searchIn,const P6R::P6WCHAR *searchFor,P6R::P6SIZE cchMax,P6R::P6WCHAR **ppRetptr) = 0;
02110
02130 P6COMMETHOD wstrToBool(const P6R::P6WCHAR *pBoolStr,P6R::P6BOOL *pBool) = 0;
02131
02145 P6COMMETHOD wstrupr(P6R::P6WCHAR *pszStr,P6R::P6SIZE cchMax) = 0;
02146 };
02147
02148 #define IF_p6ISafeString {0x1B77B8F2,0x9FBC,0x4d90,{0x9B,0x1F,0x21,0x1D,0xA2,0x4C,0xD8,0x23}}
02149
02150
02152
02162 interface p6ISystemInfo : p6ICom
02163 {
02183 P6COMMETHOD getSystemName(P6R::P6WCHAR *pwszBuffer,P6R::P6UINT32 cBuffer) = 0;
02184
02197 P6COMMETHOD getOSName(P6R::P6WCHAR *pwszName,P6R::P6UINT32 cName) = 0;
02198
02227 P6COMMETHOD getOSVersion(P6R::P6WCHAR *pwszBuffer,P6R::P6UINT32 cBuffer) = 0;
02228
02242 P6COMMETHOD getNumProcessors(P6R::P6UINT32 *pcProcessors) = 0;
02243
02244
02255 P6COMMETHOD getArchitecture(P6R::P6WCHAR *pwszBuffer,P6R::P6UINT32 cBuffer) = 0;
02256
02268 P6COMMETHOD getPageSize(P6R::P6UINT32 *pcPage) = 0;
02269 };
02270
02271 #define IF_p6ISystemInfo {0x56084D40,0x9165,0x42DF,{0x84,0x25,0x0B,0x33,0xE9,0x1D,0x9A,0xEF}}
02272
02273 typedef enum {
02274 P6CH_STDIN,
02275 P6CH_STDOUT,
02276 P6CH_STDERR
02277 } P6CONHANDLE;
02278
02285 interface p6IConsole : p6ICom
02286 {
02299 P6COMMETHOD writeStdout(const P6R::P6CHAR *pFmt,P6R::P6ARG *pArgs,P6R::P6UINT32 cArgs,P6R::P6UINT32 *pcBytesWritten) = 0;
02300
02313 P6COMMETHOD writeStdoutW(const P6R::P6WCHAR *pFmt,P6R::P6ARG *pArgs,P6R::P6UINT32 cArgs,P6R::P6UINT32 *pcBytesWritten) = 0;
02314
02327 P6COMMETHOD writeStderr(const P6R::P6CHAR *pFmt,P6R::P6ARG *pArgs,P6R::P6UINT32 cArgs,P6R::P6UINT32 *pcBytesWritten) = 0;
02328
02341 P6COMMETHOD writeStderrW(const P6R::P6WCHAR *pFmt,P6R::P6ARG *pArgs,P6R::P6UINT32 cArgs,P6R::P6UINT32 *pcBytesWritten) = 0;
02342 P6COMMETHOD readStdin(P6R::P6CHAR *pBuffer,P6R::P6UINT32 cBytesToread,P6R::P6UINT32 *pcBytesRead) = 0;
02343 };
02344
02345
02346 #define IF_p6IConsole {0xBA6864AD,0x935F,0x4C14,{0xAB,0xFC,0x3C,0xA6,0xC5,0xCB,0x2D,0xE5}}
02347
02348
02349 interface p6IMarshalData : p6ICom
02350 {
02351 P6COMMETHOD set8(const P6R::P6UINT8 val,P6R::P6P8BIT *pDest) = 0;
02352 P6COMMETHOD set16(const P6R::P6UINT16 val,P6R::P6P16BIT *pDest) = 0;
02353 P6COMMETHOD set32(const P6R::P6UINT32 val,P6R::P6P32BIT *pDest) = 0;
02354 P6COMMETHOD set64(const P6R::P6UINT64 val,P6R::P6P64BIT *pDest) = 0;
02355 P6COMMETHOD get8(const P6R::P6P8BIT *pVal,P6R::P6UINT8 *pDest) = 0;
02356 P6COMMETHOD get16(const P6R::P6P16BIT *pVal,P6R::P6UINT16 *pDest) = 0;
02357 P6COMMETHOD get32(const P6R::P6P32BIT *pVal,P6R::P6UINT32 *pDest) = 0;
02358 P6COMMETHOD get64(const P6R::P6P64BIT *pVal,P6R::P6UINT64 *pDest) = 0;
02359 };
02360
02361 #define IF_p6IMarshalData {0xCD8CECEA,0xDDE2,0x4F44,{0x80,0x02,0x56,0xB9,0x06,0x64,0xE0,0x79}}
02362
02363
02370 interface p6INetHelpers : p6ICom
02371 {
02385 P6COMMETHOD host2nll(P6R::P6UINT64 nHostLong,P6R::P6UINT64 *pNetLong) = 0;
02386
02387
02401 P6COMMETHOD host2nl(P6R::P6UINT32 nHostLong,P6R::P6UINT32 *pNetLong) = 0;
02402
02416 P6COMMETHOD host2ns(P6R::P6UINT16 nHostShort,P6R::P6UINT16 *pNetShort) = 0;
02417
02431 P6COMMETHOD net2hll(P6R::P6UINT64 nNetLong,P6R::P6UINT64 *pHostLong) = 0;
02432
02446 P6COMMETHOD net2hl(P6R::P6UINT32 nNetLong,P6R::P6UINT32 *pHostLong) = 0;
02447
02461 P6COMMETHOD net2hs(P6R::P6UINT16 nNetShort,P6R::P6UINT16 *pHostShort) = 0;
02462
02489 P6COMMETHOD strToNetAddr(const P6R::P6CHAR *pszAddr,P6R::P6NETADDR *pAddr) = 0;
02490
02510 P6COMMETHOD wStrToNetAddr(const P6R::P6WCHAR *pwszAddr,P6R::P6NETADDR *pAddr) = 0;
02511
02538 P6COMMETHOD netAddrToStr(const P6R::P6NETADDR *pAddr,P6R::P6CHAR *pBuffer,P6R::P6UINT32 *pcBuffer,P6R::P6BOOL bAddPort) = 0;
02539
02566 P6COMMETHOD netAddrToWStr(const P6R::P6NETADDR *pAddr,P6R::P6WCHAR *pBuffer,P6R::P6UINT32 *pcBuffer,P6R::P6BOOL bAddPort) = 0;
02567 };
02568
02569 #define IF_p6INetHelpers {0x464F74EE,0x0D93,0x4ee9,{0x9E,0x5E,0x13,0xEE,0x0C,0x94,0xB5,0x3D}}
02570
02571 #ifdef __cplusplus
02572 }
02573 #endif
02574
02576 }
02577
02578 #endif
02579