Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
p6runtimeapi.h
Go to the documentation of this file.
1 
12 #ifndef P6RUNTIMEAPI_H__
13 #define P6RUNTIMEAPI_H__ 1
14 
15 #include "p6errorinfo.h"
16 #include "p6dllapi.h"
17 #include "p6thread.h"
18 
19 namespace P6R {
20 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24 
26 
31 typedef P6R::P6UINT32 P6COMFLAGS;
32 
41 static const P6COMFLAGS P6CF_NOFLAGS = 0x00000000;
42 
49 static const P6COMFLAGS P6CF_RESERVED1 = 0x00000001;
50 
58 static const P6COMFLAGS P6CF_DISABLELOGS = 0x00000002;
59 
65 static const P6COMFLAGS P6CF_VERBOSELOGS = 0x00000004;
66 
73 static const P6COMFLAGS P6CF_DISABLEDYNAMICREG = 0x00000008;
74 
80 static const P6COMFLAGS P6CF_UNUSED1 = 0x00000010;
81 
87 static const P6COMFLAGS P6CF_NOSERVICES = 0x00000020;
88 
97 static const P6COMFLAGS P6CF_UPDATEAPPCONF = 0x00000080;
98 
106 static const P6COMFLAGS P6CF_CONTINUEEXCEPTIONS = 0x00000100;
107 
116 static const P6COMFLAGS P6CF_DONTFILTERCMDLINE = 0x00000200;
117 
124 static const P6COMFLAGS P6CF_DISABLESERVICE = 0x00000400;
126 #ifdef __cplusplus
127 }
128 #endif
129 
130 } // namespace
131 
132 
133 #ifdef __cplusplus
134 extern "C" {
135 #endif
136 
138 
141 
144 
147 
150 
154 typedef P6R::P6ERR (*P6SUBMAIN)(P6R::P6INT32 argc,P6R::P6CHAR *argv[],P6R::p6ICurThread *pCurThread,P6R::p6ILogProducer *pThreadLogger);
155 
179 P6API P6R::P6ERR p6Initialize(P6SUBMAIN pfnSubMain,P6R::P6INT32 argc,P6R::P6CHAR *argv[],P6R::P6COMFLAGS fFlags);
180 typedef P6R::P6ERR (*P6INITIALIZE)(P6SUBMAIN pfnSubMain,P6R::P6INT32 argc,P6R::P6CHAR *argv[],P6R::P6COMFLAGS fFlags);
181 
208 
211 
234 
263 P6API P6R::P6ERR p6CreateInstance(P6R::p6ICom *pOuter,const P6R::CID &cid,const P6R::IID &iid,P6R::P6VOID **ppIface);
264 
266 
283 P6API P6R::P6ERR p6UUIDToString(const P6R::P6UUID &uuid,P6R::P6CHAR *pBuffer,P6R::P6SIZE cBuffer);
284 
302 P6API P6R::P6ERR p6UUIDToWString(const P6R::P6UUID &uuid,P6R::P6WCHAR *pBuffer,P6R::P6SIZE cBuffer);
303 
321 P6API P6R::P6ERR p6StringToUUID(const P6R::P6CHAR *pszUUID,P6R::P6UUID &uuid);
322 
340 P6API P6R::P6ERR p6WStringToUUID(const P6R::P6WCHAR *pszUUID,P6R::P6UUID &uuid);
342 
358 
374 
376 
397 P6API P6R::P6ERR p6GetModuleFilename(P6R::P6WCHAR *pszBuffer,P6R::P6SIZE *pcBuffer);
398 
418 P6API P6R::P6ERR p6GetDirectory(P6DIRS nDir,P6R::P6WCHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6SIZE *pcWritten);
420 
433 
446 
448 
460 P6API P6R::P6INT32 p6AtomicAdd32(P6R::P6INT32 volatile *pVar,P6R::P6INT32 value);
461 
475 P6API P6R::P6INT32 p6AtomicSet32(P6R::P6INT32 volatile *pVar,P6R::P6INT32 value);
476 
490 P6API P6R::P6INT64 p6AtomicSet64(P6R::P6INT64 volatile *pVar,P6R::P6INT64 value);
491 
505 P6API P6R::P6VOID* p6AtomicSetPtr(P6R::P6VOID volatile **pVar,P6R::P6VOID *pValue);
506 
520 P6API P6R::P6UINT32 p6HashData(const P6R::P6UINT8 *pData,P6R::P6SIZE cData,P6R::P6UINT32 hash);
521 
529 P6API P6R::P6UINT32 p6HashString(const P6R::P6CHAR *pszData);
530 
538 P6API P6R::P6UINT32 p6HashStringW(const P6R::P6WCHAR *pszData);
539 
540 P6API P6R::P6UINT32 p6HashBCSTR(P6R::P6BCSTR *pbcsString);
541 
542 P6API P6R::P6UINT32 p6HashBWCSTR(P6R::P6BWCSTR *pbwcsString);
543 
551 P6API P6R::P6UINT32 p6HashUINT32(P6R::P6UINT32 nInteger);
552 
560 P6API P6R::P6UINT64 p6HashUINT64(P6R::P6UINT64 nInteger);
561 
572 P6API P6R::P6UINT32 p6HashUINT64to32(P6R::P6UINT64 nInteger);
573 
604 P6API P6R::P6ERR p6SetError(const P6R::IID *piid,const P6R::P6CHAR *pszFile,P6R::P6UINT32 cLine,P6R::P6ERR error,const P6R::P6WCHAR *pwszContext,const P6R::P6WCHAR *pwszDescription);
605 
637 P6API P6R::P6ERR p6SetErrorA(const P6R::IID *piid,const P6R::P6CHAR *pszFile,P6R::P6UINT32 cLine,P6R::P6ERR error,const P6R::P6CHAR *pszContext,const P6R::P6CHAR *pszDescription);
638 
647 P6API P6R::P6ERR p6GetErrorInfo(P6R::p6IErrorInfo **ppInfo);
648 
649 
662 P6API P6R::P6ERR p6AllocMemory(P6R::P6SIZE cSize,P6R::P6VOID **ppMemory);
663 
673 P6API P6R::P6ERR p6FreeMemory(P6R::P6VOID *pMemory);
674 
689 P6API P6R::P6ERR p6AllocComString(const P6R::P6WCHAR *pszSource,P6R::P6COMSTR *ppNewString);
690 
699 P6API P6R::P6ERR p6FreeComString(P6R::P6COMSTR pString);
700 
718 P6API P6R::P6ERR p6ComStringLen(const P6R::P6COMSTR pString,P6R::P6SIZE *pLength);
719 
737 P6API P6R::P6ERR p6ComStringByteLen(const P6R::P6COMSTR pString,P6R::P6SIZE *pLength);
738 
752 P6API P6R::P6ERR p6AllocComStringLen(P6R::P6WCHAR *pszSource,P6R::P6SIZE nSize,P6R::P6COMSTR *ppNewString);
753 
765 P6API P6R::P6ERR p6GetRuntimeVersion(P6R::P6VERINFO *pVerInfo);
766 
776 P6API P6R::P6ERR p6GetThreadLogger(P6R::p6ILogProducer **ppLogger);
777 
789 P6API P6R::P6ERR p6MapOSError(P6R::P6UINT32 oserr);
790 
791 P6API P6R::P6ERR p6Backtrace(P6R::P6CHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6UINT32 cFramesToSkip,P6BTFLAGS fFlags);
792 
793 P6API P6R::P6ERR p6Assert(const P6R::P6WCHAR *pszExpr,const P6R::P6CHAR *pszFile,P6R::P6UINT32 nLine);
794 
819 #define P6ASSERT(expr) ((expr)?P6R::eOk:p6Assert(P6TEXT(#expr),__FILE__,__LINE__))
820 
821 
832 P6API P6R::P6VOID p6DbgBreak();
833 
834 
863 P6API P6R::P6ERR p6CreateCryptoInstance(const P6R::CID &cid,const P6R::IID &iid,P6R::P6VOID **ppIface);
864 
886 P6API P6R::P6ERR p6TraceAddref(const P6R::P6CHAR *pszClassname,P6R::P6UINT32 cClassSize,P6R::P6VOID *classAddr,P6R::P6INT32 refCount,P6R::P6UINT32 *pSerialNumber);
887 
888 P6API P6R::P6ERR p6TraceRelease(const P6R::P6CHAR *pszClassname,P6R::P6VOID *classAddr,P6R::P6INT32 refCount,P6R::P6UINT32 *pSerialNumber);
889 
890 P6API P6R::P6ERR p6TraceCTOR(const P6R::P6CHAR *pszClassname,P6R::P6UINT32 cClassSize,P6R::P6VOID *classAddr,P6R::P6UINT32 *pSerialNumber);
891 
892 P6API P6R::P6ERR p6TraceDTOR(const P6R::P6CHAR *pszClassname,P6R::P6VOID *classAddr,P6R::P6UINT32 *pSerialNumber);
893 
894 P6API P6R::P6VOID p6ComponentCTOR();
895 
896 P6API P6R::P6VOID p6ComponentDTOR();
898 
899 
902 #ifdef __cplusplus
903 }
904 #endif
905 
906 #endif
size_t P6SIZE
Definition: p6types.h:62
P6LONGLONG P6INT64
Definition: p6types.h:50
Const Binary string.
Definition: p6types.h:168
unsigned int P6UINT32
Definition: p6types.h:40
P6API P6R::P6ERR p6CreateInstance(P6R::p6ICom *pOuter, const P6R::CID &cid, const P6R::IID &iid, P6R::P6VOID **ppIface)
Creates a single uninitialized instance of the class/interface associated with the specified componen...
Threading interfaces and definitions.
P6R::P6UINT32 P6BTFLAGS
Runtime API Types.
Definition: p6types.h:937
P6WCHAR * P6COMSTR
Standard COM length encoded string.
Definition: p6types.h:79
Wide Const binary string.
Definition: p6types.h:200
unsigned char P6UINT8
Definition: p6types.h:30
wchar_t P6WCHAR
Wide character type see p6i18n.h.
Definition: p6types.h:76
P6API P6R::P6CHAR * p6ErrToStr(P6R::P6ERR err, P6R::P6CHAR *pszBuffer, P6R::P6SIZE cBuffer)
Convert a standard P6R::P6ERR into it's ASCII string representation.
int P6INT32
Definition: p6types.h:41
The base interface all [p6]COM components must derive from and implement.
Definition: p6comdef.h:96
P6API P6R::P6WCHAR * p6ErrToWStr(P6R::P6ERR err, P6R::P6WCHAR *pszBuffer, P6R::P6SIZE cBuffer)
Convert a standard P6R::P6ERR into it's P6WCHAR* string representation.
P6COM DLL runtime api definitions.
p6IErrorInfo interface definition
P6ULONGLONG P6UINT64
Definition: p6types.h:49
A universally unique indentifier (UUID).
Definition: p6types.h:131
P6UINT32 P6ERR
COM err return type see P6ERR.h.
Definition: p6types.h:109
P6API P6R::P6ERR p6GetRuntimeIface(const P6R::IID &iid, P6R::P6VOID **ppIface)
This method is used to retreive any of the loader runtime interfaces.
#define P6API
[p6]COM runtime glue
Definition: p6types.h:798
P6API P6R::P6INT32 p6AtomicDec32(P6R::P6INT32 volatile *pVar)
Atomically decrements the variable pointed to by pVar by one.
void P6VOID
Definition: p6types.h:75
P6API P6R::P6INT32 p6AtomicInc32(P6R::P6INT32 volatile *pVar)
Atomically increments the variable pointed to by pVar by one.
P6DIRS
This enumeration defines the directories which can be retrieved using the p6GetDirectory() API...
Definition: p6types.h:950
char P6CHAR
Narrow character type.
Definition: p6types.h:71