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 
72 static const P6COMFLAGS P6CF_UNUSED2 = 0x00000008;
73 
79 static const P6COMFLAGS P6CF_UNUSED1 = 0x00000010;
80 
86 static const P6COMFLAGS P6CF_NOSERVICES = 0x00000020;
87 
96 static const P6COMFLAGS P6CF_UPDATEAPPCONF = 0x00000080;
97 
105 static const P6COMFLAGS P6CF_CONTINUEEXCEPTIONS = 0x00000100;
106 
115 static const P6COMFLAGS P6CF_DONTFILTERCMDLINE = 0x00000200;
116 
123 static const P6COMFLAGS P6CF_DISABLESERVICE = 0x00000400;
125 #ifdef __cplusplus
126 }
127 #endif
128 
129 } // namespace
130 
131 
132 #ifdef __cplusplus
133 extern "C" {
134 #endif
135 
137 
140 
143 
146 
149 
153 typedef P6R::P6ERR (*P6SUBMAIN)(P6R::P6INT32 argc,P6R::P6CHAR *argv[],P6R::p6ICurThread *pCurThread,P6R::p6ILogProducer *pThreadLogger);
154 
178 P6API P6R::P6ERR p6Initialize(P6SUBMAIN pfnSubMain,P6R::P6INT32 argc,P6R::P6CHAR *argv[],P6R::P6COMFLAGS fFlags);
179 typedef P6R::P6ERR (*P6INITIALIZE)(P6SUBMAIN pfnSubMain,P6R::P6INT32 argc,P6R::P6CHAR *argv[],P6R::P6COMFLAGS fFlags);
180 
207 
210 
233 
262 P6API P6R::P6ERR p6CreateInstance(P6R::p6ICom *pOuter,const P6R::CID &cid,const P6R::IID &iid,P6R::P6VOID **ppIface);
263 
265 
282 P6API P6R::P6ERR p6UUIDToString(const P6R::P6UUID &uuid,P6R::P6CHAR *pBuffer,P6R::P6SIZE cBuffer);
283 
301 P6API P6R::P6ERR p6UUIDToWString(const P6R::P6UUID &uuid,P6R::P6WCHAR *pBuffer,P6R::P6SIZE cBuffer);
302 
320 P6API P6R::P6ERR p6StringToUUID(const P6R::P6CHAR *pszUUID,P6R::P6UUID &uuid);
321 
339 P6API P6R::P6ERR p6WStringToUUID(const P6R::P6WCHAR *pszUUID,P6R::P6UUID &uuid);
341 
357 
373 
375 
396 P6API P6R::P6ERR p6GetModuleFilename(P6R::P6WCHAR *pszBuffer,P6R::P6SIZE *pcBuffer);
397 
417 P6API P6R::P6ERR p6GetDirectory(P6DIRS nDir,P6R::P6WCHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6SIZE *pcWritten);
419 
432 
445 
447 
459 P6API P6R::P6INT32 p6AtomicAdd32(P6R::P6INT32 volatile *pVar,P6R::P6INT32 value);
460 
474 P6API P6R::P6INT32 p6AtomicSet32(P6R::P6INT32 volatile *pVar,P6R::P6INT32 value);
475 
489 P6API P6R::P6INT64 p6AtomicSet64(P6R::P6INT64 volatile *pVar,P6R::P6INT64 value);
490 
504 P6API P6R::P6VOID* p6AtomicSetPtr(P6R::P6VOID volatile **pVar,P6R::P6VOID *pValue);
505 
519 P6API P6R::P6UINT32 p6HashData(const P6R::P6UINT8 *pData,P6R::P6SIZE cData,P6R::P6UINT32 hash);
520 
528 P6API P6R::P6UINT32 p6HashString(const P6R::P6CHAR *pszData);
529 
537 P6API P6R::P6UINT32 p6HashStringW(const P6R::P6WCHAR *pszData);
538 
539 P6API P6R::P6UINT32 p6HashBCSTR(P6R::P6BCSTR *pbcsString);
540 
541 P6API P6R::P6UINT32 p6HashBWCSTR(P6R::P6BWCSTR *pbwcsString);
542 
550 P6API P6R::P6UINT32 p6HashUINT32(P6R::P6UINT32 nInteger);
551 
559 P6API P6R::P6UINT64 p6HashUINT64(P6R::P6UINT64 nInteger);
560 
571 P6API P6R::P6UINT32 p6HashUINT64to32(P6R::P6UINT64 nInteger);
572 
603 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);
604 
636 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);
637 
646 P6API P6R::P6ERR p6GetErrorInfo(P6R::p6IErrorInfo **ppInfo);
647 
648 
661 P6API P6R::P6ERR p6AllocMemory(P6R::P6SIZE cSize,P6R::P6VOID **ppMemory);
662 
672 P6API P6R::P6ERR p6FreeMemory(P6R::P6VOID *pMemory);
673 
688 P6API P6R::P6ERR p6AllocComString(const P6R::P6WCHAR *pszSource,P6R::P6COMSTR *ppNewString);
689 
698 P6API P6R::P6ERR p6FreeComString(P6R::P6COMSTR pString);
699 
717 P6API P6R::P6ERR p6ComStringLen(const P6R::P6COMSTR pString,P6R::P6SIZE *pLength);
718 
736 P6API P6R::P6ERR p6ComStringByteLen(const P6R::P6COMSTR pString,P6R::P6SIZE *pLength);
737 
751 P6API P6R::P6ERR p6AllocComStringLen(P6R::P6WCHAR *pszSource,P6R::P6SIZE nSize,P6R::P6COMSTR *ppNewString);
752 
764 P6API P6R::P6ERR p6GetRuntimeVersion(P6R::P6VERINFO *pVerInfo);
765 
775 P6API P6R::P6ERR p6GetThreadLogger(P6R::p6ILogProducer **ppLogger);
776 
788 P6API P6R::P6ERR p6MapOSError(P6R::P6UINT32 oserr);
789 
790 P6API P6R::P6ERR p6Backtrace(P6R::P6CHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6UINT32 cFramesToSkip,P6BTFLAGS fFlags);
791 
792 P6API P6R::P6ERR p6Assert(const P6R::P6WCHAR *pszExpr,const P6R::P6CHAR *pszFile,P6R::P6UINT32 nLine);
793 
818 #define P6ASSERT(expr) ((expr)?P6R::eOk:p6Assert(P6TEXT(#expr),__FILE__,__LINE__))
819 
820 
831 P6API P6R::P6VOID p6DbgBreak();
832 
833 
862 P6API P6R::P6ERR p6CreateCryptoInstance(const P6R::CID &cid,const P6R::IID &iid,P6R::P6VOID **ppIface);
863 
885 P6API P6R::P6ERR p6GetCryptoProviderVersion(P6R::P6CHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6SIZE *pcWritten,P6R::P6BOOL bVerbose);
886 
908 P6API P6R::P6ERR p6TraceAddref(const P6R::P6CHAR *pszClassname,P6R::P6UINT32 cClassSize,P6R::P6VOID *classAddr,P6R::P6INT32 refCount,P6R::P6UINT32 *pSerialNumber);
909 
910 P6API P6R::P6ERR p6TraceRelease(const P6R::P6CHAR *pszClassname,P6R::P6VOID *classAddr,P6R::P6INT32 refCount,P6R::P6UINT32 *pSerialNumber);
911 
912 P6API P6R::P6ERR p6TraceCTOR(const P6R::P6CHAR *pszClassname,P6R::P6UINT32 cClassSize,P6R::P6VOID *classAddr,P6R::P6UINT32 *pSerialNumber);
913 
914 P6API P6R::P6ERR p6TraceDTOR(const P6R::P6CHAR *pszClassname,P6R::P6VOID *classAddr,P6R::P6UINT32 *pSerialNumber);
915 
916 P6API P6R::P6VOID p6ComponentCTOR();
917 
918 P6API P6R::P6VOID p6ComponentDTOR();
920 
921 
924 #ifdef __cplusplus
925 }
926 #endif
927 
928 #endif
size_t P6SIZE
Definition: p6types.h:62
P6LONGLONG P6INT64
Definition: p6types.h:50
Const Binary string.
Definition: p6types.h:167
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:982
bool P6BOOL
Boolean type.
Definition: p6types.h:101
This interface is used by a thread to manage information about itself.
Definition: p6thread.h:93
P6WCHAR * P6COMSTR
Standard COM length encoded string.
Definition: p6types.h:79
Wide Const binary string.
Definition: p6types.h:199
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:130
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:843
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:995
char P6CHAR
Narrow character type.
Definition: p6types.h:71