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 namespace P6R {
15 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 
20  typedef P6R::P6ERR (*P6GETRUNTIMEIFACE)(const P6R::IID &iid,P6R::P6VOID **ppIface);
21  typedef P6R::P6ERR (*P6CREATEINSTANCE)(P6R::p6ICom *pOuter,const P6R::CID &cid,const P6R::IID &iid,P6R::P6VOID **ppIface);
22  typedef P6R::P6ERR (*P6UUIDTOSTRING)(const P6R::P6UUID &uuid,P6R::P6CHAR *pBuffer,P6R::P6SIZE cBuffer);
23  typedef P6R::P6ERR (*P6UUIDTOWSTRING)(const P6R::P6UUID &uuid,P6R::P6WCHAR *pBuffer,P6R::P6SIZE cBuffer);
24  typedef P6R::P6ERR (*P6STRINGTOUUID)(const P6R::P6CHAR *pszUUID,P6R::P6UUID &uuid);
25  typedef P6R::P6ERR (*P6WSTRINGTOUUID)(const P6R::P6WCHAR *pszUUID,P6R::P6UUID &uuid);
26  typedef P6R::P6CHAR * (*P6ERRTOSTR)(P6R::P6ERR err,P6R::P6CHAR *pszBuffer,P6R::P6SIZE cBuffer);
27  typedef P6R::P6WCHAR * (*P6ERRTOWSTR)(P6R::P6ERR err,P6R::P6WCHAR *pszBuffer,P6R::P6SIZE cBuffer);
28  typedef P6R::P6ERR (*P6GETMODULEFILENAME)(P6R::P6WCHAR *pszBuffer,P6R::P6SIZE *pcBuffer);
29  typedef P6R::P6ERR (*P6GETDIRECTORY)(P6DIRS nDir,P6R::P6WCHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6SIZE *pcWritten);
30  typedef P6R::P6INT32 (*P6ATOMICINC32)(P6R::P6INT32 volatile *pVar);
31  typedef P6R::P6INT32 (*P6ATOMICDEC32)(P6R::P6INT32 volatile *pVar);
32  typedef P6R::P6INT32 (*P6ATOMICADD32)(P6R::P6INT32 volatile *pVar,P6R::P6INT32 value);
33  typedef P6R::P6INT32 (*P6ATOMICSET32)(P6R::P6INT32 volatile *pVar,P6R::P6INT32 value);
34  typedef P6R::P6INT64 (*P6ATOMICSET64)(P6R::P6INT64 volatile *pVar,P6R::P6INT64 value);
35  typedef P6R::P6VOID* (*P6ATOMICSETPTR)(P6R::P6VOID volatile **pVar,P6R::P6VOID *pValue);
36  typedef P6R::P6UINT32 (*P6HASHDATA)(const P6R::P6UINT8 *pData,P6R::P6SIZE cData,P6R::P6UINT32 hash);
37  typedef P6R::P6UINT32 (*P6HASHSTRING)(const P6R::P6CHAR *pszData);
38  typedef P6R::P6UINT32 (*P6HASHSTRINGW)(const P6R::P6WCHAR *pszData);
39  typedef P6R::P6UINT32 (*P6HASHBCSTR)(P6R::P6BCSTR *pbcsString);
40  typedef P6R::P6UINT32 (*P6HASHBWCSTR)(P6R::P6BWCSTR *pbwcsString);
44  typedef 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);
45  typedef 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);
46  typedef P6R::P6ERR (*P6GETERRORINFO)(P6R::p6IErrorInfo **ppInfo);
47  typedef P6R::P6ERR (*P6ALLOCMEMORY)(P6R::P6SIZE cSize,P6R::P6VOID **ppMemory);
48  typedef P6R::P6ERR (*P6FREEMEMORY)(P6R::P6VOID *pMemory);
49  typedef P6R::P6ERR (*P6ALLOCCOMSTRING)(const P6R::P6WCHAR *pszSource,P6R::P6COMSTR *ppNewString);
51  typedef P6R::P6ERR (*P6COMSTRINGLEN)(const P6R::P6COMSTR pString,P6R::P6SIZE *pLength);
52  typedef P6R::P6ERR (*P6COMSTRINGBYTELEN)(const P6R::P6COMSTR pString,P6R::P6SIZE *pLength);
53  typedef P6R::P6ERR (*P6ALLOCCOMSTRINGLEN)(P6R::P6WCHAR *pszSource,P6R::P6SIZE nSize,P6R::P6COMSTR *ppNewString);
54  typedef P6R::P6ERR (*P6GETRUNTIMEVERSION)(P6R::P6VERINFO *pVerInfo);
56  typedef P6R::P6ERR (*P6BACKTRACE)(P6R::P6CHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6UINT32 cFramesToSkip,P6BTFLAGS fFlags);
57  typedef P6R::P6ERR (*P6ASSERT)(const P6R::P6WCHAR *pszExpr,const P6R::P6CHAR *pszFile,P6R::P6UINT32 nLine);
58  typedef P6R::P6ERR (*P6CREATECRYPTOINSTANCE)(const P6R::CID &cid,const P6R::IID &iid,P6R::P6VOID **ppIface);
59  typedef P6R::P6ERR (*P6TRACEADDREF)(const P6R::P6CHAR *pszClassname,P6R::P6UINT32 cClassSize,P6R::P6VOID *classAddr,P6R::P6INT32 refCount,P6R::P6UINT32 *pSerialNumber);
60  typedef P6R::P6ERR (*P6TRACERELEASE)(const P6R::P6CHAR *pszClassname,P6R::P6VOID *classAddr,P6R::P6INT32 refCount,P6R::P6UINT32 *pSerialNumber);
61  typedef P6R::P6ERR (*P6TRACECTOR)(const P6R::P6CHAR *pszClassname,P6R::P6UINT32 cClassSize,P6R::P6VOID *classAddr,P6R::P6UINT32 *pSerialNumber);
62  typedef P6R::P6ERR (*P6TRACEDTOR)(const P6R::P6CHAR *pszClassname,P6R::P6VOID *classAddr,P6R::P6UINT32 *pSerialNumber);
65  typedef P6R::P6ERR (*P6GETTHREADLOGGER)(P6R::p6ILogProducer **ppLogger);
66  typedef P6R::P6VOID (*P6DBGBREAK)();
67 
69 
72  typedef struct {
73  P6UINT32 cSize;
76  P6UUIDTOSTRING p6UUIDToString;
77  P6UUIDTOWSTRING p6UUIDToWString;
78  P6STRINGTOUUID p6StringToUUID;
79  P6WSTRINGTOUUID p6WStringToUUID;
82  P6GETDIRECTORY p6GetDirectory;
85  P6ATOMICADD32 p6AtomicAdd32;
86  P6ATOMICSET32 p6AtomicSet32;
87  P6ATOMICSET64 p6AtomicSet64;
88  P6ATOMICSETPTR p6AtomicSetPtr;
89  P6HASHDATA p6HashData;
90  P6HASHSTRING p6HashString;
91  P6HASHSTRINGW p6HashStringW;
92  P6HASHBCSTR p6HashBCSTR;
93  P6HASHBWCSTR p6HashBWCSTR;
94  P6HASHUINT32 p6HashUINT32;
95  P6HASHUINT64 p6HashUINT64;
96  P6HASHUINT64TO32 p6HashUINT64to32;
97  P6SETERROR p6SetError;
98  P6SETERRORA p6SetErrorA;
99  P6GETERRORINFO p6GetErrorInfo;
100  P6ALLOCMEMORY p6AllocMemory;
101  P6FREEMEMORY p6FreeMemory;
102  P6ALLOCCOMSTRING p6AllocComString;
103  P6FREECOMSTRING p6FreeComString;
104  P6COMSTRINGLEN p6ComStringLen;
105  P6COMSTRINGBYTELEN p6ComStringByteLen;
106  P6ALLOCCOMSTRINGLEN p6AllocComStringLen;
107  P6GETRUNTIMEVERSION p6GetRuntimeVersion;
108  P6MAPOSERROR p6MapOSError;
109  P6BACKTRACE p6Backtrace;
110  P6ASSERT p6Assert;
111  P6CREATECRYPTOINSTANCE p6CreateCryptoInstance;
112  P6TRACEADDREF p6TraceAddref;
113  P6TRACERELEASE p6TraceRelease;
114  P6TRACECTOR p6TraceCTOR;
115  P6TRACEDTOR p6TraceDTOR;
116  P6GETTHREADLOGGER p6GetThreadLogger;
117  P6DBGBREAK p6DbgBreak;
118  } P6DLLAPI_1_0;
119 
120  typedef P6DLLAPI_1_0 P6DLLAPI;
122 
123 #ifdef __cplusplus
124 }
125 #endif
126 
127 } // namespace
128 
129 
130 #endif
131 
132 
P6R::P6CHAR *(* P6ERRTOSTR)(P6R::P6ERR err, P6R::P6CHAR *pszBuffer, P6R::P6SIZE cBuffer)
Definition: p6dllapi.h:26
P6R::P6UINT32(* P6HASHSTRINGW)(const P6R::P6WCHAR *pszData)
Definition: p6dllapi.h:38
size_t P6SIZE
Definition: p6types.h:62
P6LONGLONG P6INT64
Definition: p6types.h:50
Const Binary string.
Definition: p6types.h:168
P6R::P6UINT32(* P6HASHBWCSTR)(P6R::P6BWCSTR *pbwcsString)
Definition: p6dllapi.h:40
P6R::P6VOID(* P6COMPONENTDTOR)()
Definition: p6dllapi.h:64
P6R::P6ERR(* P6TRACERELEASE)(const P6R::P6CHAR *pszClassname, P6R::P6VOID *classAddr, P6R::P6INT32 refCount, P6R::P6UINT32 *pSerialNumber)
Definition: p6dllapi.h:60
P6R::P6ERR(* P6ASSERT)(const P6R::P6WCHAR *pszExpr, const P6R::P6CHAR *pszFile, P6R::P6UINT32 nLine)
Definition: p6dllapi.h:57
P6R::P6ERR(* P6UUIDTOSTRING)(const P6R::P6UUID &uuid, P6R::P6CHAR *pBuffer, P6R::P6SIZE cBuffer)
Definition: p6dllapi.h:22
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...
P6R::P6UINT32 P6BTFLAGS
Runtime API Types.
Definition: p6types.h:937
P6R::P6ERR(* P6GETTHREADLOGGER)(P6R::p6ILogProducer **ppLogger)
Definition: p6dllapi.h:65
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)
Definition: p6dllapi.h:45
P6R::P6ERR(* P6STRINGTOUUID)(const P6R::P6CHAR *pszUUID, P6R::P6UUID &uuid)
Definition: p6dllapi.h:24
P6R::P6ERR(* P6TRACEADDREF)(const P6R::P6CHAR *pszClassname, P6R::P6UINT32 cClassSize, P6R::P6VOID *classAddr, P6R::P6INT32 refCount, P6R::P6UINT32 *pSerialNumber)
Definition: p6dllapi.h:59
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)
Definition: p6dllapi.h:44
P6WCHAR * P6COMSTR
Standard COM length encoded string.
Definition: p6types.h:79
P6R::P6ERR(* P6GETDIRECTORY)(P6DIRS nDir, P6R::P6WCHAR *pBuffer, P6R::P6SIZE cBuffer, P6R::P6SIZE *pcWritten)
Definition: p6dllapi.h:29
Wide Const binary string.
Definition: p6types.h:200
P6R::P6INT32(* P6ATOMICDEC32)(P6R::P6INT32 volatile *pVar)
Definition: p6dllapi.h:31
P6R::P6ERR(* P6GETMODULEFILENAME)(P6R::P6WCHAR *pszBuffer, P6R::P6SIZE *pcBuffer)
Definition: p6dllapi.h:28
P6R::P6ERR(* P6TRACECTOR)(const P6R::P6CHAR *pszClassname, P6R::P6UINT32 cClassSize, P6R::P6VOID *classAddr, P6R::P6UINT32 *pSerialNumber)
Definition: p6dllapi.h:61
P6R::P6UINT32(* P6HASHSTRING)(const P6R::P6CHAR *pszData)
Definition: p6dllapi.h:37
P6R::P6UINT32(* P6HASHBCSTR)(P6R::P6BCSTR *pbcsString)
Definition: p6dllapi.h:39
unsigned char P6UINT8
Definition: p6types.h:30
P6R::P6ERR(* P6GETRUNTIMEIFACE)(const P6R::IID &iid, P6R::P6VOID **ppIface)
Definition: p6dllapi.h:20
P6R::P6ERR(* P6COMSTRINGLEN)(const P6R::P6COMSTR pString, P6R::P6SIZE *pLength)
Definition: p6dllapi.h:51
P6R::P6INT32(* P6ATOMICADD32)(P6R::P6INT32 volatile *pVar, P6R::P6INT32 value)
Definition: p6dllapi.h:32
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.
P6R::P6ERR(* P6COMSTRINGBYTELEN)(const P6R::P6COMSTR pString, P6R::P6SIZE *pLength)
Definition: p6dllapi.h:52
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.
Log producer component interfaces.
P6R::P6ERR(* P6BACKTRACE)(P6R::P6CHAR *pBuffer, P6R::P6SIZE cBuffer, P6R::P6UINT32 cFramesToSkip, P6BTFLAGS fFlags)
Definition: p6dllapi.h:56
P6R::P6VOID(* P6COMPONENTCTOR)()
Definition: p6dllapi.h:63
P6R::P6UINT32(* P6HASHUINT32)(P6R::P6UINT32 nInteger)
Definition: p6dllapi.h:41
P6R::P6ERR(* P6GETRUNTIMEVERSION)(P6R::P6VERINFO *pVerInfo)
Definition: p6dllapi.h:54
P6R::P6ERR(* P6ALLOCMEMORY)(P6R::P6SIZE cSize, P6R::P6VOID **ppMemory)
Definition: p6dllapi.h:47
P6ULONGLONG P6UINT64
Definition: p6types.h:49
P6R::P6ERR(* P6ALLOCCOMSTRINGLEN)(P6R::P6WCHAR *pszSource, P6R::P6SIZE nSize, P6R::P6COMSTR *ppNewString)
Definition: p6dllapi.h:53
A universally unique indentifier (UUID).
Definition: p6types.h:131
P6R::P6ERR(* P6FREEMEMORY)(P6R::P6VOID *pMemory)
Definition: p6dllapi.h:48
P6UINT32 P6ERR
COM err return type see P6ERR.h.
Definition: p6types.h:109
P6R::P6INT32(* P6ATOMICSET32)(P6R::P6INT32 volatile *pVar, P6R::P6INT32 value)
Definition: p6dllapi.h:33
P6R::P6VOID *(* P6ATOMICSETPTR)(P6R::P6VOID volatile **pVar, P6R::P6VOID *pValue)
Definition: p6dllapi.h:35
P6R::P6INT32(* P6ATOMICINC32)(P6R::P6INT32 volatile *pVar)
Definition: p6dllapi.h:30
P6API P6R::P6ERR p6GetRuntimeIface(const P6R::IID &iid, P6R::P6VOID **ppIface)
This method is used to retreive any of the loader runtime interfaces.
P6R::P6ERR(* P6CREATEINSTANCE)(P6R::p6ICom *pOuter, const P6R::CID &cid, const P6R::IID &iid, P6R::P6VOID **ppIface)
Definition: p6dllapi.h:21
P6API P6R::P6INT32 p6AtomicDec32(P6R::P6INT32 volatile *pVar)
Atomically decrements the variable pointed to by pVar by one.
P6R::P6ERR(* P6ALLOCCOMSTRING)(const P6R::P6WCHAR *pszSource, P6R::P6COMSTR *ppNewString)
Definition: p6dllapi.h:49
P6R::P6ERR(* P6WSTRINGTOUUID)(const P6R::P6WCHAR *pszUUID, P6R::P6UUID &uuid)
Definition: p6dllapi.h:25
P6R::P6ERR(* P6CREATECRYPTOINSTANCE)(const P6R::CID &cid, const P6R::IID &iid, P6R::P6VOID **ppIface)
Definition: p6dllapi.h:58
P6R::P6ERR(* P6MAPOSERROR)(P6R::P6UINT32 oserr)
Definition: p6dllapi.h:55
P6R::P6INT64(* P6ATOMICSET64)(P6R::P6INT64 volatile *pVar, P6R::P6INT64 value)
Definition: p6dllapi.h:34
P6R::P6UINT32(* P6HASHDATA)(const P6R::P6UINT8 *pData, P6R::P6SIZE cData, P6R::P6UINT32 hash)
Definition: p6dllapi.h:36
P6R::P6ERR(* P6FREECOMSTRING)(P6R::P6COMSTR pString)
Definition: p6dllapi.h:50
void P6VOID
Definition: p6types.h:75
P6R::P6ERR(* P6GETERRORINFO)(P6R::p6IErrorInfo **ppInfo)
Definition: p6dllapi.h:46
P6API P6R::P6INT32 p6AtomicInc32(P6R::P6INT32 volatile *pVar)
Atomically increments the variable pointed to by pVar by one.
P6R::P6WCHAR *(* P6ERRTOWSTR)(P6R::P6ERR err, P6R::P6WCHAR *pszBuffer, P6R::P6SIZE cBuffer)
Definition: p6dllapi.h:27
P6R::P6ERR(* P6UUIDTOWSTRING)(const P6R::P6UUID &uuid, P6R::P6WCHAR *pBuffer, P6R::P6SIZE cBuffer)
Definition: p6dllapi.h:23
P6DIRS
This enumeration defines the directories which can be retrieved using the p6GetDirectory() API...
Definition: p6types.h:950
P6R::P6VOID(* P6DBGBREAK)()
Definition: p6dllapi.h:66
P6R::P6UINT32(* P6HASHUINT64TO32)(P6R::P6UINT64 nInteger)
Definition: p6dllapi.h:43
P6R::P6UINT64(* P6HASHUINT64)(P6R::P6UINT64 nInteger)
Definition: p6dllapi.h:42
char P6CHAR
Narrow character type.
Definition: p6types.h:71
P6R::P6ERR(* P6TRACEDTOR)(const P6R::P6CHAR *pszClassname, P6R::P6VOID *classAddr, P6R::P6UINT32 *pSerialNumber)
Definition: p6dllapi.h:62