00001
00009 #ifndef P6DLLAPI_H__
00010 #define P6DLLAPI_H__ 1
00011
00012
00013 namespace P6R {
00014
00015 #ifdef __cplusplus
00016 extern "C" {
00017 #endif
00018
00019 typedef P6R::P6ERR (*P6GETRUNTIMEIFACE)(const P6R::IID &iid,P6R::P6VOID **ppIface);
00020 typedef P6R::P6ERR (*P6CREATEINSTANCE)(P6R::p6ICom *pOuter,const P6R::CID &cid,const P6R::IID &iid,P6R::P6VOID **ppIface);
00021 typedef P6R::P6ERR (*P6UUIDTOSTRING)(const P6R::P6UUID &uuid,P6R::P6CHAR *pBuffer,P6R::P6SIZE cBuffer);
00022 typedef P6R::P6ERR (*P6UUIDTOWSTRING)(const P6R::P6UUID &uuid,P6R::P6WCHAR *pBuffer,P6R::P6SIZE cBuffer);
00023 typedef P6R::P6ERR (*P6STRINGTOUUID)(const P6R::P6CHAR *pszUUID,P6R::P6UUID &uuid);
00024 typedef P6R::P6ERR (*P6WSTRINGTOUUID)(const P6R::P6WCHAR *pszUUID,P6R::P6UUID &uuid);
00025 typedef P6R::P6CHAR * (*P6ERRTOSTR)(P6R::P6ERR err,P6R::P6CHAR *pszBuffer,P6R::P6SIZE cBuffer);
00026 typedef P6R::P6WCHAR * (*P6ERRTOWSTR)(P6R::P6ERR err,P6R::P6WCHAR *pszBuffer,P6R::P6SIZE cBuffer);
00027 typedef P6R::P6ERR (*P6GETMODULEFILENAME)(P6R::P6WCHAR *pszBuffer,P6R::P6SIZE *pcBuffer);
00028 typedef P6R::P6ERR (*P6GETDIRECTORY)(P6DIRS nDir,P6R::P6WCHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6SIZE *pcWritten);
00029 typedef P6R::P6INT32 (*P6ATOMICINC32)(P6R::P6INT32 volatile *pVar);
00030 typedef P6R::P6INT32 (*P6ATOMICDEC32)(P6R::P6INT32 volatile *pVar);
00031 typedef P6R::P6INT32 (*P6ATOMICADD32)(P6R::P6INT32 volatile *pVar,P6R::P6INT32 value);
00032 typedef P6R::P6INT32 (*P6ATOMICSET32)(P6R::P6INT32 volatile *pVar,P6R::P6INT32 value);
00033 typedef P6R::P6INT64 (*P6ATOMICSET64)(P6R::P6INT64 volatile *pVar,P6R::P6INT64 value);
00034 typedef P6R::P6VOID* (*P6ATOMICSETPTR)(P6R::P6VOID volatile **pVar,P6R::P6VOID *pValue);
00035 typedef P6R::P6UINT32 (*P6HASHDATA)(const P6R::P6UINT8 *pData,P6R::P6SIZE cData,P6R::P6UINT32 hash);
00036 typedef P6R::P6UINT32 (*P6HASHSTRING)(const P6R::P6CHAR *pszData);
00037 typedef P6R::P6UINT32 (*P6HASHSTRINGW)(const P6R::P6WCHAR *pszData);
00038 typedef P6R::P6UINT32 (*P6HASHBCSTR)(P6R::P6BCSTR *pbcsString);
00039 typedef P6R::P6UINT32 (*P6HASHBWCSTR)(P6R::P6BWCSTR *pbwcsString);
00040 typedef P6R::P6UINT32 (*P6HASHUINT32)(P6R::P6UINT32 nInteger);
00041 typedef P6R::P6UINT64 (*P6HASHUINT64)(P6R::P6UINT64 nInteger);
00042 typedef P6R::P6UINT32 (*P6HASHUINT64TO32)(P6R::P6UINT64 nInteger);
00043 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);
00044 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);
00045 typedef P6R::P6ERR (*P6GETERRORINFO)(P6R::p6IErrorInfo **ppInfo);
00046 typedef P6R::P6ERR (*P6ALLOCMEMORY)(P6R::P6SIZE cSize,P6R::P6VOID **ppMemory);
00047 typedef P6R::P6ERR (*P6FREEMEMORY)(P6R::P6VOID *pMemory);
00048 typedef P6R::P6ERR (*P6ALLOCCOMSTRING)(const P6R::P6WCHAR *pszSource,P6R::P6COMSTR *ppNewString);
00049 typedef P6R::P6ERR (*P6FREECOMSTRING)(P6R::P6COMSTR pString);
00050 typedef P6R::P6ERR (*P6COMSTRINGLEN)(const P6R::P6COMSTR pString,P6R::P6SIZE *pLength);
00051 typedef P6R::P6ERR (*P6COMSTRINGBYTELEN)(const P6R::P6COMSTR pString,P6R::P6SIZE *pLength);
00052 typedef P6R::P6ERR (*P6ALLOCCOMSTRINGLEN)(P6R::P6WCHAR *pszSource,P6R::P6SIZE nSize,P6R::P6COMSTR *ppNewString);
00053 typedef P6R::P6ERR (*P6GETRUNTIMEVERSION)(P6R::P6VERINFO *pVerInfo);
00054 typedef P6R::P6ERR (*P6MAPOSERROR)(P6R::P6UINT32 oserr);
00055 typedef P6R::P6ERR (*P6BACKTRACE)(P6R::P6CHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6UINT32 cFramesToSkip,P6BTFLAGS fFlags);
00056 typedef P6R::P6ERR (*P6ASSERT)(const P6R::P6WCHAR *pszExpr,const P6R::P6CHAR *pszFile,P6R::P6UINT32 nLine);
00057 typedef P6R::P6ERR (*P6CREATECRYPTOINSTANCE)(const P6R::CID &cid,const P6R::IID &iid,P6R::P6VOID **ppIface);
00058 typedef P6R::P6ERR (*P6TRACEADDREF)(const P6R::P6CHAR *pszClassname,P6R::P6UINT32 cClassSize,P6R::P6VOID *classAddr,P6R::P6INT32 refCount,P6R::P6UINT32 *pSerialNumber);
00059 typedef P6R::P6ERR (*P6TRACERELEASE)(const P6R::P6CHAR *pszClassname,P6R::P6VOID *classAddr,P6R::P6INT32 refCount,P6R::P6UINT32 *pSerialNumber);
00060 typedef P6R::P6ERR (*P6TRACECTOR)(const P6R::P6CHAR *pszClassname,P6R::P6UINT32 cClassSize,P6R::P6VOID *classAddr,P6R::P6UINT32 *pSerialNumber);
00061 typedef P6R::P6ERR (*P6TRACEDTOR)(const P6R::P6CHAR *pszClassname,P6R::P6VOID *classAddr,P6R::P6UINT32 *pSerialNumber);
00062 typedef P6R::P6VOID (*P6COMPONENTCTOR)();
00063 typedef P6R::P6VOID (*P6COMPONENTDTOR)();
00064
00068 typedef struct {
00069 P6UINT32 cSize;
00070 P6GETRUNTIMEIFACE p6GetRuntimeIface;
00071 P6CREATEINSTANCE p6CreateInstance;
00072 P6UUIDTOSTRING p6UUIDToString;
00073 P6UUIDTOWSTRING p6UUIDToWString;
00074 P6STRINGTOUUID p6StringToUUID;
00075 P6WSTRINGTOUUID p6WStringToUUID;
00076 P6ERRTOSTR p6ErrToStr;
00077 P6ERRTOWSTR p6ErrToWStr;
00078 P6GETDIRECTORY p6GetDirectory;
00079 P6ATOMICINC32 p6AtomicInc32;
00080 P6ATOMICDEC32 p6AtomicDec32;
00081 P6ATOMICADD32 p6AtomicAdd32;
00082 P6ATOMICSET32 p6AtomicSet32;
00083 P6ATOMICSET64 p6AtomicSet64;
00084 P6ATOMICSETPTR p6AtomicSetPtr;
00085 P6HASHDATA p6HashData;
00086 P6HASHSTRING p6HashString;
00087 P6HASHSTRINGW p6HashStringW;
00088 P6HASHBCSTR p6HashBCSTR;
00089 P6HASHBWCSTR p6HashBWCSTR;
00090 P6HASHUINT32 p6HashUINT32;
00091 P6HASHUINT64 p6HashUINT64;
00092 P6HASHUINT64TO32 p6HashUINT64to32;
00093 P6SETERROR p6SetError;
00094 P6SETERRORA p6SetErrorA;
00095 P6GETERRORINFO p6GetErrorInfo;
00096 P6ALLOCMEMORY p6AllocMemory;
00097 P6FREEMEMORY p6FreeMemory;
00098 P6ALLOCCOMSTRING p6AllocComString;
00099 P6FREECOMSTRING p6FreeComString;
00100 P6COMSTRINGLEN p6ComStringLen;
00101 P6COMSTRINGBYTELEN p6ComStringByteLen;
00102 P6ALLOCCOMSTRINGLEN p6AllocComStringLen;
00103 P6GETRUNTIMEVERSION p6GetRuntimeVersion;
00104 P6MAPOSERROR p6MapOSError;
00105 P6BACKTRACE p6Backtrace;
00106 P6ASSERT p6Assert;
00107 P6CREATECRYPTOINSTANCE p6CreateCryptoInstance;
00108 P6TRACEADDREF p6TraceAddref;
00109 P6TRACERELEASE p6TraceRelease;
00110 P6TRACECTOR p6TraceCTOR;
00111 P6TRACEDTOR p6TraceDTOR;
00112 } P6DLLAPI_1_0;
00113
00114 typedef P6DLLAPI_1_0 P6DLLAPI;
00115
00116
00117 #ifdef __cplusplus
00118 }
00119 #endif
00120
00121 }
00122
00123
00124 #endif
00125
00126