Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
p6dllapi.h
Go to the documentation of this file.
1 
9 #ifndef P6DLLAPI_H__
10 #define P6DLLAPI_H__ 1
11 
12 #include "p6log.h"
13 
14 
15 #ifdef __cplusplus
16 namespace P6R {
17 extern "C" {
18 #endif
19 
20  typedef P6ERR (P6CCALL *P6GETRUNTIMEIFACE)(const P6REFIID iid,P6VOID **ppIface);
21  typedef P6ERR (P6CCALL *P6CREATEINSTANCE)(p6ICom *pOuter,const P6REFCID cid,const P6REFIID iid,P6VOID **ppIface);
22  typedef P6ERR (P6CCALL *P6UUIDTOSTRING)(const P6REFUUID uuid,P6CHAR *pBuffer,P6SIZE cBuffer);
23  typedef P6ERR (P6CCALL *P6UUIDTOWSTRING)(const P6REFUUID uuid,P6WCHAR *pBuffer,P6SIZE cBuffer);
24  typedef P6ERR (P6CCALL *P6STRINGTOUUID)(const P6CHAR *pszUUID,P6REFUUID uuid);
25  typedef P6ERR (P6CCALL *P6WSTRINGTOUUID)(const P6WCHAR *pszUUID,P6REFUUID uuid);
26  typedef P6CHAR * (P6CCALL *P6ERRTOSTR)(P6ERR err,P6CHAR *pszBuffer,P6SIZE cBuffer);
27  typedef P6WCHAR * (P6CCALL *P6ERRTOWSTR)(P6ERR err,P6WCHAR *pszBuffer,P6SIZE cBuffer);
28  typedef P6ERR (P6CCALL *P6GETMODULEFILENAME)(P6WCHAR *pszBuffer,P6SIZE *pcBuffer);
29  typedef P6ERR (P6CCALL *P6GETDIRECTORY)(P6DIRS nDir,P6WCHAR *pBuffer,P6SIZE cBuffer,P6SIZE *pcWritten);
30  typedef P6INT32 (P6CCALL *P6ATOMICINC32)(P6INT32 volatile *pVar);
31  typedef P6INT32 (P6CCALL *P6ATOMICDEC32)(P6INT32 volatile *pVar);
32  typedef P6INT32 (P6CCALL *P6ATOMICADD32)(P6INT32 volatile *pVar,P6INT32 value);
33  typedef P6INT32 (P6CCALL *P6ATOMICSET32)(P6INT32 volatile *pVar,P6INT32 value);
34  typedef P6INT64 (P6CCALL *P6ATOMICSET64)(P6INT64 volatile *pVar,P6INT64 value);
35  typedef P6VOID* (P6CCALL *P6ATOMICSETPTR)(P6VOID volatile **pVar,P6VOID *pValue);
36  typedef P6UINT32 (P6CCALL *P6HASHDATA)(const P6UINT8 *pData,P6SIZE cData,P6UINT32 hash);
37  typedef P6UINT32 (P6CCALL *P6HASHSTRING)(const P6CHAR *pszData);
38  typedef P6UINT32 (P6CCALL *P6HASHSTRINGW)(const P6WCHAR *pszData);
39  typedef P6UINT32 (P6CCALL *P6HASHBCSTR)(P6BCSTR *pbcsString);
40  typedef P6UINT32 (P6CCALL *P6HASHBWCSTR)(P6BWCSTR *pbwcsString);
41  typedef P6UINT32 (P6CCALL *P6HASHUINT32)(P6UINT32 nInteger);
42  typedef P6UINT64 (P6CCALL *P6HASHUINT64)(P6UINT64 nInteger);
43  typedef P6UINT32 (P6CCALL *P6HASHUINT64TO32)(P6UINT64 nInteger);
44  typedef P6ERR (P6CCALL *P6SETERROR)(const P6IID *piid,const P6CHAR *pszFile,P6UINT32 cLine,P6ERR error,const P6WCHAR *pwszContext,const P6WCHAR *pwszDescription);
45  typedef P6ERR (P6CCALL *P6SETERRORA)(const P6IID *piid,const P6CHAR *pszFile,P6UINT32 cLine,P6ERR error,const P6CHAR *pszContext,const P6CHAR *pszDescription);
46  typedef P6ERR (P6CCALL *P6GETERRORINFO)(p6IErrorInfo **ppInfo);
47  typedef P6ERR (P6CCALL *P6ALLOCMEMORY)(P6SIZE cSize,P6VOID **ppMemory);
48  typedef P6ERR (P6CCALL *P6FREEMEMORY)(P6VOID *pMemory);
49  typedef P6ERR (P6CCALL *P6ALLOCCOMSTRING)(const P6WCHAR *pszSource,P6COMSTR *ppNewString);
50  typedef P6ERR (P6CCALL *P6FREECOMSTRING)(P6COMSTR pString);
51  typedef P6ERR (P6CCALL *P6COMSTRINGLEN)(const P6COMSTR pString,P6SIZE *pLength);
52  typedef P6ERR (P6CCALL *P6COMSTRINGBYTELEN)(const P6COMSTR pString,P6SIZE *pLength);
53  typedef P6ERR (P6CCALL *P6ALLOCCOMSTRINGLEN)(P6WCHAR *pszSource,P6SIZE nSize,P6COMSTR *ppNewString);
54  typedef P6ERR (P6CCALL *P6GETRUNTIMEVERSION)(P6VERINFO *pVerInfo);
55  typedef P6ERR (P6CCALL *P6GETTHREADLOGGER)(p6ILogProducer **ppLogger);
56  typedef P6ERR (P6CCALL *P6MAPOSERROR)(P6UINT32 oserr);
57  typedef P6ERR (P6CCALL *P6BACKTRACE)(P6CHAR *pBuffer,P6SIZE cBuffer,P6UINT32 cFramesToSkip,P6BTFLAGS fFlags);
58  typedef P6ERR (P6CCALL *P6ASSERT)(const P6WCHAR *pszExpr,const P6CHAR *pszFile,P6UINT32 nLine);
59  typedef P6ERR (P6CCALL *P6CREATECRYPTOINSTANCE)(const P6REFCID cid,const P6REFIID iid,P6VOID **ppIface);
60  typedef P6ERR (P6CCALL *P6TRACEADDREF)(const P6CHAR *pszClassname,P6UINT32 cClassSize,P6VOID *classAddr,P6INT32 refCount,P6UINT32 *pSerialNumber);
61  typedef P6ERR (P6CCALL *P6TRACERELEASE)(const P6CHAR *pszClassname,P6VOID *classAddr,P6INT32 refCount,P6UINT32 *pSerialNumber);
62  typedef P6ERR (P6CCALL *P6TRACECTOR)(const P6CHAR *pszClassname,P6UINT32 cClassSize,P6VOID *classAddr,P6UINT32 *pSerialNumber);
63  typedef P6ERR (P6CCALL *P6TRACEDTOR)(const P6CHAR *pszClassname,P6VOID *classAddr,P6UINT32 *pSerialNumber);
66  typedef P6VOID (P6CCALL *P6DBGBREAK)();
67  typedef P6ERR (P6CCALL *P6GETCRYPTOPROVIDERVERSION)(P6CHAR *pBuffer,P6SIZE cBuffer,P6SIZE *pcWritten,P6BOOL bVerbose);
68 
70 
73  typedef struct {
74  P6UINT32 cSize;
98  P6SETERROR p6SetError;
99  P6SETERRORA p6SetErrorA;
100  P6GETERRORINFO p6GetErrorInfo;
111  P6BACKTRACE p6Backtrace;
112  P6ASSERT p6Assert;
116  P6TRACEADDREF p6TraceAddref;
117  P6TRACERELEASE p6TraceRelease;
118  P6TRACECTOR p6TraceCTOR;
119  P6TRACEDTOR p6TraceDTOR;
120  } P6DLLAPI_1_0;
121 
122  typedef P6DLLAPI_1_0 P6DLLAPI;
124 
125 #ifdef __cplusplus
126 } // extern "C"
127 } // namespace
128 #endif
129 
130 
131 
132 #endif
133 
134 
size_t P6SIZE
Definition: p6types.h:90
#define P6REFUUID
Definition: p6defs.h:195
uint64_t P6UINT64
Definition: p6types.h:79
P6ERR(P6CCALL * P6ALLOCCOMSTRING)(const P6WCHAR *pszSource, P6COMSTR *ppNewString)
Definition: p6dllapi.h:49
P6UINT64(P6CCALL * P6HASHUINT64)(P6UINT64 nInteger)
Definition: p6dllapi.h:42
P6API P6VOID *P6CCALL p6AtomicSetPtr(P6VOID volatile **pVar, P6VOID *pValue)
Atomically sets the value in the variable pointed to by pVar with the specified value.
P6API P6ERR P6CCALL p6GetRuntimeVersion(P6VERINFO *pVerInfo)
Return version informaton for runtime.
Const Binary string.
Definition: p6types.h:199
#define P6CCALL
Definition: p6defs.h:124
P6UINT32(P6CCALL * P6HASHBWCSTR)(P6BWCSTR *pbwcsString)
Definition: p6dllapi.h:40
P6API P6ERR P6CCALL p6GetDirectory(P6DIRS nDir, P6WCHAR *pBuffer, P6SIZE cBuffer, P6SIZE *pcWritten)
This method can be used to retrieve the location of the specified directory.
P6API P6ERR P6CCALL p6GetRuntimeIface(const P6R::P6IID &iid, P6VOID **ppIface)
This method is used to retreive any of the loader runtime interfaces.
P6API P6WCHAR *P6CCALL p6ErrToWStr(P6ERR err, P6WCHAR *pszBuffer, P6SIZE cBuffer)
Convert a standard P6R::P6ERR into it's P6WCHAR* string representation.
P6API P6ERR P6CCALL p6ComStringLen(const P6COMSTR pString, P6SIZE *pLength)
Returns the length in characters of a P6COMSTR not including the terminating NULL character...
P6API P6UINT32 P6CCALL p6HashBCSTR(P6BCSTR *pbcsString)
#define P6REFIID
Definition: p6defs.h:197
uint32_t P6UINT32
Definition: p6types.h:77
P6ERR(P6CCALL * P6COMSTRINGBYTELEN)(const P6COMSTR pString, P6SIZE *pLength)
Definition: p6dllapi.h:52
P6ERR(P6CCALL * P6COMSTRINGLEN)(const P6COMSTR pString, P6SIZE *pLength)
Definition: p6dllapi.h:51
P6API P6UINT64 P6CCALL p6HashUINT64(P6UINT64 nInteger)
A 64 bit integer hash.
P6INT32(P6CCALL * P6ATOMICADD32)(P6INT32 volatile *pVar, P6INT32 value)
Definition: p6dllapi.h:32
P6API P6INT32 P6CCALL p6AtomicAdd32(P6INT32 volatile *pVar, P6INT32 value)
Atomically adds the specified value to the variable pointed to by pVar.
unsigned char P6BOOL
Boolean type.
Definition: p6types.h:133
P6ERR(P6CCALL * P6STRINGTOUUID)(const P6CHAR *pszUUID, P6R::P6UUID &uuid)
Definition: p6dllapi.h:24
P6ERR(P6CCALL * P6GETMODULEFILENAME)(P6WCHAR *pszBuffer, P6SIZE *pcBuffer)
Definition: p6dllapi.h:28
P6WCHAR * P6COMSTR
Standard COM length encoded string.
Definition: p6types.h:117
Wide Const binary string.
Definition: p6types.h:231
P6API P6ERR P6CCALL p6CreateCryptoInstance(const P6R::P6CID &cid, const P6R::P6IID &iid, P6VOID **ppIface)
Creates a single uninitialized instance of the cryptographic interface associated with the specified ...
P6ERR(P6CCALL * P6TRACECTOR)(const P6CHAR *pszClassname, P6UINT32 cClassSize, P6VOID *classAddr, P6UINT32 *pSerialNumber)
Definition: p6dllapi.h:62
P6INT32(P6CCALL * P6ATOMICDEC32)(P6INT32 volatile *pVar)
Definition: p6dllapi.h:31
P6ERR(P6CCALL * P6ALLOCCOMSTRINGLEN)(P6WCHAR *pszSource, P6SIZE nSize, P6COMSTR *ppNewString)
Definition: p6dllapi.h:53
P6ERR(P6CCALL * P6GETRUNTIMEIFACE)(const P6R::P6IID &iid, P6VOID **ppIface)
Definition: p6dllapi.h:20
P6API P6ERR P6CCALL p6WStringToUUID(const P6WCHAR *pszUUID, P6R::P6UUID &uuid)
Used to convert the wide character string representation of a P6UUID in the form "{00000000-0000-0000...
P6API P6ERR P6CCALL p6GetCryptoProviderVersion(P6CHAR *pBuffer, P6SIZE cBuffer, P6SIZE *pcWritten, P6BOOL bVerbose)
This function retrieves a string that describes the underlying crypto provider's name and version...
P6API P6INT32 P6CCALL p6AtomicDec32(P6INT32 volatile *pVar)
Atomically decrements the variable pointed to by pVar by one.
P6API P6UINT32 P6CCALL p6HashString(const P6CHAR *pszData)
An implementation of Paul Hsieh's super fast hash for narrow strings.
unsigned char P6UINT8
Definition: p6types.h:71
P6API P6INT32 P6CCALL p6AtomicInc32(P6INT32 volatile *pVar)
Atomically increments the variable pointed to by pVar by one.
P6ERR(P6CCALL * P6ASSERT)(const P6WCHAR *pszExpr, const P6CHAR *pszFile, P6UINT32 nLine)
Definition: p6dllapi.h:58
P6API P6ERR P6CCALL p6ComStringByteLen(const P6COMSTR pString, P6SIZE *pLength)
Returns the length in bytes of a P6COMSTR not including the terminating NULL character.
P6API P6ERR P6CCALL p6FreeMemory(P6VOID *pMemory)
Frees memory allocated with p6AllocMemory().
P6API P6ERR P6CCALL p6AllocComStringLen(P6WCHAR *pszSource, P6SIZE nSize, P6COMSTR *ppNewString)
Allocates a new COM String of the sepcified size and optionally containing a copy of pszSource...
P6API P6ERR P6CCALL p6MapOSError(P6UINT32 oserr)
Used by porting layers to map OS error values to P6ERR values.
P6ERR(P6CCALL * P6FREECOMSTRING)(P6COMSTR pString)
Definition: p6dllapi.h:50
P6API P6INT64 P6CCALL p6AtomicSet64(P6INT64 volatile *pVar, P6INT64 value)
Atomically sets the value in the variable pointed to by pVar with the specified value.
wchar_t P6WCHAR
Wide character type see p6i18n.h.
Definition: p6types.h:111
P6UINT32 P6BTFLAGS
Runtime API Types.
Definition: p6types.h:872
P6API P6INT32 P6CCALL p6AtomicSet32(P6INT32 volatile *pVar, P6INT32 value)
Atomically sets the value in the variable pointed to by pVar with the specified value.
P6ERR(P6CCALL * P6SETERROR)(const P6IID *piid, const P6CHAR *pszFile, P6UINT32 cLine, P6ERR error, const P6WCHAR *pwszContext, const P6WCHAR *pwszDescription)
Definition: p6dllapi.h:44
P6ERR(P6CCALL * P6UUIDTOWSTRING)(const P6R::P6UUID &uuid, P6WCHAR *pBuffer, P6SIZE cBuffer)
Definition: p6dllapi.h:23
P6API P6UINT32 P6CCALL p6HashStringW(const P6WCHAR *pszData)
An implementation of Paul Hsieh's super fast hash for wide strings.
P6VOID *(P6CCALL * P6ATOMICSETPTR)(P6VOID volatile **pVar, P6VOID *pValue)
Definition: p6dllapi.h:35
The base interface all [p6]COM components must derive from and implement.
Definition: p6comdef.h:97
P6API P6ERR P6CCALL p6FreeComString(P6COMSTR pString)
Frees a COM string previously allocated with p6AllocComString(), p6AllocComStringLen(), p6AllocComStringByteLen()
P6INT64(P6CCALL * P6ATOMICSET64)(P6INT64 volatile *pVar, P6INT64 value)
Definition: p6dllapi.h:34
P6API P6ERR P6CCALL p6CreateInstance(p6ICom *pOuter, const P6R::P6CID &cid, const P6R::P6IID &iid, P6VOID **ppIface)
Creates a single uninitialized instance of the class/interface associated with the specified componen...
int64_t P6INT64
Definition: p6types.h:78
P6DIRS
This enumeration defines the directories which can be retrieved using the p6GetDirectory() API...
Definition: p6types.h:897
Log producer component interfaces.
P6API P6ERR P6CCALL p6UUIDToString(const P6R::P6UUID &uuid, P6CHAR *pBuffer, P6SIZE cBuffer)
This function is used to convert a P6UUID into a string in the form "{00000000-0000-0000-0000-0000000...
P6API P6UINT32 P6CCALL p6HashData(const P6UINT8 *pData, P6SIZE cData, P6UINT32 hash)
An implementation of Paul Hsieh's super fast hash for arbitrary non-NULL terminated data...
P6VOID(P6CCALL * P6COMPONENTDTOR)()
Definition: p6dllapi.h:65
P6VOID(P6CCALL * P6COMPONENTCTOR)()
Definition: p6dllapi.h:64
P6ERR(P6CCALL * P6CREATEINSTANCE)(p6ICom *pOuter, const P6R::P6CID &cid, const P6R::P6IID &iid, P6VOID **ppIface)
Definition: p6dllapi.h:21
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
P6UINT32(P6CCALL * P6HASHUINT64TO32)(P6UINT64 nInteger)
Definition: p6dllapi.h:43
P6VOID(P6CCALL * P6DBGBREAK)()
Definition: p6dllapi.h:66
P6UINT32(P6CCALL * P6HASHSTRING)(const P6CHAR *pszData)
Definition: p6dllapi.h:37
A universally unique indentifier (UUID).
Definition: p6types.h:162
P6API P6ERR P6CCALL p6StringToUUID(const P6CHAR *pszUUID, P6R::P6UUID &uuid)
Used to convert a string representing a P6UUID in the form "{00000000-0000-0000-0000-000000000000}" i...
P6API P6ERR P6CCALL p6AllocMemory(P6SIZE cSize, P6VOID **ppMemory)
Allocated a block of memory.
P6ERR(P6CCALL * P6TRACEADDREF)(const P6CHAR *pszClassname, P6UINT32 cClassSize, P6VOID *classAddr, P6INT32 refCount, P6UINT32 *pSerialNumber)
Definition: p6dllapi.h:60
P6UINT32(P6CCALL * P6HASHSTRINGW)(const P6WCHAR *pszData)
Definition: p6dllapi.h:38
P6ERR(P6CCALL * P6BACKTRACE)(P6CHAR *pBuffer, P6SIZE cBuffer, P6UINT32 cFramesToSkip, P6BTFLAGS fFlags)
Definition: p6dllapi.h:57
P6ERR(P6CCALL * P6GETRUNTIMEVERSION)(P6VERINFO *pVerInfo)
Definition: p6dllapi.h:54
P6UINT32(P6CCALL * P6HASHBCSTR)(P6BCSTR *pbcsString)
Definition: p6dllapi.h:39
P6UINT32 P6ERR
COM err return type see P6ERR.h.
Definition: p6types.h:141
P6WCHAR *(P6CCALL * P6ERRTOWSTR)(P6ERR err, P6WCHAR *pszBuffer, P6SIZE cBuffer)
Definition: p6dllapi.h:27
P6UINT32(P6CCALL * P6HASHUINT32)(P6UINT32 nInteger)
Definition: p6dllapi.h:41
P6API P6ERR P6CCALL p6UUIDToWString(const P6R::P6UUID &uuid, P6WCHAR *pBuffer, P6SIZE cBuffer)
This function is used to convert a P6UUID into a wide string in the form "{00000000-0000-0000-0000-00...
P6API P6ERR P6CCALL p6AllocComString(const P6WCHAR *pszSource, P6COMSTR *ppNewString)
Allocates a new COM string the same length as pSource and copies the characters in pSource into the n...
P6ERR(P6CCALL * P6FREEMEMORY)(P6VOID *pMemory)
Definition: p6dllapi.h:48
P6ERR(P6CCALL * P6MAPOSERROR)(P6UINT32 oserr)
Definition: p6dllapi.h:56
P6ERR(P6CCALL * P6WSTRINGTOUUID)(const P6WCHAR *pszUUID, P6R::P6UUID &uuid)
Definition: p6dllapi.h:25
P6API P6VOID P6CCALL p6DbgBreak()
A platform independent embeddable breakpoint.
P6ERR(P6CCALL * P6ALLOCMEMORY)(P6SIZE cSize, P6VOID **ppMemory)
Definition: p6dllapi.h:47
P6ERR(P6CCALL * P6GETERRORINFO)(p6IErrorInfo **ppInfo)
Definition: p6dllapi.h:46
P6ERR(P6CCALL * P6SETERRORA)(const P6IID *piid, const P6CHAR *pszFile, P6UINT32 cLine, P6ERR error, const P6CHAR *pszContext, const P6CHAR *pszDescription)
Definition: p6dllapi.h:45
P6CHAR *(P6CCALL * P6ERRTOSTR)(P6ERR err, P6CHAR *pszBuffer, P6SIZE cBuffer)
Definition: p6dllapi.h:26
P6ERR(P6CCALL * P6GETDIRECTORY)(P6DIRS nDir, P6WCHAR *pBuffer, P6SIZE cBuffer, P6SIZE *pcWritten)
Definition: p6dllapi.h:29
P6UINT32(P6CCALL * P6HASHDATA)(const P6UINT8 *pData, P6SIZE cData, P6UINT32 hash)
Definition: p6dllapi.h:36
P6API P6UINT32 P6CCALL p6HashBWCSTR(P6BWCSTR *pbwcsString)
P6API P6ERR P6CCALL p6GetThreadLogger(p6ILogProducer **ppLogger)
Used to retrieve the p6ILogProducer interface for the current thread.
P6API P6UINT32 P6CCALL p6HashUINT64to32(P6UINT64 nInteger)
A 64 bit integer to 32 bit hash.
#define P6REFCID
Definition: p6defs.h:196
P6INT32(P6CCALL * P6ATOMICINC32)(P6INT32 volatile *pVar)
Definition: p6dllapi.h:30
void P6VOID
Definition: p6types.h:109
int32_t P6INT32
Definition: p6types.h:76
P6ERR(P6CCALL * P6CREATECRYPTOINSTANCE)(const P6R::P6CID &cid, const P6R::P6IID &iid, P6VOID **ppIface)
Definition: p6dllapi.h:59
P6ERR(P6CCALL * P6UUIDTOSTRING)(const P6R::P6UUID &uuid, P6CHAR *pBuffer, P6SIZE cBuffer)
Definition: p6dllapi.h:22
P6ERR(P6CCALL * P6GETCRYPTOPROVIDERVERSION)(P6CHAR *pBuffer, P6SIZE cBuffer, P6SIZE *pcWritten, P6BOOL bVerbose)
Definition: p6dllapi.h:67
P6API P6UINT32 P6CCALL p6HashUINT32(P6UINT32 nInteger)
A 32 bit integer hash.
P6INT32(P6CCALL * P6ATOMICSET32)(P6INT32 volatile *pVar, P6INT32 value)
Definition: p6dllapi.h:33
P6ERR(P6CCALL * P6TRACERELEASE)(const P6CHAR *pszClassname, P6VOID *classAddr, P6INT32 refCount, P6UINT32 *pSerialNumber)
Definition: p6dllapi.h:61
P6ERR(P6CCALL * P6GETTHREADLOGGER)(p6ILogProducer **ppLogger)
Definition: p6dllapi.h:55
P6API P6CHAR *P6CCALL p6ErrToStr(P6ERR err, P6CHAR *pszBuffer, P6SIZE cBuffer)
Convert a standard P6R::P6ERR into it's ASCII string representation.
char P6CHAR
Narrow character type.
Definition: p6types.h:105
P6ERR(P6CCALL * P6TRACEDTOR)(const P6CHAR *pszClassname, P6VOID *classAddr, P6UINT32 *pSerialNumber)
Definition: p6dllapi.h:63